diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..4653564 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,130 @@ +kind: pipeline +type: docker +name: isle-website + +steps: + # 恢复缓存 + - name: restore-cache + pull: if-not-exists # 镜像不存在则拉取,避免多次下载 + image: drillster/drone-volume-cache + volumes: + - name: cache + path: /cache + settings: + restore: true + mount: + - ./node_modules + + # 安装依赖 + - name: install + pull: if-not-exists + image: node:16.17.1 + commands: + - echo "安装依赖" + - echo "全局安装PNPM" + - npm config set registry https://registry.npmmirror.com/ + - npm install -g pnpm + - pnpm -v + - echo "PNPM安装完成" + - pnpm config get registry + - pnpm config set registry https://registry.npmmirror.com/ + # - pnpm config set registry http://registry.npm.taobao.org/ + # - pnpm config set registry https://registry.npmjs.org + - pnpm install --no-frozen-lockfile + + # 构建 + - name: build + pull: if-not-exists + image: node:16.17.1 + commands: + - echo "开始构建" + - npm config set registry https://registry.npmmirror.com/ + - npm install -g pnpm + - pnpm docs:build + - ls + + # 更新缓存 + - name: rebuild-cache + pull: if-not-exists + image: drillster/drone-volume-cache + volumes: + - name: cache + path: /cache + settings: + rebuild: true + mount: + - ./node_modules + + # 上传 + - name: upload + image: appleboy/drone-scp + settings: + host: + from_secret: ssh_host + username: + from_secret: ssh_username + password: + from_secret: ssh_password + target: /srv/nginx/html/isle/website + source: ./.vitepress/dist/* + strip_components: 1 + + - name: deploy + pull: if-not-exists + image: appleboy/drone-ssh + settings: + host: + from_secret: ssh_host + username: + from_secret: ssh_username + password: + from_secret: ssh_password + port: 22 + script: + - echo "SSH已连接,开始部署" + - cd /srv/nginx + - pwd + - docker restart nginx + # - cp -r /drone/src/dist/* web + - echo "部署完成" + + # 通知 + - name: notify + pull: if-not-exists + image: drillster/drone-email + settings: + recipients_only: true # 只发送给指定邮件收件人,不默认发送给流水线创建人 + host: smtp.feishu.cn # SMTP服务器 例如 smtp.qq.com + port: 465 # SMTP服务端口 例如QQ邮箱端口465 + username: 句末科技研发部 + password: Ljc15090683283 + from: develop@sentenceend.com + recipients: + - lijianchao@sentenceend.com + - biankunchao@sentenceend.com + subject: "DroneCI构建通知!" + body: | + DroneCI构建完成!这是一条通知信息,请勿回复! + + 详细信息: + - 仓库: ${DRONE_REPO} + - 分支: ${DRONE_BRANCH} + - 提交SHA值: ${DRONE_COMMIT} + - 提交作者: ${DRONE_COMMIT_AUTHOR} + - 提交信息: ${DRONE_COMMIT_MESSAGE} + - 触发事件: ${DRONE_BUILD_EVENT} + - 构建状态: ${DRONE_BUILD_STATUS} + - 开始时间: ${DRONE_BUILD_STARTED} + - 结束时间: ${DRONE_BUILD_FINISHED} + success: + subject: "DroneCI构建成功" + message: "构建成功!" + failure: + subject: "DroneCI构建失败" + message: "构建失败,请查看日志以了解详细信息!" + +trigger: + branch: + - main + event: + - push \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e85aa22 --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +# mac +.DS_Store + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build +/dist +/.vitepress/dist +/.vitepress/cache +/.vitepress/.temp + +# misc +.DS_Store + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# env files +.env +.env.local +.env.development.local +.env.test.local +.env.production.local \ No newline at end of file diff --git a/.vitepress/config.js b/.vitepress/config.js new file mode 100644 index 0000000..f056495 --- /dev/null +++ b/.vitepress/config.js @@ -0,0 +1,87 @@ +/* + * @LastEditTime: 2023-11-01 14:10:24 + * @Description: ... + * @Date: 2023-09-19 19:04:57 + * @Author: isboyjc + * @LastEditors: isboyjc + */ +import { defineConfig } from 'vitepress' +import {logo, description, title, me, keywords, ico, site, icp, publicSecurityFiling, mail} from './meta' +import {icons} from "./icon" + +// https://vitepress.dev/reference/site-config +export default defineConfig({ + title, + description, + locales: { + root: { label: '简体中文', lang: 'zh-CN' }, + }, + markdown: { + lineNumbers: true, + }, + head: [ + ['meta', { name: 'referrer', content: 'no-referrer-when-downgrade' }], + ['meta', { name: 'keywords', content: keywords }], + ['meta', { name: 'author', content: me.name }], + ['meta', { name: 'application-name', content: title }], + ['meta', { name: 'apple-mobile-web-app-title', content: title }], + ['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'default' }], + + ['link', { rel: 'shortcut icon', href: ico }], + ['link', { rel: 'icon', type: 'image/x-icon', href: ico }], + // ['link', { rel: 'mask-icon', href: '.svg', color: '#06f' }], + // ['meta', { name: 'theme-color', content: '#06f' }], + + // webfont + ['link', { rel: 'dns-prefetch', href: 'https://fonts.googleapis.com' }], + ['link', { rel: 'dns-prefetch', href: 'https://fonts.gstatic.com' }], + ['link', { rel: 'preconnect', crossorigin: 'anonymous', href: 'https://fonts.googleapis.com' }], + ['link', { rel: 'preconnect', crossorigin: 'anonymous', href: 'https://fonts.gstatic.com' }], + + // og + ['meta', { property: 'og:type', content: 'website' }], + ['meta', { property: 'og:description', content: description }], + ['meta', { property: 'og:url', content: site }], + ['meta', { property: 'og:locale', content: 'zh_CN' }], + ], + themeConfig: { + logo, + outline: 'deep', + outlineTitle: '目录...', + returnToTopLabel: '返回顶部', + darkModeSwitchLabel: '模式', + sidebarMenuLabel: '归档', + lastUpdatedText:"最后更新时间", + docFooter: { + prev: '上一页', + next: '下一页', + }, + + nav: [ + // { text: '首页', link: '/' }, + { text: '关于我们', link: '/about' }, + { text: '岛屿文档', link: '/docs' }, + { text: '在线支持', link: '/support' } + ], + + // sidebar: [ + // { + // text: 'Examples', + // items: [ + // { text: 'Markdown Examples', link: '/markdown-examples' }, + // { text: 'Runtime API Examples', link: '/api-examples' } + // ] + // } + // ], + socialLinks: [ + { icon: icons.mail, link: `Mailto:${mail}` } + ], + + footer: { + message: ` +  京公网安备 ${publicSecurityFiling}号 +   ${icp}`, + copyright: `© 2023-${new Date().getFullYear()} ${title}` + }, + } +}) diff --git a/.vitepress/icon.js b/.vitepress/icon.js new file mode 100644 index 0000000..babc2ca --- /dev/null +++ b/.vitepress/icon.js @@ -0,0 +1,29 @@ +/* + * @LastEditTime: 2023-09-19 20:55:48 + * @Description: ... + * @Date: 2023-09-19 20:53:48 + * @Author: isboyjc + * @LastEditors: isboyjc + */ +export const icons = { + mail: { + svg: `` + }, + github: { + svg: `` + }, + tg: { + svg: `` + }, + bilibili: { + svg: ``, + }, + juejin: { + svg: `` + }, + rss: { + svg: '', + } +} \ No newline at end of file diff --git a/.vitepress/meta.js b/.vitepress/meta.js new file mode 100644 index 0000000..9edd14d --- /dev/null +++ b/.vitepress/meta.js @@ -0,0 +1,33 @@ +/* + * @LastEditTime: 2023-11-15 18:20:43 + * @Description: ... + * @Date: 2023-06-26 00:39:07 + * @Author: isboyjc + * @LastEditors: isboyjc + */ +import { version, author, keywords as ks, description as desc } from '../package.json' + +// base +export const title = 'ISLENOTE 岛屿笔记' +export const site = 'https://sentenceend.com/' +export const logo = '/img/site/logo_blue.png' +export const ico = '/img/site/logo_blue.png' +export const keywords = ks.join("、") +export const description = "记录灵感,编排灵感" +export const icp = "京ICP备2023022756号-2" +export const publicSecurityFiling = "11011402053556" +export const mail = "islenote@sentenceend.com" +export const me = { + avatar: '/img/me/avatar.jpeg', + name: author, + desc: '不正经的前端,很正经的摄影!', + wx: '/img/me/wx.jpeg', + github: 'https://github.com/isboyjc', + twitter: 'https://twitter.com/isboyjc', + juejin: 'https://juejin.cn/user/2999123452373735', +} + +// link + +// version +export const docsVersion = version \ No newline at end of file diff --git a/.vitepress/theme/index.js b/.vitepress/theme/index.js new file mode 100644 index 0000000..7dc6244 --- /dev/null +++ b/.vitepress/theme/index.js @@ -0,0 +1,18 @@ +// https://vitepress.dev/guide/custom-theme +import { h } from 'vue' +import Theme from 'vitepress/theme' + +import './styles/vars.css' +import './styles/main.css' + +export default { + extends: Theme, + Layout: () => { + return h(Theme.Layout, null, { + // https://vitepress.dev/guide/extending-default-theme#layout-slots + }) + }, + enhanceApp({ app, router, siteData }) { + // ... + } +} diff --git a/.vitepress/theme/styles/main.css b/.vitepress/theme/styles/main.css new file mode 100644 index 0000000..7a12620 --- /dev/null +++ b/.vitepress/theme/styles/main.css @@ -0,0 +1,3 @@ +.VPButton.brand{ + color: rgba(255, 255, 245, 0.86)!important; +} \ No newline at end of file diff --git a/.vitepress/theme/styles/vars.css b/.vitepress/theme/styles/vars.css new file mode 100644 index 0000000..96e6c1a --- /dev/null +++ b/.vitepress/theme/styles/vars.css @@ -0,0 +1,93 @@ +/** + * Colors + * -------------------------------------------------------------------------- */ + + :root { + --vp-c-accent: #9bbaff; + --vp-c-brand: #165dff; + --vp-c-brand-dark: #165dff; + --vp-c-text-code: #5d6f5d; + /* --vp-code-block-bg: rgba(125, 125, 125, 0.04); */ + --vp-c-disabled-bg: rgba(125, 125, 125, 0.2); + /* fix contrast on gray cards: used by --vp-c-text-2 */ + --vp-c-brand-light: #3774ff; + --vp-c-text-light-2: rgba(56 56 56 / 70%); + --cho-code-block-bg: rgba(125, 125, 125, 0.04); + --vp-c-indigo-1: #598bff; + --vp-c-indigo-2: #598bff; + --vp-c-indigo-3: #9bbaff; +} + +.dark { + --vp-code-block-bg: rgba(0, 0, 0, 0.2); + --vp-c-text-code: #c0cec0; + /* fix contrast on gray cards: check the same above (this is the default) */ + --vp-c-text-dark-2: rgba(235, 235, 235, 0.6); +} + +/** + * Component: Code + * -------------------------------------------------------------------------- */ + +:root { + --vp-code-line-highlight-color: rgba(125, 125, 125, 0.2); +} + +.dark { + --vp-code-line-highlight-color: rgba(0, 0, 0, 0.5); +} + +/** + * Component: Button + * -------------------------------------------------------------------------- */ + +:root { + --vp-button-brand-border: var(--vp-c-brand-light); + --vp-button-brand-text: var(--vp-c-text-dark-1); + --vp-button-brand-bg: var(--vp-c-brand); + --vp-button-brand-hover-border: var(--vp-c-brand-light); + --vp-button-brand-hover-text: var(--vp-c-text-dark-1); + --vp-button-brand-hover-bg: var(--vp-c-brand-light); + --vp-button-brand-active-border: var(--vp-c-brand-light); + --vp-button-brand-active-text: var(--vp-c-text-dark-1); + --vp-button-brand-active-bg: var(--vp-button-brand-bg); +} + +/** + * Component: Home + * -------------------------------------------------------------------------- */ + +:root { + --vp-home-hero-name-color: transparent; + --vp-home-hero-name-background: -webkit-linear-gradient( + 120deg, + #9bbaff -80%, + #3774ff + ); + --vp-home-hero-image-background-image: linear-gradient( + -45deg, + #3774ff 30%, + #9bbaff80 + ); + --vp-home-hero-image-filter: blur(30px); +} + +@media (min-width: 640px) { + :root { + --vp-home-hero-image-filter: blur(56px); + } +} + +@media (min-width: 960px) { + :root { + --vp-home-hero-image-filter: blur(72px); + } +} + +/** + * Component: Algolia + * -------------------------------------------------------------------------- */ + +.DocSearch { + --docsearch-primary-color: var(--vp-c-brand) !important; +} \ No newline at end of file diff --git a/about.md b/about.md new file mode 100644 index 0000000..b7d6e0c --- /dev/null +++ b/about.md @@ -0,0 +1,23 @@ +--- +outline: deep +--- + +# 关于我们 + +`ISLENOTE 岛屿笔记` 是 [句末科技](https://sentenceend.com) 旗下的一款工具类产品。 + +和美式英语中岛屿的 `island` 不同,`isle` 是英式英语中岛屿的意思,`note` 则是笔记,所以岛屿笔记的英文以及域名都是 `islenote`。 + +你知道什么是岛屿吗? + +`岛` 通常是指一个相对较大、有人居住或有明显地理特征的陆地,它被水体(通常是海洋)所包围。 + +`屿` 通常是指相对较小、不太有人居住或没有明显地理特征的陆地,它也被水体包围,但可能没有像岛那么大或重要。 + +所以我们的产品取 `岛屿` 二字,当然,它分为两个模块,`屿灵` 用来记录那些琐碎的灵感,`岛记` 用来编排我们记录的这些灵感。So,这也是岛屿笔记 `Slogan` 的来源: 记录灵感,编排灵感! + +为了达到良好的用户体验,我们自始至终都在为产品做减法。岛屿专注于记&录,不同与市面上功能繁杂的笔记产品,岛屿的功能很简单,它的核心始终围绕在记录上。`屿灵` 让我们随时随地的记下那些虚无缥缈的灵感片段,我们做的是让用户可以能更便捷的记录下那些碎片化灵感;`岛记` 用最朴实的 `Markdown` 语法去编辑、去连接接我们的想法,你并不能看到一个功能复杂的笔记产品,我们做的只是在还原一款最基础的 `Markdown` 笔记的同时让灵感得以在笔记中填充。 + +可以再简单一点,其实我们做的只是让数据同步、让碎片连接,仅此而已! + +哦,对,我想你应该知道 `Markdown`,否则,,,岛屿将帮不了你! \ No newline at end of file diff --git a/default.conf b/default.conf new file mode 100644 index 0000000..3388375 --- /dev/null +++ b/default.conf @@ -0,0 +1,23 @@ +server { + listen 80; + server_name localhost; + + #charset koi8-r; + access_log /var/log/nginx/host.access.log main; + error_log /var/log/nginx/error.log error; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ /index.html; + } + + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } +} diff --git a/docs.md b/docs.md new file mode 100644 index 0000000..37da4bd --- /dev/null +++ b/docs.md @@ -0,0 +1,21 @@ +--- +outline: deep +--- + +# 文档 + + + +TODO + + \ No newline at end of file diff --git a/index.md b/index.md new file mode 100644 index 0000000..c1963c6 --- /dev/null +++ b/index.md @@ -0,0 +1,34 @@ +--- +# https://vitepress.dev/reference/default-theme-home-page +layout: home +sidebar: false +title: 岛屿笔记 | ISLENOTE +titleTemplate: "记录灵感,编排灵感" + +hero: + name: "\n屿灵 · 记录灵感" + text: " 岛记 · 编排灵感" + tagline: " " + image: + src: /svg/undraw_inspiration_re_ivlv.svg + alt: "图片未加载..." + actions: + - theme: brand + text: "立即登录" + link: https://baidu.com + - theme: alt + text: "免费注册" + link: https://baidu.com + +# features: +# - title: 创新 +# icon: 💡 +# details: 创新驱动发展,致力于推动产研创新,让体验更好。 +# - title: 生活 +# icon: 🌟 +# details: 凭借先进的技术和持续的创新,不断为生活带来惊喜。 +# - title: 技术 +# icon: 🖥️ +# details: 以创新为动力,以技术为支撑,让生活更加智能化、便捷化。 +--- + diff --git a/package.json b/package.json new file mode 100644 index 0000000..2bfdebb --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "islenote", + "version": "1.0.0", + "description": "记录灵感,编排灵感", + "private": true, + "author": "isboyjc", + "type": "module", + "keywords": [], + "devDependencies": { + "vitepress": "^1.0.0-rc.14" + }, + "scripts": { + "docs:dev": "vitepress dev", + "docs:build": "vitepress build", + "docs:preview": "vitepress preview" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..c630717 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,814 @@ +lockfileVersion: 5.3 + +specifiers: + vitepress: ^1.0.0-rc.14 + +devDependencies: + vitepress: 1.0.0-rc.14 + +packages: + + /@algolia/autocomplete-core/1.9.3_algoliasearch@4.20.0: + resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + dependencies: + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3_algoliasearch@4.20.0 + '@algolia/autocomplete-shared': 1.9.3_algoliasearch@4.20.0 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + dev: true + + /@algolia/autocomplete-plugin-algolia-insights/1.9.3_algoliasearch@4.20.0: + resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + peerDependencies: + search-insights: '>= 1 < 3' + dependencies: + '@algolia/autocomplete-shared': 1.9.3_algoliasearch@4.20.0 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + dev: true + + /@algolia/autocomplete-preset-algolia/1.9.3_algoliasearch@4.20.0: + resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + dependencies: + '@algolia/autocomplete-shared': 1.9.3_algoliasearch@4.20.0 + algoliasearch: 4.20.0 + dev: true + + /@algolia/autocomplete-shared/1.9.3_algoliasearch@4.20.0: + resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + dependencies: + algoliasearch: 4.20.0 + dev: true + + /@algolia/cache-browser-local-storage/4.20.0: + resolution: {integrity: sha512-uujahcBt4DxduBTvYdwO3sBfHuJvJokiC3BP1+O70fglmE1ShkH8lpXqZBac1rrU3FnNYSUs4pL9lBdTKeRPOQ==} + dependencies: + '@algolia/cache-common': 4.20.0 + dev: true + + /@algolia/cache-common/4.20.0: + resolution: {integrity: sha512-vCfxauaZutL3NImzB2G9LjLt36vKAckc6DhMp05An14kVo8F1Yofb6SIl6U3SaEz8pG2QOB9ptwM5c+zGevwIQ==} + dev: true + + /@algolia/cache-in-memory/4.20.0: + resolution: {integrity: sha512-Wm9ak/IaacAZXS4mB3+qF/KCoVSBV6aLgIGFEtQtJwjv64g4ePMapORGmCyulCFwfePaRAtcaTbMcJF+voc/bg==} + dependencies: + '@algolia/cache-common': 4.20.0 + dev: true + + /@algolia/client-account/4.20.0: + resolution: {integrity: sha512-GGToLQvrwo7am4zVkZTnKa72pheQeez/16sURDWm7Seyz+HUxKi3BM6fthVVPUEBhtJ0reyVtuK9ArmnaKl10Q==} + dependencies: + '@algolia/client-common': 4.20.0 + '@algolia/client-search': 4.20.0 + '@algolia/transporter': 4.20.0 + dev: true + + /@algolia/client-analytics/4.20.0: + resolution: {integrity: sha512-EIr+PdFMOallRdBTHHdKI3CstslgLORQG7844Mq84ib5oVFRVASuuPmG4bXBgiDbcsMLUeOC6zRVJhv1KWI0ug==} + dependencies: + '@algolia/client-common': 4.20.0 + '@algolia/client-search': 4.20.0 + '@algolia/requester-common': 4.20.0 + '@algolia/transporter': 4.20.0 + dev: true + + /@algolia/client-common/4.20.0: + resolution: {integrity: sha512-P3WgMdEss915p+knMMSd/fwiHRHKvDu4DYRrCRaBrsfFw7EQHon+EbRSm4QisS9NYdxbS04kcvNoavVGthyfqQ==} + dependencies: + '@algolia/requester-common': 4.20.0 + '@algolia/transporter': 4.20.0 + dev: true + + /@algolia/client-personalization/4.20.0: + resolution: {integrity: sha512-N9+zx0tWOQsLc3K4PVRDV8GUeOLAY0i445En79Pr3zWB+m67V+n/8w4Kw1C5LlbHDDJcyhMMIlqezh6BEk7xAQ==} + dependencies: + '@algolia/client-common': 4.20.0 + '@algolia/requester-common': 4.20.0 + '@algolia/transporter': 4.20.0 + dev: true + + /@algolia/client-search/4.20.0: + resolution: {integrity: sha512-zgwqnMvhWLdpzKTpd3sGmMlr4c+iS7eyyLGiaO51zDZWGMkpgoNVmltkzdBwxOVXz0RsFMznIxB9zuarUv4TZg==} + dependencies: + '@algolia/client-common': 4.20.0 + '@algolia/requester-common': 4.20.0 + '@algolia/transporter': 4.20.0 + dev: true + + /@algolia/logger-common/4.20.0: + resolution: {integrity: sha512-xouigCMB5WJYEwvoWW5XDv7Z9f0A8VoXJc3VKwlHJw/je+3p2RcDXfksLI4G4lIVncFUYMZx30tP/rsdlvvzHQ==} + dev: true + + /@algolia/logger-console/4.20.0: + resolution: {integrity: sha512-THlIGG1g/FS63z0StQqDhT6bprUczBI8wnLT3JWvfAQDZX5P6fCg7dG+pIrUBpDIHGszgkqYEqECaKKsdNKOUA==} + dependencies: + '@algolia/logger-common': 4.20.0 + dev: true + + /@algolia/requester-browser-xhr/4.20.0: + resolution: {integrity: sha512-HbzoSjcjuUmYOkcHECkVTwAelmvTlgs48N6Owt4FnTOQdwn0b8pdht9eMgishvk8+F8bal354nhx/xOoTfwiAw==} + dependencies: + '@algolia/requester-common': 4.20.0 + dev: true + + /@algolia/requester-common/4.20.0: + resolution: {integrity: sha512-9h6ye6RY/BkfmeJp7Z8gyyeMrmmWsMOCRBXQDs4mZKKsyVlfIVICpcSibbeYcuUdurLhIlrOUkH3rQEgZzonng==} + dev: true + + /@algolia/requester-node-http/4.20.0: + resolution: {integrity: sha512-ocJ66L60ABSSTRFnCHIEZpNHv6qTxsBwJEPfYaSBsLQodm0F9ptvalFkHMpvj5DfE22oZrcrLbOYM2bdPJRHng==} + dependencies: + '@algolia/requester-common': 4.20.0 + dev: true + + /@algolia/transporter/4.20.0: + resolution: {integrity: sha512-Lsii1pGWOAISbzeyuf+r/GPhvHMPHSPrTDWNcIzOE1SG1inlJHICaVe2ikuoRjcpgxZNU54Jl+if15SUCsaTUg==} + dependencies: + '@algolia/cache-common': 4.20.0 + '@algolia/logger-common': 4.20.0 + '@algolia/requester-common': 4.20.0 + dev: true + + /@babel/parser/7.22.16: + resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==} + engines: {node: '>=6.0.0'} + hasBin: true + dev: true + + /@docsearch/css/3.5.2: + resolution: {integrity: sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==} + dev: true + + /@docsearch/js/3.5.2: + resolution: {integrity: sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==} + dependencies: + '@docsearch/react': 3.5.2 + preact: 10.17.1 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + - search-insights + dev: true + + /@docsearch/react/3.5.2: + resolution: {integrity: sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + dependencies: + '@algolia/autocomplete-core': 1.9.3_algoliasearch@4.20.0 + '@algolia/autocomplete-preset-algolia': 1.9.3_algoliasearch@4.20.0 + '@docsearch/css': 3.5.2 + algoliasearch: 4.20.0 + transitivePeerDependencies: + - '@algolia/client-search' + dev: true + + /@esbuild/android-arm/0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64/0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm/0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el/0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64/0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@jridgewell/sourcemap-codec/1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@types/web-bluetooth/0.0.17: + resolution: {integrity: sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==} + dev: true + + /@vue/compiler-core/3.3.4: + resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} + dependencies: + '@babel/parser': 7.22.16 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-dom/3.3.4: + resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} + dependencies: + '@vue/compiler-core': 3.3.4 + '@vue/shared': 3.3.4 + dev: true + + /@vue/compiler-sfc/3.3.4: + resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} + dependencies: + '@babel/parser': 7.22.16 + '@vue/compiler-core': 3.3.4 + '@vue/compiler-dom': 3.3.4 + '@vue/compiler-ssr': 3.3.4 + '@vue/reactivity-transform': 3.3.4 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + magic-string: 0.30.3 + postcss: 8.4.30 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-ssr/3.3.4: + resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} + dependencies: + '@vue/compiler-dom': 3.3.4 + '@vue/shared': 3.3.4 + dev: true + + /@vue/devtools-api/6.5.0: + resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} + dev: true + + /@vue/reactivity-transform/3.3.4: + resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} + dependencies: + '@babel/parser': 7.22.16 + '@vue/compiler-core': 3.3.4 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + magic-string: 0.30.3 + dev: true + + /@vue/reactivity/3.3.4: + resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} + dependencies: + '@vue/shared': 3.3.4 + dev: true + + /@vue/runtime-core/3.3.4: + resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} + dependencies: + '@vue/reactivity': 3.3.4 + '@vue/shared': 3.3.4 + dev: true + + /@vue/runtime-dom/3.3.4: + resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} + dependencies: + '@vue/runtime-core': 3.3.4 + '@vue/shared': 3.3.4 + csstype: 3.1.2 + dev: true + + /@vue/server-renderer/3.3.4_vue@3.3.4: + resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} + peerDependencies: + vue: 3.3.4 + dependencies: + '@vue/compiler-ssr': 3.3.4 + '@vue/shared': 3.3.4 + vue: 3.3.4 + dev: true + + /@vue/shared/3.3.4: + resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} + dev: true + + /@vueuse/core/10.4.1_vue@3.3.4: + resolution: {integrity: sha512-DkHIfMIoSIBjMgRRvdIvxsyboRZQmImofLyOHADqiVbQVilP8VVHDhBX2ZqoItOgu7dWa8oXiNnScOdPLhdEXg==} + dependencies: + '@types/web-bluetooth': 0.0.17 + '@vueuse/metadata': 10.4.1 + '@vueuse/shared': 10.4.1_vue@3.3.4 + vue-demi: 0.14.6_vue@3.3.4 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/integrations/10.4.1_focus-trap@7.5.2+vue@3.3.4: + resolution: {integrity: sha512-uRBPyG5Lxoh1A/J+boiioPT3ELEAPEo4t8W6Mr4yTKIQBeW/FcbsotZNPr4k9uz+3QEksMmflWloS9wCnypM7g==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + dependencies: + '@vueuse/core': 10.4.1_vue@3.3.4 + '@vueuse/shared': 10.4.1_vue@3.3.4 + focus-trap: 7.5.2 + vue-demi: 0.14.6_vue@3.3.4 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/metadata/10.4.1: + resolution: {integrity: sha512-2Sc8X+iVzeuMGHr6O2j4gv/zxvQGGOYETYXEc41h0iZXIRnRbJZGmY/QP8dvzqUelf8vg0p/yEA5VpCEu+WpZg==} + dev: true + + /@vueuse/shared/10.4.1_vue@3.3.4: + resolution: {integrity: sha512-vz5hbAM4qA0lDKmcr2y3pPdU+2EVw/yzfRsBdu+6+USGa4PxqSQRYIUC9/NcT06y+ZgaTsyURw2I9qOFaaXHAg==} + dependencies: + vue-demi: 0.14.6_vue@3.3.4 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /algoliasearch/4.20.0: + resolution: {integrity: sha512-y+UHEjnOItoNy0bYO+WWmLWBlPwDjKHW6mNHrPi0NkuhpQOOEbrkwQH/wgKFDLh7qlKjzoKeiRtlpewDPDG23g==} + dependencies: + '@algolia/cache-browser-local-storage': 4.20.0 + '@algolia/cache-common': 4.20.0 + '@algolia/cache-in-memory': 4.20.0 + '@algolia/client-account': 4.20.0 + '@algolia/client-analytics': 4.20.0 + '@algolia/client-common': 4.20.0 + '@algolia/client-personalization': 4.20.0 + '@algolia/client-search': 4.20.0 + '@algolia/logger-common': 4.20.0 + '@algolia/logger-console': 4.20.0 + '@algolia/requester-browser-xhr': 4.20.0 + '@algolia/requester-common': 4.20.0 + '@algolia/requester-node-http': 4.20.0 + '@algolia/transporter': 4.20.0 + dev: true + + /ansi-sequence-parser/1.1.1: + resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} + dev: true + + /csstype/3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + dev: true + + /esbuild/0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + dev: true + + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /focus-trap/7.5.2: + resolution: {integrity: sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==} + dependencies: + tabbable: 6.2.0 + dev: true + + /fsevents/2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /jsonc-parser/3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /magic-string/0.30.3: + resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /mark.js/8.11.1: + resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + dev: true + + /minisearch/6.1.0: + resolution: {integrity: sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==} + dev: true + + /nanoid/3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /postcss/8.4.30: + resolution: {integrity: sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /preact/10.17.1: + resolution: {integrity: sha512-X9BODrvQ4Ekwv9GURm9AKAGaomqXmip7NQTZgY7gcNmr7XE83adOMJvd3N42id1tMFU7ojiynRsYnY6/BRFxLA==} + dev: true + + /rollup/3.29.2: + resolution: {integrity: sha512-CJouHoZ27v6siztc21eEQGo0kIcE5D1gVPA571ez0mMYb25LGYGKnVNXpEj5MGlepmDWGXNjDB5q7uNiPHC11A==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /shiki/0.14.4: + resolution: {integrity: sha512-IXCRip2IQzKwxArNNq1S+On4KPML3Yyn8Zzs/xRgcgOWIr8ntIK3IKzjFPfjy/7kt9ZMjc+FItfqHRBg8b6tNQ==} + dependencies: + ansi-sequence-parser: 1.1.1 + jsonc-parser: 3.2.0 + vscode-oniguruma: 1.7.0 + vscode-textmate: 8.0.0 + dev: true + + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /tabbable/6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + dev: true + + /vite/4.4.9: + resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.18.20 + postcss: 8.4.30 + rollup: 3.29.2 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitepress/1.0.0-rc.14: + resolution: {integrity: sha512-yChIeXOAcNvVnSVjhziH1vte0uhKb00PuZf7KdIMfx3ixTMAz73Nn+6gREvCv0SdH+anteGUKz5eljv0ygcgGQ==} + hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4.3.2 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + dependencies: + '@docsearch/css': 3.5.2 + '@docsearch/js': 3.5.2 + '@vue/devtools-api': 6.5.0 + '@vueuse/core': 10.4.1_vue@3.3.4 + '@vueuse/integrations': 10.4.1_focus-trap@7.5.2+vue@3.3.4 + focus-trap: 7.5.2 + mark.js: 8.11.1 + minisearch: 6.1.0 + shiki: 0.14.4 + vite: 4.4.9 + vue: 3.3.4 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - less + - lightningcss + - nprogress + - qrcode + - react + - react-dom + - sass + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - universal-cookie + dev: true + + /vscode-oniguruma/1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} + dev: true + + /vscode-textmate/8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + dev: true + + /vue-demi/0.14.6_vue@3.3.4: + resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.3.4 + dev: true + + /vue/3.3.4: + resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} + dependencies: + '@vue/compiler-dom': 3.3.4 + '@vue/compiler-sfc': 3.3.4 + '@vue/runtime-dom': 3.3.4 + '@vue/server-renderer': 3.3.4_vue@3.3.4 + '@vue/shared': 3.3.4 + dev: true diff --git a/public/img/me/avatar.jpeg b/public/img/me/avatar.jpeg new file mode 100644 index 0000000..61ef61f Binary files /dev/null and b/public/img/me/avatar.jpeg differ diff --git a/public/img/me/wx.jpeg b/public/img/me/wx.jpeg new file mode 100644 index 0000000..f5e9144 Binary files /dev/null and b/public/img/me/wx.jpeg differ diff --git a/public/img/site/logo_blue.png b/public/img/site/logo_blue.png new file mode 100644 index 0000000..a819f43 Binary files /dev/null and b/public/img/site/logo_blue.png differ diff --git a/public/img/site/psf.png b/public/img/site/psf.png new file mode 100644 index 0000000..9f76394 Binary files /dev/null and b/public/img/site/psf.png differ diff --git a/public/svg/custom/vue.svg b/public/svg/custom/vue.svg new file mode 100644 index 0000000..7565660 --- /dev/null +++ b/public/svg/custom/vue.svg @@ -0,0 +1 @@ + diff --git a/public/svg/undraw_inspiration_re_ivlv.svg b/public/svg/undraw_inspiration_re_ivlv.svg new file mode 100644 index 0000000..1e5e4cb --- /dev/null +++ b/public/svg/undraw_inspiration_re_ivlv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/support.md b/support.md new file mode 100644 index 0000000..772e109 --- /dev/null +++ b/support.md @@ -0,0 +1,13 @@ +# 在线支持 + +请发邮件至: + +``` +islenote@sentenceend.com +``` + +24 小时内无回复,请联系我: + +``` +lijianchao@sentenceend.com +``` \ No newline at end of file