diff --git a/.commitlintrc.cjs b/.commitlintrc.cjs index f5710b03..d49f81a3 100644 --- a/.commitlintrc.cjs +++ b/.commitlintrc.cjs @@ -1,12 +1,12 @@ const fs = require('fs') const path = require('path') -const packages = fs.readdirSync(path.resolve(__dirname, 'packages')) +const packages = fs.readdirSync(path.resolve(__dirname, 'plugins')) module.exports = { extends: ['@commitlint/config-conventional'], rules: { - 'scope-enum': [2, 'always', ['docs', ...packages]], + 'scope-enum': [2, 'always', ['docs', 'theme', ...packages]], 'footer-max-line-length': [0], }, } diff --git a/.eslintignore b/.eslintignore index 72a085ad..82509958 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,5 +1,6 @@ node_modules/ .temp/ +.cache/ lib/ dist/ !.vuepress/ diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 9d4a64c3..6be809fd 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -48,7 +48,7 @@ module.exports = { }, }, { - files: ['docs/**'], + files: ['docs/**/*.ts'], rules: { 'import/no-extraneous-dependencies': 'off', }, diff --git a/.gitignore b/.gitignore index 8d5c023e..aaf239c5 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ docs/.vuepress/.cache docs/.vuepress/.temp docs/.vuepress/dist -packages/theme-back lib/ dist/ @@ -13,5 +12,3 @@ dist/ *.log *.tsbuildinfo .mind - -packages/theme-back diff --git a/.vscode/settings.json b/.vscode/settings.json index 0d5b8a17..fb2289d5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,6 +9,7 @@ "files.trimTrailingWhitespace": false }, "typescript.tsdk": "node_modules/typescript/lib", + "eslint.experimental.useFlatConfig": false, "eslint.validate": [ "javascript", "javascriptreact", @@ -33,6 +34,7 @@ "pnpm", "portfinder", "shiki", + "shikiji", "Tongji", "tsbuildinfo", "vite", diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts index def1b756..459dd40a 100644 --- a/docs/.vuepress/config.ts +++ b/docs/.vuepress/config.ts @@ -2,7 +2,7 @@ import * as path from 'path' import { viteBundler } from '@vuepress/bundler-vite' import { webpackBundler } from '@vuepress/bundler-webpack' import { defineUserConfig } from '@vuepress/cli' -import themePlume from '@vuepress-plume/vuepress-theme-plume' +import themePlume from 'vuepress-theme-plume' import { enNotes, zhNotes } from './notes.js' export default defineUserConfig({ diff --git a/docs/.vuepress/notes.ts b/docs/.vuepress/notes.ts index 038468be..c12d2afa 100644 --- a/docs/.vuepress/notes.ts +++ b/docs/.vuepress/notes.ts @@ -1,4 +1,4 @@ -import { definePlumeNotesConfig } from '@vuepress-plume/vuepress-theme-plume' +import { definePlumeNotesConfig } from 'vuepress-theme-plume' export const zhNotes = definePlumeNotesConfig({ dir: 'notes', diff --git a/docs/notes/vuepress-theme-plume/README.md b/docs/notes/vuepress-theme-plume/README.md index e1727a2c..3cab3958 100644 --- a/docs/notes/vuepress-theme-plume/README.md +++ b/docs/notes/vuepress-theme-plume/README.md @@ -41,7 +41,6 @@ __基于 `vuepress 2.0` 制作的 `Blog` 主题。__ ``` sh yarn add @vuepress-plume/vuepress-theme-plume ``` -::: @tab npm ``` sh npm i @vuepress-plume/vuepress-theme-plume @@ -56,13 +55,12 @@ npm i @vuepress-plume/vuepress-theme-plume // .vuepress/config.ts import { defineUserConfig } from 'vuepress' import { themePlume } from '@vuepress-plume/vuepress-theme-plume' -export default defineUserConfig({ - theme: themePlume({ +export default defineUserConfig({ // [!code focus] + theme: themePlume({ // more... }) }) ``` - @tab js ``` js // .vuepress/config.js diff --git a/docs/package.json b/docs/package.json index 07ca2b50..cc991737 100644 --- a/docs/package.json +++ b/docs/package.json @@ -9,7 +9,6 @@ "docs:serve": "anywhere -s -h localhost -d .vuepress/dist" }, "dependencies": { - "@vuepress-plume/vuepress-theme-plume": "workspace:*", "@vuepress/bundler-vite": "2.0.0-rc.0", "@vuepress/bundler-webpack": "2.0.0-rc.0", "@vuepress/cli": "2.0.0-rc.0", @@ -19,6 +18,7 @@ "leancloud-storage": "^4.15.2", "sass": "^1.69.5", "sass-loader": "^13.3.2", - "vue": "^3.3.13" + "vue": "^3.3.13", + "vuepress-theme-plume": "workspace:*" } } diff --git a/package.json b/package.json index 02860703..05f250e5 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "vuepress-theme-plume", + "name": "vuepress-theme-plume-monorepo", "version": "1.0.0-beta.89", "private": true, "keywords": [ @@ -7,8 +7,6 @@ "vuepress-next", "Theme", "vuepress theme", - "vuepress-theme", - "theme-plume", "vuepress-theme-plume" ], "license": "MIT", @@ -17,11 +15,11 @@ "scripts": { "autoUpdate": "node scripts/autoInstall.js", "build": "pnpm run build:package", - "build:package": "pnpm --filter=!vuepress-theme-plume run -r --stream build", + "build:package": "pnpm --filter=!vuepress-theme-plume-monorepo --filter=!docs run -r --stream build", "commit": "cz", "dev": "concurrently \"pnpm run dev:package\" \"pnpm run docs\"", - "dev:package": "pnpm --filter=!vuepress-theme-plume --parallel dev", - "dev:theme": "concurrently \"pnpm --filter=@vuepress-plume/vuepress-theme-plume dev\" \"pnpm run docs\"", + "dev:package": "pnpm --filter=!vuepress-theme-plume-monorepo --filter=!docs --parallel dev", + "dev:theme": "concurrently \"pnpm --filter=vuepress-theme-plume dev\" \"pnpm run docs\"", "docs": "pnpm --filter=docs docs:dev", "docs:build": "pnpm --filter=docs docs:build", "docs:clean": "pnpm --filter=docs docs:clean", @@ -76,7 +74,6 @@ "rimraf": "^5.0.5", "sort-package-json": "^2.6.0", "taze": "^0.13.0", - "ts-node": "^10.9.2", "tsconfig-vuepress": "^4.5.0", "typescript": "^5.3.3", "vite": "^5.0.10" diff --git a/packages/plugin-copy-code/README.md b/packages/plugin-copy-code/README.md deleted file mode 100644 index 4141a4b3..00000000 --- a/packages/plugin-copy-code/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# `@vuepress-plume/vuepress-plugin-copy-code` - -## Install -``` -yarn add @vuepress-plume/vuepress-plugin-copy-code -``` -## Usage -``` js -// .vuepress/config.js -const { copyCodePlugin } = require('@vuepress-plume/vuepress-plugin-copy-code') -module.exports = { - //... - plugins: [ - copyCodePlugin() - ] - // ... -} -``` diff --git a/packages/plugin-copy-code/src/client/styles/button.scss b/packages/plugin-copy-code/src/client/styles/button.scss deleted file mode 100644 index d7af36e1..00000000 --- a/packages/plugin-copy-code/src/client/styles/button.scss +++ /dev/null @@ -1,36 +0,0 @@ -.copy-code-button { - border: none; - background-color: transparent; - outline: 0; - border-radius: 4px; - padding: 5px 10px; - color: #d1d5db; - text-align: center; - cursor: pointer; - - div[class*='language-'] & { - position: absolute; - right: 0; - top: 2rem; - z-index: 99; - opacity: 0; - transition: opacity var(--t-color); - } - - div[class*='language-']:hover & { - opacity: 1; - } - - .icon-success { - display: inline-block; - width: 1.5rem; - height: 1.5rem; - vertical-align: middle; - } -} - -.icon-copy { - display: inline-block; - width: 1.5rem; - height: 1.5rem; -} diff --git a/packages/plugin-copy-code/src/client/svg.ts b/packages/plugin-copy-code/src/client/svg.ts deleted file mode 100644 index 842c2743..00000000 --- a/packages/plugin-copy-code/src/client/svg.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const successSVG = - '' - -export const copySVG = - '' diff --git a/packages/theme/tsconfig.build.json b/packages/theme/tsconfig.build.json deleted file mode 100644 index 7428b0ad..00000000 --- a/packages/theme/tsconfig.build.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "extends": "../tsconfig.build.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./lib", - "baseUrl": ".", - "paths": { - "@theme-plume/*": ["./src/client/components/*"] - }, - "types": ["@vuepress/client/types", "vite/client"] - }, - "include": ["./src"], - "references": [ - { "path": "../plugin-caniuse/tsconfig.build.json" }, - { "path": "../plugin-copy-code/tsconfig.build.json" }, - { "path": "../plugin-baidu-tongji/tsconfig.build.json" } - ], - "files": [] -} diff --git a/packages/plugin-auto-frontmatter/LICENSE b/plugins/plugin-auto-frontmatter/LICENSE similarity index 100% rename from packages/plugin-auto-frontmatter/LICENSE rename to plugins/plugin-auto-frontmatter/LICENSE diff --git a/packages/plugin-auto-frontmatter/README.md b/plugins/plugin-auto-frontmatter/README.md similarity index 92% rename from packages/plugin-auto-frontmatter/README.md rename to plugins/plugin-auto-frontmatter/README.md index 1804150a..e4277015 100644 --- a/packages/plugin-auto-frontmatter/README.md +++ b/plugins/plugin-auto-frontmatter/README.md @@ -1,15 +1,15 @@ -# `@vuepress-plume/vuepress-plugin-auto-frontmatter` +# `@vuepress-plume/plugin-auto-frontmatter` 自动生成 `*.md` 文件的 `frontmatter` 配置。 ## Install ``` -yarn add @vuepress-plume/vuepress-plugin-auto-frontmatter +yarn add @vuepress-plume/plugin-auto-frontmatter ``` ## Usage ``` js // .vuepress/config.js -import { autoFrontmatterPlugin } from '@vuepress-plume/vuepress-plugin-auto-frontmatter' +import { autoFrontmatterPlugin } from '@vuepress-plume/plugin-auto-frontmatter' export default { //... plugins: [ diff --git a/packages/plugin-auto-frontmatter/package.json b/plugins/plugin-auto-frontmatter/package.json similarity index 95% rename from packages/plugin-auto-frontmatter/package.json rename to plugins/plugin-auto-frontmatter/package.json index d4503c50..4fe2b88d 100644 --- a/packages/plugin-auto-frontmatter/package.json +++ b/plugins/plugin-auto-frontmatter/package.json @@ -1,5 +1,5 @@ { - "name": "@vuepress-plume/vuepress-plugin-auto-frontmatter", + "name": "@vuepress-plume/plugin-auto-frontmatter", "version": "1.0.0-beta.89", "description": "The Plugin for VuePres 2", "homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme", diff --git a/packages/plugin-auto-frontmatter/src/node/env.d.ts b/plugins/plugin-auto-frontmatter/src/node/env.d.ts similarity index 100% rename from packages/plugin-auto-frontmatter/src/node/env.d.ts rename to plugins/plugin-auto-frontmatter/src/node/env.d.ts diff --git a/packages/plugin-auto-frontmatter/src/node/index.ts b/plugins/plugin-auto-frontmatter/src/node/index.ts similarity index 100% rename from packages/plugin-auto-frontmatter/src/node/index.ts rename to plugins/plugin-auto-frontmatter/src/node/index.ts diff --git a/packages/plugin-auto-frontmatter/src/node/plugin.ts b/plugins/plugin-auto-frontmatter/src/node/plugin.ts similarity index 97% rename from packages/plugin-auto-frontmatter/src/node/plugin.ts rename to plugins/plugin-auto-frontmatter/src/node/plugin.ts index ff5d7ef1..3476c822 100644 --- a/packages/plugin-auto-frontmatter/src/node/plugin.ts +++ b/plugins/plugin-auto-frontmatter/src/node/plugin.ts @@ -68,7 +68,7 @@ export const autoFrontmatterPlugin = ({ } return { - name: '@vuepress-plume/vuepress-plugin-auto-frontmatter', + name: '@vuepress-plume/plugin-auto-frontmatter', onInitialized: async (app) => { const markdownList = await readMarkdownList(app.dir.source(), globFilter) for (const file of markdownList) { diff --git a/packages/plugin-auto-frontmatter/src/node/readFiles.ts b/plugins/plugin-auto-frontmatter/src/node/readFiles.ts similarity index 100% rename from packages/plugin-auto-frontmatter/src/node/readFiles.ts rename to plugins/plugin-auto-frontmatter/src/node/readFiles.ts diff --git a/packages/plugin-auto-frontmatter/src/node/utils.ts b/plugins/plugin-auto-frontmatter/src/node/utils.ts similarity index 100% rename from packages/plugin-auto-frontmatter/src/node/utils.ts rename to plugins/plugin-auto-frontmatter/src/node/utils.ts diff --git a/packages/plugin-auto-frontmatter/src/shared/index.ts b/plugins/plugin-auto-frontmatter/src/shared/index.ts similarity index 100% rename from packages/plugin-auto-frontmatter/src/shared/index.ts rename to plugins/plugin-auto-frontmatter/src/shared/index.ts diff --git a/packages/plugin-auto-frontmatter/tsconfig.build.json b/plugins/plugin-auto-frontmatter/tsconfig.build.json similarity index 100% rename from packages/plugin-auto-frontmatter/tsconfig.build.json rename to plugins/plugin-auto-frontmatter/tsconfig.build.json diff --git a/packages/plugin-baidu-tongji/LICENSE b/plugins/plugin-baidu-tongji/LICENSE similarity index 100% rename from packages/plugin-baidu-tongji/LICENSE rename to plugins/plugin-baidu-tongji/LICENSE diff --git a/packages/plugin-baidu-tongji/README.md b/plugins/plugin-baidu-tongji/README.md similarity index 54% rename from packages/plugin-baidu-tongji/README.md rename to plugins/plugin-baidu-tongji/README.md index a3a398b8..5f842812 100644 --- a/packages/plugin-baidu-tongji/README.md +++ b/plugins/plugin-baidu-tongji/README.md @@ -1,15 +1,15 @@ -# `@vuepress-plume/vuepress-plugin-baidu-tongji` +# `@vuepress-plume/plugin-baidu-tongji` 在vuepress中接入百度统计 ## Install ``` -yarn add @vuepress-plume/vuepress-plugin-baidu-tongji +yarn add @vuepress-plume/plugin-baidu-tongji ``` ## Usage ``` js // .vuepress/config.js -const { baiduTongjiPlugin } = require('@vuepress-plume/vuepress-plugin-baidu-tongji') +const { baiduTongjiPlugin } = require('@vuepress-plume/plugin-baidu-tongji') module.exports = { //... plugins: [ diff --git a/packages/plugin-baidu-tongji/package.json b/plugins/plugin-baidu-tongji/package.json similarity index 95% rename from packages/plugin-baidu-tongji/package.json rename to plugins/plugin-baidu-tongji/package.json index e682874c..631213bb 100644 --- a/packages/plugin-baidu-tongji/package.json +++ b/plugins/plugin-baidu-tongji/package.json @@ -1,5 +1,5 @@ { - "name": "@vuepress-plume/vuepress-plugin-baidu-tongji", + "name": "@vuepress-plume/plugin-baidu-tongji", "version": "1.0.0-beta.89", "description": "The Plugin for VuePres 2", "homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme", diff --git a/packages/plugin-baidu-tongji/src/node/index.ts b/plugins/plugin-baidu-tongji/src/node/index.ts similarity index 100% rename from packages/plugin-baidu-tongji/src/node/index.ts rename to plugins/plugin-baidu-tongji/src/node/index.ts diff --git a/packages/plugin-baidu-tongji/src/node/plugin.ts b/plugins/plugin-baidu-tongji/src/node/plugin.ts similarity index 90% rename from packages/plugin-baidu-tongji/src/node/plugin.ts rename to plugins/plugin-baidu-tongji/src/node/plugin.ts index 76a08941..09f37aba 100644 --- a/packages/plugin-baidu-tongji/src/node/plugin.ts +++ b/plugins/plugin-baidu-tongji/src/node/plugin.ts @@ -6,7 +6,7 @@ export interface BaiduTongjiOptions { export const baiduTongjiPlugin = ({ key = '' }: BaiduTongjiOptions): Plugin => { return { - name: '@vuepress-plume/vuepress-plugin-baidu-tongji', + name: '@vuepress-plume/plugin-baidu-tongji', extendsPage: (page) => { page.frontmatter.head = page.frontmatter.head || []; page.frontmatter.head?.push([ diff --git a/packages/plugin-baidu-tongji/tsconfig.build.json b/plugins/plugin-baidu-tongji/tsconfig.build.json similarity index 100% rename from packages/plugin-baidu-tongji/tsconfig.build.json rename to plugins/plugin-baidu-tongji/tsconfig.build.json diff --git a/packages/plugin-blog-data/LICENSE b/plugins/plugin-blog-data/LICENSE similarity index 100% rename from packages/plugin-blog-data/LICENSE rename to plugins/plugin-blog-data/LICENSE diff --git a/packages/plugin-blog-data/README.md b/plugins/plugin-blog-data/README.md similarity index 69% rename from packages/plugin-blog-data/README.md rename to plugins/plugin-blog-data/README.md index 3ee7fd54..cc619c6d 100644 --- a/packages/plugin-blog-data/README.md +++ b/plugins/plugin-blog-data/README.md @@ -1,13 +1,13 @@ -# `@vuepress-plume/vuepress-plugin-blog-data` +# `@vuepress-plume/plugin-blog-data` ## Install ``` -yarn add @vuepress-plume/vuepress-plugin-blog-data +yarn add @vuepress-plume/plugin-blog-data ``` ## Usage ``` js // .vuepress/config.js -const { blogDataPlugin } = require('@vuepress-plume/vuepress-plugin-blog-data') +const { blogDataPlugin } = require('@vuepress-plume/plugin-blog-data') module.exports = { //... plugins: [ diff --git a/packages/plugin-blog-data/package.json b/plugins/plugin-blog-data/package.json similarity index 96% rename from packages/plugin-blog-data/package.json rename to plugins/plugin-blog-data/package.json index 31a6e513..7b947e78 100644 --- a/packages/plugin-blog-data/package.json +++ b/plugins/plugin-blog-data/package.json @@ -1,5 +1,5 @@ { - "name": "@vuepress-plume/vuepress-plugin-blog-data", + "name": "@vuepress-plume/plugin-blog-data", "version": "1.0.0-beta.89", "description": "The Plugin for VuePres 2", "homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme", diff --git a/packages/plugin-blog-data/src/client/blogPostData.d.ts b/plugins/plugin-blog-data/src/client/blogPostData.d.ts similarity index 100% rename from packages/plugin-blog-data/src/client/blogPostData.d.ts rename to plugins/plugin-blog-data/src/client/blogPostData.d.ts diff --git a/packages/plugin-blog-data/src/client/composables/index.ts b/plugins/plugin-blog-data/src/client/composables/index.ts similarity index 100% rename from packages/plugin-blog-data/src/client/composables/index.ts rename to plugins/plugin-blog-data/src/client/composables/index.ts diff --git a/packages/plugin-blog-data/src/client/composables/useBlogPostData.ts b/plugins/plugin-blog-data/src/client/composables/useBlogPostData.ts similarity index 100% rename from packages/plugin-blog-data/src/client/composables/useBlogPostData.ts rename to plugins/plugin-blog-data/src/client/composables/useBlogPostData.ts diff --git a/packages/plugin-blog-data/src/client/config.ts b/plugins/plugin-blog-data/src/client/config.ts similarity index 100% rename from packages/plugin-blog-data/src/client/config.ts rename to plugins/plugin-blog-data/src/client/config.ts diff --git a/packages/plugin-blog-data/src/client/index.ts b/plugins/plugin-blog-data/src/client/index.ts similarity index 100% rename from packages/plugin-blog-data/src/client/index.ts rename to plugins/plugin-blog-data/src/client/index.ts diff --git a/packages/plugin-blog-data/src/node/index.ts b/plugins/plugin-blog-data/src/node/index.ts similarity index 100% rename from packages/plugin-blog-data/src/node/index.ts rename to plugins/plugin-blog-data/src/node/index.ts diff --git a/packages/plugin-blog-data/src/node/plugin.ts b/plugins/plugin-blog-data/src/node/plugin.ts similarity index 96% rename from packages/plugin-blog-data/src/node/plugin.ts rename to plugins/plugin-blog-data/src/node/plugin.ts index e7ed341f..a5b9fe83 100644 --- a/packages/plugin-blog-data/src/node/plugin.ts +++ b/plugins/plugin-blog-data/src/node/plugin.ts @@ -19,7 +19,7 @@ export const blogDataPlugin = ({ }) return { - name: '@vuepress-plume/vuepress-plugin-blog-data', + name: '@vuepress-plume/plugin-blog-data', clientConfigFile: path.resolve(__dirname, '../client/config.js'), extendsPage(page) { if (page.filePathRelative && pageFilter(page.filePathRelative)) { diff --git a/packages/plugin-blog-data/src/node/prepareBlogData.ts b/plugins/plugin-blog-data/src/node/prepareBlogData.ts similarity index 100% rename from packages/plugin-blog-data/src/node/prepareBlogData.ts rename to plugins/plugin-blog-data/src/node/prepareBlogData.ts diff --git a/packages/plugin-blog-data/src/shared/index.ts b/plugins/plugin-blog-data/src/shared/index.ts similarity index 100% rename from packages/plugin-blog-data/src/shared/index.ts rename to plugins/plugin-blog-data/src/shared/index.ts diff --git a/packages/plugin-blog-data/tsconfig.build.json b/plugins/plugin-blog-data/tsconfig.build.json similarity index 100% rename from packages/plugin-blog-data/tsconfig.build.json rename to plugins/plugin-blog-data/tsconfig.build.json diff --git a/packages/plugin-caniuse/CHANGELOG.md b/plugins/plugin-caniuse/CHANGELOG.md similarity index 100% rename from packages/plugin-caniuse/CHANGELOG.md rename to plugins/plugin-caniuse/CHANGELOG.md diff --git a/packages/plugin-caniuse/LICENSE b/plugins/plugin-caniuse/LICENSE similarity index 100% rename from packages/plugin-caniuse/LICENSE rename to plugins/plugin-caniuse/LICENSE diff --git a/packages/plugin-caniuse/README.md b/plugins/plugin-caniuse/README.md similarity index 74% rename from packages/plugin-caniuse/README.md rename to plugins/plugin-caniuse/README.md index 3fc534bf..e4e3fbdc 100644 --- a/packages/plugin-caniuse/README.md +++ b/plugins/plugin-caniuse/README.md @@ -1,14 +1,14 @@ -# `@vuepress-plume/vuepress-plugin-caniuse` +# `@vuepress-plume/plugin-caniuse` 为 markdown 添加 can-i-use 容器支持 ## Install ``` -yarn add @vuepress-plume/vuepress-plugin-caniuse +yarn add @vuepress-plume/plugin-caniuse ``` ## Usage ``` js // .vuepress/config.js -const { caniusePlugin } = require('@vuepress-plume/vuepress-plugin-caniuse') +const { caniusePlugin } = require('@vuepress-plume/plugin-caniuse') module.exports = { //... plugins: [ diff --git a/packages/plugin-caniuse/package.json b/plugins/plugin-caniuse/package.json similarity index 95% rename from packages/plugin-caniuse/package.json rename to plugins/plugin-caniuse/package.json index 9c29e54c..c1f0cda3 100644 --- a/packages/plugin-caniuse/package.json +++ b/plugins/plugin-caniuse/package.json @@ -1,5 +1,5 @@ { - "name": "@vuepress-plume/vuepress-plugin-caniuse", + "name": "@vuepress-plume/plugin-caniuse", "version": "1.0.0-beta.89", "description": "The Plugin for VuePres 2, Support Can-I-Use feature", "keywords": [ diff --git a/packages/plugin-caniuse/src/README.md b/plugins/plugin-caniuse/src/README.md similarity index 88% rename from packages/plugin-caniuse/src/README.md rename to plugins/plugin-caniuse/src/README.md index 7e41d6df..9d6adcba 100644 --- a/packages/plugin-caniuse/src/README.md +++ b/plugins/plugin-caniuse/src/README.md @@ -8,7 +8,7 @@ VuePress 2 插件 ## Install ``` sh -yarn add @vuepress-plume/vuepress-plugin-caniuse +yarn add @vuepress-plume/plugin-caniuse ``` ## Usage @@ -19,7 +19,7 @@ yarn add @vuepress-plume/vuepress-plugin-caniuse export default { // ... plugins: [ - ['@vuepress-plume/vuepress-plugin-caniuse', { mode: 'image' }] + ['@vuepress-plume/plugin-caniuse', { mode: 'image' }] ] // ... } diff --git a/packages/plugin-caniuse/src/client/clientConfig.ts b/plugins/plugin-caniuse/src/client/clientConfig.ts similarity index 100% rename from packages/plugin-caniuse/src/client/clientConfig.ts rename to plugins/plugin-caniuse/src/client/clientConfig.ts diff --git a/packages/plugin-caniuse/src/client/index.ts b/plugins/plugin-caniuse/src/client/index.ts similarity index 100% rename from packages/plugin-caniuse/src/client/index.ts rename to plugins/plugin-caniuse/src/client/index.ts diff --git a/packages/plugin-caniuse/src/client/resolveCanIUse.ts b/plugins/plugin-caniuse/src/client/resolveCanIUse.ts similarity index 100% rename from packages/plugin-caniuse/src/client/resolveCanIUse.ts rename to plugins/plugin-caniuse/src/client/resolveCanIUse.ts diff --git a/packages/plugin-caniuse/src/node/index.ts b/plugins/plugin-caniuse/src/node/index.ts similarity index 100% rename from packages/plugin-caniuse/src/node/index.ts rename to plugins/plugin-caniuse/src/node/index.ts diff --git a/packages/plugin-caniuse/src/node/markdown-it-container.d.ts b/plugins/plugin-caniuse/src/node/markdown-it-container.d.ts similarity index 100% rename from packages/plugin-caniuse/src/node/markdown-it-container.d.ts rename to plugins/plugin-caniuse/src/node/markdown-it-container.d.ts diff --git a/packages/plugin-caniuse/src/node/plugin.ts b/plugins/plugin-caniuse/src/node/plugin.ts similarity index 96% rename from packages/plugin-caniuse/src/node/plugin.ts rename to plugins/plugin-caniuse/src/node/plugin.ts index 1f19eb6c..496103b0 100644 --- a/packages/plugin-caniuse/src/node/plugin.ts +++ b/plugins/plugin-caniuse/src/node/plugin.ts @@ -16,7 +16,7 @@ export const caniusePlugin = ({ const type = 'caniuse' const validateReg = new RegExp(`^${type}\\s+(.*)$`) const pluginObj: PluginObject = { - name: '@vuepress-plume/vuepress-plugin-caniuse', + name: '@vuepress-plume/plugin-caniuse', clientConfigFile: path.resolve(__dirname, '../client/clientConfig.js'), define: { __CAN_I_USE_INJECT_MODE__: mode, diff --git a/packages/plugin-caniuse/src/node/resolveCanIUse.ts b/plugins/plugin-caniuse/src/node/resolveCanIUse.ts similarity index 100% rename from packages/plugin-caniuse/src/node/resolveCanIUse.ts rename to plugins/plugin-caniuse/src/node/resolveCanIUse.ts diff --git a/packages/plugin-caniuse/src/shared/caniuse.ts b/plugins/plugin-caniuse/src/shared/caniuse.ts similarity index 100% rename from packages/plugin-caniuse/src/shared/caniuse.ts rename to plugins/plugin-caniuse/src/shared/caniuse.ts diff --git a/packages/plugin-caniuse/src/shared/index.ts b/plugins/plugin-caniuse/src/shared/index.ts similarity index 100% rename from packages/plugin-caniuse/src/shared/index.ts rename to plugins/plugin-caniuse/src/shared/index.ts diff --git a/packages/plugin-caniuse/tsconfig.build.json b/plugins/plugin-caniuse/tsconfig.build.json similarity index 100% rename from packages/plugin-caniuse/tsconfig.build.json rename to plugins/plugin-caniuse/tsconfig.build.json diff --git a/packages/plugin-copy-code/LICENSE b/plugins/plugin-copy-code/LICENSE similarity index 100% rename from packages/plugin-copy-code/LICENSE rename to plugins/plugin-copy-code/LICENSE diff --git a/plugins/plugin-copy-code/README.md b/plugins/plugin-copy-code/README.md new file mode 100644 index 00000000..9135f4ca --- /dev/null +++ b/plugins/plugin-copy-code/README.md @@ -0,0 +1,18 @@ +# `@vuepress-plume/plugin-copy-code` + +## Install +``` +yarn add @vuepress-plume/plugin-copy-code +``` +## Usage +``` js +// .vuepress/config.js +const { copyCodePlugin } = require('@vuepress-plume/plugin-copy-code') +module.exports = { + //... + plugins: [ + copyCodePlugin() + ] + // ... +} +``` diff --git a/packages/plugin-copy-code/package.json b/plugins/plugin-copy-code/package.json similarity index 95% rename from packages/plugin-copy-code/package.json rename to plugins/plugin-copy-code/package.json index 21f4d9bc..fe49e821 100644 --- a/packages/plugin-copy-code/package.json +++ b/plugins/plugin-copy-code/package.json @@ -1,5 +1,5 @@ { - "name": "@vuepress-plume/vuepress-plugin-copy-code", + "name": "@vuepress-plume/plugin-copy-code", "version": "1.0.0-beta.89", "description": "The Plugin for VuePres 2", "homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme", diff --git a/packages/plugin-copy-code/src/client/clientConfig.ts b/plugins/plugin-copy-code/src/client/clientConfig.ts similarity index 100% rename from packages/plugin-copy-code/src/client/clientConfig.ts rename to plugins/plugin-copy-code/src/client/clientConfig.ts diff --git a/packages/plugin-copy-code/src/client/composables/copyToClipboard.ts b/plugins/plugin-copy-code/src/client/composables/copyToClipboard.ts similarity index 100% rename from packages/plugin-copy-code/src/client/composables/copyToClipboard.ts rename to plugins/plugin-copy-code/src/client/composables/copyToClipboard.ts diff --git a/packages/plugin-copy-code/src/client/composables/index.ts b/plugins/plugin-copy-code/src/client/composables/index.ts similarity index 100% rename from packages/plugin-copy-code/src/client/composables/index.ts rename to plugins/plugin-copy-code/src/client/composables/index.ts diff --git a/packages/plugin-copy-code/src/client/composables/setup.ts b/plugins/plugin-copy-code/src/client/composables/setup.ts similarity index 93% rename from packages/plugin-copy-code/src/client/composables/setup.ts rename to plugins/plugin-copy-code/src/client/composables/setup.ts index 97347780..e105b80c 100644 --- a/packages/plugin-copy-code/src/client/composables/setup.ts +++ b/plugins/plugin-copy-code/src/client/composables/setup.ts @@ -2,7 +2,6 @@ import { onMounted, watch } from 'vue' import { useRoute } from 'vue-router' import type { CopyCodeOptions } from '../../shared/index.js' -import { copySVG, successSVG } from '../svg.js' import { copyToClipboard } from './copyToClipboard.js' declare const __COPY_CODE_OPTIONS__: CopyCodeOptions // declare const __COPY_CODE_LOCALES_OPTIONS__: CopyCodeLocaleOption @@ -29,14 +28,13 @@ export const setupCopyCode = (): void => { if (codeBlockEl.hasAttribute('has-copy-code')) return const button = document.createElement('button') button.className = 'copy-code-button' - button.innerHTML = copySVG button.addEventListener('click', () => { copyToClipboard(codeBlockEl.innerText) - button.innerHTML = successSVG + button.classList.add('copied') options.duration && setTimeout(() => { - button.innerHTML = copySVG + button.classList.remove('copied') }, options.duration) }) diff --git a/packages/plugin-copy-code/src/client/index.ts b/plugins/plugin-copy-code/src/client/index.ts similarity index 100% rename from packages/plugin-copy-code/src/client/index.ts rename to plugins/plugin-copy-code/src/client/index.ts diff --git a/plugins/plugin-copy-code/src/client/styles/button.scss b/plugins/plugin-copy-code/src/client/styles/button.scss new file mode 100644 index 00000000..3ea7073b --- /dev/null +++ b/plugins/plugin-copy-code/src/client/styles/button.scss @@ -0,0 +1,90 @@ +:root { + --icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E"); + --icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E"); +} + +:root { + --code-copy-code-border-color: #e2e2e3; + --code-copy-code-bg: #f6f6f7; + --code-copy-code-hover-border-color: #e2e2e3; + --code-copy-code-hover-bg: #fff; + --code-copy-code-active-text: rgba(60, 60, 67, 0.78); + --code-copy-copied-text-content: 'Copied'; +} + +.dark { + --code-copy-code-border-color: #2e2e32; + --code-copy-code-bg: #202127; + --code-copy-code-hover-bg: #1b1b1f; + --code-copy-code-hover-border-color: #2e2e32; + --code-copy-code-active-text: rgba(235, 235, 245, 0.6); +} + +.copy-code-button { + /*rtl:ignore*/ + direction: ltr; + position: absolute; + top: 12px; + /*rtl:ignore*/ + right: 12px; + z-index: 3; + border: 1px solid var(--code-copy-code-border-color); + border-radius: 4px; + width: 40px; + height: 40px; + background-color: var(--code-copy-code-bg); + opacity: 0; + cursor: pointer; + background-image: var(--icon-copy); + background-position: 50%; + background-size: 20px; + background-repeat: no-repeat; + transition: + border-color 0.25s, + background-color 0.25s, + opacity 0.25s; +} + +[class*='language-']:hover > .copy-code-button, +[class*='language-'] > .copy-code-button:focus { + opacity: 1; +} + +[class*='language-'] > .copy-code-button:hover, +[class*='language-'] > .copy-code-button.copied { + border-color: var(--code-copy-code-hover-border-color); + background-color: var(--code-copy-code-hover-bg); +} + +[class*='language-'] > .copy-code-button.copied, +[class*='language-'] > .copy-code-button:hover.copied { + /*rtl:ignore*/ + border-radius: 0 4px 4px 0; + background-color: var(--code-copy-code-hover-bg); + background-image: var(--icon-copied); +} + +[class*='language-'] > .copy-code-button.copied::before, +[class*='language-'] > .copy-code-button:hover.copied::before { + position: relative; + top: -1px; + /*rtl:ignore*/ + transform: translateX(calc(-100% - 1px)); + display: flex; + justify-content: center; + align-items: center; + border: 1px solid var(--code-copy-code-hover-border-color); + /*rtl:ignore*/ + border-right: 0; + border-radius: 4px 0 0 4px; + padding: 0 10px; + width: fit-content; + height: 40px; + text-align: center; + font-size: 12px; + font-weight: 500; + color: var(--code-copy-code-active-text); + background-color: var(--code-copy-code-hover-bg); + white-space: nowrap; + content: var(--code-copy-copied-text-content); +} diff --git a/packages/plugin-copy-code/src/node/index.ts b/plugins/plugin-copy-code/src/node/index.ts similarity index 100% rename from packages/plugin-copy-code/src/node/index.ts rename to plugins/plugin-copy-code/src/node/index.ts diff --git a/packages/plugin-copy-code/src/node/plugin.ts b/plugins/plugin-copy-code/src/node/plugin.ts similarity index 95% rename from packages/plugin-copy-code/src/node/plugin.ts rename to plugins/plugin-copy-code/src/node/plugin.ts index 3f4ff5eb..4497b020 100644 --- a/packages/plugin-copy-code/src/node/plugin.ts +++ b/plugins/plugin-copy-code/src/node/plugin.ts @@ -30,7 +30,7 @@ export const copyCodePlugin = (options: CopyCodeOptions): Plugin => { const localesOption = Object.assign({}, defaultLocalesOption, locales) return { - name: '@vuepress-plume/vuepress-plugin-copy-code', + name: '@vuepress-plume/plugin-copy-code', define: (): Record => ({ __COPY_CODE_OPTIONS__: options, diff --git a/packages/plugin-copy-code/src/shared/index.ts b/plugins/plugin-copy-code/src/shared/index.ts similarity index 100% rename from packages/plugin-copy-code/src/shared/index.ts rename to plugins/plugin-copy-code/src/shared/index.ts diff --git a/packages/plugin-copy-code/tsconfig.build.json b/plugins/plugin-copy-code/tsconfig.build.json similarity index 100% rename from packages/plugin-copy-code/tsconfig.build.json rename to plugins/plugin-copy-code/tsconfig.build.json diff --git a/packages/plugin-iconify/LICENSE b/plugins/plugin-iconify/LICENSE similarity index 100% rename from packages/plugin-iconify/LICENSE rename to plugins/plugin-iconify/LICENSE diff --git a/packages/plugin-iconify/README.md b/plugins/plugin-iconify/README.md similarity index 74% rename from packages/plugin-iconify/README.md rename to plugins/plugin-iconify/README.md index a637038f..e7b80342 100644 --- a/packages/plugin-iconify/README.md +++ b/plugins/plugin-iconify/README.md @@ -1,15 +1,15 @@ -# `@vuepress-plume/vuepress-plugin-iconify` +# `@vuepress-plume/plugin-iconify` 添加 `iconify` 图标库支持。并注入全局组件 `` ## Install ``` -yarn add @vuepress-plume/vuepress-plugin-iconify +yarn add @vuepress-plume/plugin-iconify ``` ## Usage ``` js // .vuepress/config.js -const iconifyPlugin = require('@vuepress-plume/vuepress-plugin-iconify') +const iconifyPlugin = require('@vuepress-plume/plugin-iconify') module.exports = { //... plugins: [ diff --git a/packages/plugin-iconify/package.json b/plugins/plugin-iconify/package.json similarity index 96% rename from packages/plugin-iconify/package.json rename to plugins/plugin-iconify/package.json index 6859ef51..6f8423c6 100644 --- a/packages/plugin-iconify/package.json +++ b/plugins/plugin-iconify/package.json @@ -1,5 +1,5 @@ { - "name": "@vuepress-plume/vuepress-plugin-iconify", + "name": "@vuepress-plume/plugin-iconify", "version": "1.0.0-beta.89", "description": "The Plugin for VuePres 2", "homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme", diff --git a/packages/plugin-iconify/src/client/clientConfig.ts b/plugins/plugin-iconify/src/client/clientConfig.ts similarity index 100% rename from packages/plugin-iconify/src/client/clientConfig.ts rename to plugins/plugin-iconify/src/client/clientConfig.ts diff --git a/packages/plugin-iconify/src/client/components/Iconify.vue b/plugins/plugin-iconify/src/client/components/Iconify.vue similarity index 100% rename from packages/plugin-iconify/src/client/components/Iconify.vue rename to plugins/plugin-iconify/src/client/components/Iconify.vue diff --git a/packages/plugin-iconify/src/client/composables/iconify.ts b/plugins/plugin-iconify/src/client/composables/iconify.ts similarity index 100% rename from packages/plugin-iconify/src/client/composables/iconify.ts rename to plugins/plugin-iconify/src/client/composables/iconify.ts diff --git a/packages/plugin-iconify/src/client/index.ts b/plugins/plugin-iconify/src/client/index.ts similarity index 100% rename from packages/plugin-iconify/src/client/index.ts rename to plugins/plugin-iconify/src/client/index.ts diff --git a/packages/plugin-iconify/src/node/index.ts b/plugins/plugin-iconify/src/node/index.ts similarity index 100% rename from packages/plugin-iconify/src/node/index.ts rename to plugins/plugin-iconify/src/node/index.ts diff --git a/packages/plugin-iconify/src/node/plugin.ts b/plugins/plugin-iconify/src/node/plugin.ts similarity index 92% rename from packages/plugin-iconify/src/node/plugin.ts rename to plugins/plugin-iconify/src/node/plugin.ts index a0b5fa1f..23d5c0b4 100644 --- a/packages/plugin-iconify/src/node/plugin.ts +++ b/plugins/plugin-iconify/src/node/plugin.ts @@ -9,7 +9,7 @@ export const iconifyPlugin = ({ }: IconifyOptions = {}): Plugin => { return (app: App) => { return { - name: '@vuepress-plume/vuepress-plugin-iconify', + name: '@vuepress-plume/plugin-iconify', define: { __VUEPRESS_PLUGIN_ICONIFY_COMPONENT_NAME__: componentName, __VUEPRESS_PLUGIN_ICONIFY_DEFAULT_SIZE__: size, diff --git a/packages/plugin-iconify/src/shared/index.ts b/plugins/plugin-iconify/src/shared/index.ts similarity index 100% rename from packages/plugin-iconify/src/shared/index.ts rename to plugins/plugin-iconify/src/shared/index.ts diff --git a/packages/plugin-iconify/src/shim.d.ts b/plugins/plugin-iconify/src/shim.d.ts similarity index 100% rename from packages/plugin-iconify/src/shim.d.ts rename to plugins/plugin-iconify/src/shim.d.ts diff --git a/packages/plugin-iconify/tsconfig.build.json b/plugins/plugin-iconify/tsconfig.build.json similarity index 100% rename from packages/plugin-iconify/tsconfig.build.json rename to plugins/plugin-iconify/tsconfig.build.json diff --git a/packages/plugin-netlify-functions/LICENSE b/plugins/plugin-netlify-functions/LICENSE similarity index 100% rename from packages/plugin-netlify-functions/LICENSE rename to plugins/plugin-netlify-functions/LICENSE diff --git a/packages/plugin-netlify-functions/README.md b/plugins/plugin-netlify-functions/README.md similarity index 93% rename from packages/plugin-netlify-functions/README.md rename to plugins/plugin-netlify-functions/README.md index 58d56c32..e9938e16 100644 --- a/packages/plugin-netlify-functions/README.md +++ b/plugins/plugin-netlify-functions/README.md @@ -1,4 +1,4 @@ -# `@vuepress-plume/vuepress-plugin-netlify-functions` +# `@vuepress-plume/plugin-netlify-functions` If your vuepress site is deployed on `netlify` and you want to be able to use `netlify functions` for ` serverless`. @@ -24,7 +24,7 @@ You may need this plugin to provide support. ## Install ``` -yarn add @vuepress-plume/vuepress-plugin-netlify-functions +yarn add @vuepress-plume/plugin-netlify-functions ``` ## Usage @@ -33,7 +33,7 @@ yarn add @vuepress-plume/vuepress-plugin-netlify-functions 在 vuepress 项目中,或者在一个 vuepress 主题中 ``` js // .vuepress/config.js - import { netlifyFunctionsPlugin } from '@vuepress-plume/vuepress-plugin-netlify-functions' + import { netlifyFunctionsPlugin } from '@vuepress-plume/plugin-netlify-functions' module.exports = { //... plugins: [ @@ -47,7 +47,7 @@ yarn add @vuepress-plume/vuepress-plugin-netlify-functions 在 vuepress plugin 中: ``` js - import { useNetlifyFunctionsPlugin } from '@vuepress-plume/vuepress-plugin-netlify-functions' + import { useNetlifyFunctionsPlugin } from '@vuepress-plume/plugin-netlify-functions' const myPlugin = (): Plugin => { return (app: App) => { diff --git a/packages/plugin-netlify-functions/package.json b/plugins/plugin-netlify-functions/package.json similarity index 96% rename from packages/plugin-netlify-functions/package.json rename to plugins/plugin-netlify-functions/package.json index 5596bfb3..d3368fd8 100644 --- a/packages/plugin-netlify-functions/package.json +++ b/plugins/plugin-netlify-functions/package.json @@ -1,5 +1,5 @@ { - "name": "@vuepress-plume/vuepress-plugin-netlify-functions", + "name": "@vuepress-plume/plugin-netlify-functions", "version": "1.0.0-beta.89", "description": "The Plugin for VuePres 2, Support Netlify Functions", "keywords": [ diff --git a/packages/plugin-netlify-functions/src/node/extendsBundlerOptions.ts b/plugins/plugin-netlify-functions/src/node/extendsBundlerOptions.ts similarity index 100% rename from packages/plugin-netlify-functions/src/node/extendsBundlerOptions.ts rename to plugins/plugin-netlify-functions/src/node/extendsBundlerOptions.ts diff --git a/packages/plugin-netlify-functions/src/node/index.ts b/plugins/plugin-netlify-functions/src/node/index.ts similarity index 100% rename from packages/plugin-netlify-functions/src/node/index.ts rename to plugins/plugin-netlify-functions/src/node/index.ts diff --git a/packages/plugin-netlify-functions/src/node/netlify/index.ts b/plugins/plugin-netlify-functions/src/node/netlify/index.ts similarity index 100% rename from packages/plugin-netlify-functions/src/node/netlify/index.ts rename to plugins/plugin-netlify-functions/src/node/netlify/index.ts diff --git a/packages/plugin-netlify-functions/src/node/netlify/initFunctions.ts b/plugins/plugin-netlify-functions/src/node/netlify/initFunctions.ts similarity index 100% rename from packages/plugin-netlify-functions/src/node/netlify/initFunctions.ts rename to plugins/plugin-netlify-functions/src/node/netlify/initFunctions.ts diff --git a/packages/plugin-netlify-functions/src/node/netlify/netlifyConfig.ts b/plugins/plugin-netlify-functions/src/node/netlify/netlifyConfig.ts similarity index 100% rename from packages/plugin-netlify-functions/src/node/netlify/netlifyConfig.ts rename to plugins/plugin-netlify-functions/src/node/netlify/netlifyConfig.ts diff --git a/packages/plugin-netlify-functions/src/node/netlify/netlifyServer.ts b/plugins/plugin-netlify-functions/src/node/netlify/netlifyServer.ts similarity index 100% rename from packages/plugin-netlify-functions/src/node/netlify/netlifyServer.ts rename to plugins/plugin-netlify-functions/src/node/netlify/netlifyServer.ts diff --git a/packages/plugin-netlify-functions/src/node/plugin.ts b/plugins/plugin-netlify-functions/src/node/plugin.ts similarity index 98% rename from packages/plugin-netlify-functions/src/node/plugin.ts rename to plugins/plugin-netlify-functions/src/node/plugin.ts index 81bd424b..644cf484 100644 --- a/packages/plugin-netlify-functions/src/node/plugin.ts +++ b/plugins/plugin-netlify-functions/src/node/plugin.ts @@ -78,7 +78,7 @@ export const netlifyFunctionsPlugin = ( let server: NetlifyServe cache.options = opts return { - name: '@vuepress-plume/vuepress-plugin-netlify-functions', + name: '@vuepress-plume/plugin-netlify-functions', onInitialized: async (app) => { // 启动netlify functions server diff --git a/packages/plugin-netlify-functions/src/node/shim.d.ts b/plugins/plugin-netlify-functions/src/node/shim.d.ts similarity index 100% rename from packages/plugin-netlify-functions/src/node/shim.d.ts rename to plugins/plugin-netlify-functions/src/node/shim.d.ts diff --git a/packages/plugin-netlify-functions/src/node/useNetlifyFunctionsPlugins.ts b/plugins/plugin-netlify-functions/src/node/useNetlifyFunctionsPlugins.ts similarity index 95% rename from packages/plugin-netlify-functions/src/node/useNetlifyFunctionsPlugins.ts rename to plugins/plugin-netlify-functions/src/node/useNetlifyFunctionsPlugins.ts index b538a19f..ce941877 100644 --- a/packages/plugin-netlify-functions/src/node/useNetlifyFunctionsPlugins.ts +++ b/plugins/plugin-netlify-functions/src/node/useNetlifyFunctionsPlugins.ts @@ -35,7 +35,7 @@ export const useNetlifyFunctionsPlugin = ( if ( !plugins.some( (plugin: PluginObject) => - plugin.name === '@vuepress-plume/vuepress-plugin-netlify-functions' + plugin.name === '@vuepress-plume/plugin-netlify-functions' ) ) { app.use(netlifyFunctionsPlugin()) diff --git a/packages/plugin-netlify-functions/src/node/utils/index.ts b/plugins/plugin-netlify-functions/src/node/utils/index.ts similarity index 100% rename from packages/plugin-netlify-functions/src/node/utils/index.ts rename to plugins/plugin-netlify-functions/src/node/utils/index.ts diff --git a/packages/plugin-netlify-functions/src/node/utils/readFileList.ts b/plugins/plugin-netlify-functions/src/node/utils/readFileList.ts similarity index 100% rename from packages/plugin-netlify-functions/src/node/utils/readFileList.ts rename to plugins/plugin-netlify-functions/src/node/utils/readFileList.ts diff --git a/packages/plugin-netlify-functions/src/shared/index.ts b/plugins/plugin-netlify-functions/src/shared/index.ts similarity index 100% rename from packages/plugin-netlify-functions/src/shared/index.ts rename to plugins/plugin-netlify-functions/src/shared/index.ts diff --git a/packages/plugin-netlify-functions/tsconfig.build.json b/plugins/plugin-netlify-functions/tsconfig.build.json similarity index 100% rename from packages/plugin-netlify-functions/tsconfig.build.json rename to plugins/plugin-netlify-functions/tsconfig.build.json diff --git a/packages/plugin-notes-data/LICENSE b/plugins/plugin-notes-data/LICENSE similarity index 100% rename from packages/plugin-notes-data/LICENSE rename to plugins/plugin-notes-data/LICENSE diff --git a/packages/plugin-notes-data/README.md b/plugins/plugin-notes-data/README.md similarity index 76% rename from packages/plugin-notes-data/README.md rename to plugins/plugin-notes-data/README.md index a81bc06e..7429c080 100644 --- a/packages/plugin-notes-data/README.md +++ b/plugins/plugin-notes-data/README.md @@ -1,13 +1,13 @@ -# `@vuepress-plume/vuepress-plugin-notes-data` +# `@vuepress-plume/plugin-notes-data` ## Install ``` -yarn add @vuepress-plume/vuepress-plugin-notes-data +yarn add @vuepress-plume/plugin-notes-data ``` ## Usage ``` js // .vuepress/config.js -const notesDataPlugin = require('@vuepress-plume/vuepress-plugin-notes-data') +const notesDataPlugin = require('@vuepress-plume/plugin-notes-data') module.exports = { //... plugins: [ diff --git a/packages/plugin-notes-data/package.json b/plugins/plugin-notes-data/package.json similarity index 96% rename from packages/plugin-notes-data/package.json rename to plugins/plugin-notes-data/package.json index 40570cde..d74f0f1c 100644 --- a/packages/plugin-notes-data/package.json +++ b/plugins/plugin-notes-data/package.json @@ -1,5 +1,5 @@ { - "name": "@vuepress-plume/vuepress-plugin-notes-data", + "name": "@vuepress-plume/plugin-notes-data", "version": "1.0.0-beta.89", "description": "The Plugin for VuePres 2", "homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme", diff --git a/packages/plugin-notes-data/src/client/clientConfig.ts b/plugins/plugin-notes-data/src/client/clientConfig.ts similarity index 100% rename from packages/plugin-notes-data/src/client/clientConfig.ts rename to plugins/plugin-notes-data/src/client/clientConfig.ts diff --git a/packages/plugin-notes-data/src/client/composables/index.ts b/plugins/plugin-notes-data/src/client/composables/index.ts similarity index 100% rename from packages/plugin-notes-data/src/client/composables/index.ts rename to plugins/plugin-notes-data/src/client/composables/index.ts diff --git a/packages/plugin-notes-data/src/client/composables/notesDate.ts b/plugins/plugin-notes-data/src/client/composables/notesDate.ts similarity index 100% rename from packages/plugin-notes-data/src/client/composables/notesDate.ts rename to plugins/plugin-notes-data/src/client/composables/notesDate.ts diff --git a/packages/plugin-notes-data/src/client/index.ts b/plugins/plugin-notes-data/src/client/index.ts similarity index 100% rename from packages/plugin-notes-data/src/client/index.ts rename to plugins/plugin-notes-data/src/client/index.ts diff --git a/packages/plugin-notes-data/src/client/notesData.d.ts b/plugins/plugin-notes-data/src/client/notesData.d.ts similarity index 100% rename from packages/plugin-notes-data/src/client/notesData.d.ts rename to plugins/plugin-notes-data/src/client/notesData.d.ts diff --git a/packages/plugin-notes-data/src/node/index.ts b/plugins/plugin-notes-data/src/node/index.ts similarity index 100% rename from packages/plugin-notes-data/src/node/index.ts rename to plugins/plugin-notes-data/src/node/index.ts diff --git a/packages/plugin-notes-data/src/node/plugin.ts b/plugins/plugin-notes-data/src/node/plugin.ts similarity index 91% rename from packages/plugin-notes-data/src/node/plugin.ts rename to plugins/plugin-notes-data/src/node/plugin.ts index 1a9b64af..76c146ee 100644 --- a/packages/plugin-notes-data/src/node/plugin.ts +++ b/plugins/plugin-notes-data/src/node/plugin.ts @@ -6,7 +6,7 @@ import { prepareNotesData, watchNotesData } from './prepareNotesData.js' export const notesDataPlugin = (options: NotesDataOptions): Plugin => { return (app: App) => { return { - name: '@vuepress-plume/vuepress-plugin-notes-data', + name: '@vuepress-plume/plugin-notes-data', clientConfigFile: path.resolve( getDirname(import.meta.url), '../client/clientConfig.js' diff --git a/packages/plugin-notes-data/src/node/prepareNotesData.ts b/plugins/plugin-notes-data/src/node/prepareNotesData.ts similarity index 100% rename from packages/plugin-notes-data/src/node/prepareNotesData.ts rename to plugins/plugin-notes-data/src/node/prepareNotesData.ts diff --git a/packages/plugin-notes-data/src/node/utils.ts b/plugins/plugin-notes-data/src/node/utils.ts similarity index 100% rename from packages/plugin-notes-data/src/node/utils.ts rename to plugins/plugin-notes-data/src/node/utils.ts diff --git a/packages/plugin-notes-data/src/shared/index.ts b/plugins/plugin-notes-data/src/shared/index.ts similarity index 100% rename from packages/plugin-notes-data/src/shared/index.ts rename to plugins/plugin-notes-data/src/shared/index.ts diff --git a/packages/plugin-notes-data/tsconfig.build.json b/plugins/plugin-notes-data/tsconfig.build.json similarity index 100% rename from packages/plugin-notes-data/tsconfig.build.json rename to plugins/plugin-notes-data/tsconfig.build.json diff --git a/packages/plugin-page-collection/LICENSE b/plugins/plugin-page-collection/LICENSE similarity index 100% rename from packages/plugin-page-collection/LICENSE rename to plugins/plugin-page-collection/LICENSE diff --git a/packages/plugin-page-collection/README.md b/plugins/plugin-page-collection/README.md similarity index 97% rename from packages/plugin-page-collection/README.md rename to plugins/plugin-page-collection/README.md index bc1371bb..32fbd7af 100644 --- a/packages/plugin-page-collection/README.md +++ b/plugins/plugin-page-collection/README.md @@ -1,4 +1,4 @@ -# `@vuepress-plume/vuepress-plugin-page-collection` +# `@vuepress-plume/plugin-page-collection` 这是一个使用了 `netlify functions` + `leancloud` 的 `VuePress2` 插件示例。 diff --git a/packages/plugin-page-collection/database/Page.json b/plugins/plugin-page-collection/database/Page.json similarity index 100% rename from packages/plugin-page-collection/database/Page.json rename to plugins/plugin-page-collection/database/Page.json diff --git a/packages/plugin-page-collection/package.json b/plugins/plugin-page-collection/package.json similarity index 86% rename from packages/plugin-page-collection/package.json rename to plugins/plugin-page-collection/package.json index cb64ae09..b7cf42b5 100644 --- a/packages/plugin-page-collection/package.json +++ b/plugins/plugin-page-collection/package.json @@ -1,5 +1,5 @@ { - "name": "@vuepress-plume/vuepress-plugin-page-collection", + "name": "@vuepress-plume/plugin-page-collection", "version": "1.0.0-beta.89", "private": true, "description": "The Plugin for VuePres 2", @@ -32,7 +32,7 @@ }, "dependencies": { "@netlify/functions": "^2.4.1", - "@vuepress-plume/vuepress-plugin-netlify-functions": "workspace:*", + "@vuepress-plume/plugin-netlify-functions": "workspace:*", "@vuepress/client": "2.0.0-rc.0", "@vuepress/core": "2.0.0-rc.0", "@vuepress/shared": "2.0.0-rc.0", @@ -47,7 +47,7 @@ "keyword": [ "VuePress", "vuepress plugin", - "pageCollection", - "vuepress-plugin-plugin-page-collection" + "page collection", + "vuepress-plugin-page-collection" ] } diff --git a/packages/plugin-page-collection/src/client/clientConfig.ts b/plugins/plugin-page-collection/src/client/clientConfig.ts similarity index 100% rename from packages/plugin-page-collection/src/client/clientConfig.ts rename to plugins/plugin-page-collection/src/client/clientConfig.ts diff --git a/packages/plugin-page-collection/src/client/components/PageCollection.ts b/plugins/plugin-page-collection/src/client/components/PageCollection.ts similarity index 100% rename from packages/plugin-page-collection/src/client/components/PageCollection.ts rename to plugins/plugin-page-collection/src/client/components/PageCollection.ts diff --git a/packages/plugin-page-collection/src/client/composables/index.ts b/plugins/plugin-page-collection/src/client/composables/index.ts similarity index 100% rename from packages/plugin-page-collection/src/client/composables/index.ts rename to plugins/plugin-page-collection/src/client/composables/index.ts diff --git a/packages/plugin-page-collection/src/client/composables/usePageCollection.ts b/plugins/plugin-page-collection/src/client/composables/usePageCollection.ts similarity index 100% rename from packages/plugin-page-collection/src/client/composables/usePageCollection.ts rename to plugins/plugin-page-collection/src/client/composables/usePageCollection.ts diff --git a/packages/plugin-page-collection/src/client/index.ts b/plugins/plugin-page-collection/src/client/index.ts similarity index 100% rename from packages/plugin-page-collection/src/client/index.ts rename to plugins/plugin-page-collection/src/client/index.ts diff --git a/packages/plugin-page-collection/src/node/functions/page_collection.ts b/plugins/plugin-page-collection/src/node/functions/page_collection.ts similarity index 100% rename from packages/plugin-page-collection/src/node/functions/page_collection.ts rename to plugins/plugin-page-collection/src/node/functions/page_collection.ts diff --git a/packages/plugin-page-collection/src/node/index.ts b/plugins/plugin-page-collection/src/node/index.ts similarity index 100% rename from packages/plugin-page-collection/src/node/index.ts rename to plugins/plugin-page-collection/src/node/index.ts diff --git a/packages/plugin-page-collection/src/node/plugin.ts b/plugins/plugin-page-collection/src/node/plugin.ts similarity index 87% rename from packages/plugin-page-collection/src/node/plugin.ts rename to plugins/plugin-page-collection/src/node/plugin.ts index f6403bda..608a9be4 100644 --- a/packages/plugin-page-collection/src/node/plugin.ts +++ b/plugins/plugin-page-collection/src/node/plugin.ts @@ -4,11 +4,11 @@ * 然后在此基础上进行修改 */ -// 通过引入 '@vuepress-plume/vuepress-plugin-netlify-functions' 插件,来为本插件提供 +// 通过引入 '@vuepress-plume/plugin-netlify-functions' 插件,来为本插件提供 // netlify functions 开发时支持 import type { App, Plugin } from '@vuepress/core' import { getDirname, path } from '@vuepress/utils' -import { useNetlifyFunctionsPlugin } from '@vuepress-plume/vuepress-plugin-netlify-functions' +import { useNetlifyFunctionsPlugin } from '@vuepress-plume/plugin-netlify-functions' import type { PageCollectionOptions } from '../shared/index.js' const __dirname = getDirname(import.meta.url) @@ -34,7 +34,7 @@ export const pageCollectionPlugin = ( directory: path.join(__dirname, 'functions'), }) return { - name: '@vuepress-plume/vuepress-plugin-page-collection', + name: '@vuepress-plume/plugin-page-collection', define: () => ({ // 将 proxyPrefix 注入到 客户端中 // 以便获取使用 diff --git a/packages/plugin-page-collection/src/shared/index.ts b/plugins/plugin-page-collection/src/shared/index.ts similarity index 100% rename from packages/plugin-page-collection/src/shared/index.ts rename to plugins/plugin-page-collection/src/shared/index.ts diff --git a/packages/plugin-page-collection/tsconfig.build.json b/plugins/plugin-page-collection/tsconfig.build.json similarity index 100% rename from packages/plugin-page-collection/tsconfig.build.json rename to plugins/plugin-page-collection/tsconfig.build.json diff --git a/packages/plugin-windicss/LICENSE b/plugins/plugin-shikiji/LICENSE similarity index 100% rename from packages/plugin-windicss/LICENSE rename to plugins/plugin-shikiji/LICENSE diff --git a/plugins/plugin-shikiji/README.md b/plugins/plugin-shikiji/README.md new file mode 100644 index 00000000..3963abbd --- /dev/null +++ b/plugins/plugin-shikiji/README.md @@ -0,0 +1,67 @@ +# `@vuepress-plume/plugin-shikiji` + +使用 [`shikiji`](https://shikiji.netlify.app/) 来为 Markdown 代码块启用代码高亮。 + +## Install +``` +yarn add @vuepress-plume/plugin-shikiji +``` +## Usage +``` js +// .vuepress/config.js +const shikijiPlugin = require('@vuepress-plume/plugin-shikiji') +module.exports = { + //... + plugins: [ + shikijiPlugin() + ] + // ... +} +``` + +## Options + +```ts +interface ShikijiOptions { + /** + * Custom theme for syntax highlighting. + * + * You can also pass an object with `light` and `dark` themes to support dual themes. + * + * @example { theme: 'github-dark' } + * @example { theme: { light: 'github-light', dark: 'github-dark' } } + * + * You can use an existing theme. + * @see https://github.com/antfu/shikiji/blob/main/docs/themes.md#all-themes + * Or add your own theme. + * @see https://github.com/antfu/shikiji/blob/main/docs/themes.md#load-custom-themes + */ + theme?: ThemeOptions + /** + * Languages for syntax highlighting. + * @see https://github.com/antfu/shikiji/blob/main/docs/languages.md#all-themes + */ + languages?: LanguageInput[] + /** + * Custom language aliases. + * + * @example { 'my-lang': 'js' } + * @see https://github.com/antfu/shikiji/tree/main#custom-language-aliases + */ + languageAlias?: Record + /** + * Setup Shikiji instance + */ + shikijiSetup?: (shikiji: Highlighter) => void | Promise + /** + * Fallback language when the specified language is not available. + */ + defaultHighlightLang?: string + /** + * Transformers applied to code blocks + * @see https://github.com/antfu/shikiji#hast-transformers + */ + codeTransformers?: ShikijiTransformer[] +} + +``` diff --git a/plugins/plugin-shikiji/package.json b/plugins/plugin-shikiji/package.json new file mode 100644 index 00000000..8f2cb751 --- /dev/null +++ b/plugins/plugin-shikiji/package.json @@ -0,0 +1,45 @@ +{ + "name": "@vuepress-plume/plugin-shikiji", + "version": "1.0.0-beta.89", + "description": "The Plugin for VuePres 2", + "homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme", + "bugs": { + "url": "https://github.com/pengzhanbo/vuepress-theme-plume/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/pengzhanbo/vuepress-theme-plume.git" + }, + "license": "MIT", + "author": "pengzhanbo ", + "type": "module", + "exports": { + ".": "./lib/node/index.js", + "./package.json": "./package.json" + }, + "main": "lib/node/index.js", + "types": "./lib/node/index.d.ts", + "scripts": { + "build": "pnpm run clean && pnpm run copy && pnpm run ts", + "clean": "rimraf lib *.tsbuildinfo", + "copy": "cpx \"src/**/*.{d.ts,vue,css,scss,jpg,png}\" lib", + "ts": "tsc -b tsconfig.build.json" + }, + "dependencies": { + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "nanoid": "^5.0.4", + "picocolors": "^1.0.0", + "shikiji": "^0.9.11", + "shikiji-transformers": "^0.9.11" + }, + "publishConfig": { + "access": "public" + }, + "keyword": [ + "VuePress", + "vuepress plugin", + "shikiji", + "vuepress-plugin-shikiji" + ] +} diff --git a/plugins/plugin-shikiji/src/node/highlight.ts b/plugins/plugin-shikiji/src/node/highlight.ts new file mode 100644 index 00000000..de50dc9d --- /dev/null +++ b/plugins/plugin-shikiji/src/node/highlight.ts @@ -0,0 +1,150 @@ +import { logger } from '@vuepress/utils' +import { customAlphabet } from 'nanoid' +import c from 'picocolors' +import type { ShikijiTransformer } from 'shikiji' +import { + addClassToHast, + bundledLanguages, + getHighlighter, + isPlaintext as isPlainLang, + isSpecialLang +} from 'shikiji' +import { + transformerNotationDiff, + transformerNotationErrorLevel, + transformerNotationFocus, + transformerNotationHighlight +} from 'shikiji-transformers' +import type { HighlighterOptions, ThemeOptions } from './types.js' + +const nanoid = customAlphabet('abcdefghijklmnopqrstuvwxyz', 10) + +export async function highlight( + theme: ThemeOptions, + options: HighlighterOptions, +): Promise<(str: string, lang: string, attrs: string) => string> { + const { + defaultHighlightLang: defaultLang = '', + codeTransformers: userTransformers = [] + } = options + + const highlighter = await getHighlighter({ + themes: + typeof theme === 'string' || 'name' in theme + ? [theme] + : [theme.light, theme.dark], + langs: [...Object.keys(bundledLanguages), ...(options.languages || [])], + langAlias: options.languageAlias + }) + + await options?.shikijiSetup?.(highlighter) + + const transformers: ShikijiTransformer[] = [ + transformerNotationDiff(), + transformerNotationFocus({ + classActiveLine: 'has-focus', + classActivePre: 'has-focused-lines' + }), + transformerNotationHighlight(), + transformerNotationErrorLevel(), + { + name: 'vuepress:add-class', + pre(node) { + addClassToHast(node, 'vp-code') + } + }, + { + name: 'vuepress:clean-up', + pre(node) { + delete node.properties.tabindex + delete node.properties.style + } + } + ] + + const vueRE = /-vue$/ + const lineNoStartRE = /=(\d*)/ + const lineNoRE = /:(no-)?line-numbers(=\d*)?$/ + const mustacheRE = /\{\{.*?\}\}/g + + return (str: string, lang: string, attrs: string) => { + const vPre = vueRE.test(lang) ? '' : 'v-pre' + lang = + lang + .replace(lineNoStartRE, '') + .replace(lineNoRE, '') + .replace(vueRE, '') + .toLowerCase() || defaultLang + + if (lang) { + const langLoaded = highlighter.getLoadedLanguages().includes(lang as any) + if (!langLoaded && !isPlainLang(lang) && !isSpecialLang(lang)) { + logger.warn( + c.yellow( + `\nThe language '${lang}' is not loaded, falling back to '${defaultLang || 'txt' + }' for syntax highlighting.` + ) + ) + lang = defaultLang + } + } + + // const lineOptions = attrsToLines(attrs) + + const mustaches = new Map() + + const removeMustache = (s: string) => { + if (vPre) return s + return s.replace(mustacheRE, (match) => { + let marker = mustaches.get(match) + if (!marker) { + marker = nanoid() + mustaches.set(match, marker) + } + return marker + }) + } + + const restoreMustache = (s: string) => { + mustaches.forEach((marker, match) => { + s = s.replaceAll(marker, match) + }) + return s + } + + const fillEmptyHighlightedLine = (s: string) => { + return s.replace( + /()(<\/span>)/g, + '$1$2' + ) + '\n' + } + + str = removeMustache(str).trimEnd() + + const highlighted = highlighter.codeToHtml(str, { + lang, + transformers: [ + ...transformers, + // transformerCompactLineOptions(lineOptions), + // { + // name: 'vitepress:v-pre', + // pre(node) { + // if (vPre) node.properties['v-pre'] = '' + // } + // }, + ...userTransformers + ], + meta: { + __raw: attrs + }, + ...(typeof theme === 'string' || 'name' in theme + ? { theme } + : { + themes: theme, + defaultColor: false + }) + }) + + return fillEmptyHighlightedLine(restoreMustache(highlighted)) + } +} diff --git a/plugins/plugin-shikiji/src/node/index.ts b/plugins/plugin-shikiji/src/node/index.ts new file mode 100644 index 00000000..6aca3b80 --- /dev/null +++ b/plugins/plugin-shikiji/src/node/index.ts @@ -0,0 +1,6 @@ +import { shikijiPlugin } from './shikijiPlugin.js' + +export * from './shikijiPlugin.js' +export * from './types.js' + +export default shikijiPlugin diff --git a/plugins/plugin-shikiji/src/node/shikijiPlugin.ts b/plugins/plugin-shikiji/src/node/shikijiPlugin.ts new file mode 100644 index 00000000..8183b7d4 --- /dev/null +++ b/plugins/plugin-shikiji/src/node/shikijiPlugin.ts @@ -0,0 +1,19 @@ +import type { Plugin } from '@vuepress/core' +import { highlight } from './highlight.js' +import type { HighlighterOptions } from './types' +/** + * Options of @vuepress/plugin-shiki + */ +export type ShikijiPluginOptions = HighlighterOptions + +export const shikijiPlugin = ( + options: ShikijiPluginOptions = {}): Plugin => ({ + name: '@vuepress-plume/plugin-shikiji', + + extendsMarkdown: async (md) => { + const theme = options.theme ?? { light: 'github-light', dark: 'github-dark' } + const highlighter = await highlight(theme, options) + + md.options.highlight = highlighter + }, +}) diff --git a/plugins/plugin-shikiji/src/node/types.ts b/plugins/plugin-shikiji/src/node/types.ts new file mode 100644 index 00000000..49e6ab57 --- /dev/null +++ b/plugins/plugin-shikiji/src/node/types.ts @@ -0,0 +1,56 @@ +import type { + BuiltinTheme, + Highlighter, + LanguageInput, + ShikijiTransformer, + ThemeRegistration, +} from 'shikiji' +export type ThemeOptions = + | ThemeRegistration + | BuiltinTheme + | { + light: ThemeRegistration | BuiltinTheme + dark: ThemeRegistration | BuiltinTheme + } + +export interface HighlighterOptions { + /** + * Custom theme for syntax highlighting. + * + * You can also pass an object with `light` and `dark` themes to support dual themes. + * + * @example { theme: 'github-dark' } + * @example { theme: { light: 'github-light', dark: 'github-dark' } } + * + * You can use an existing theme. + * @see https://github.com/antfu/shikiji/blob/main/docs/themes.md#all-themes + * Or add your own theme. + * @see https://github.com/antfu/shikiji/blob/main/docs/themes.md#load-custom-themes + */ + theme?: ThemeOptions + /** + * Languages for syntax highlighting. + * @see https://github.com/antfu/shikiji/blob/main/docs/languages.md#all-themes + */ + languages?: LanguageInput[] + /** + * Custom language aliases. + * + * @example { 'my-lang': 'js' } + * @see https://github.com/antfu/shikiji/tree/main#custom-language-aliases + */ + languageAlias?: Record + /** + * Setup Shikiji instance + */ + shikijiSetup?: (shikiji: Highlighter) => void | Promise + /** + * Fallback language when the specified language is not available. + */ + defaultHighlightLang?: string + /** + * Transformers applied to code blocks + * @see https://github.com/antfu/shikiji#hast-transformers + */ + codeTransformers?: ShikijiTransformer[] +} diff --git a/packages/plugin-windicss/tsconfig.build.json b/plugins/plugin-shikiji/tsconfig.build.json similarity index 100% rename from packages/plugin-windicss/tsconfig.build.json rename to plugins/plugin-shikiji/tsconfig.build.json diff --git a/plugins/plugin-windicss/LICENSE b/plugins/plugin-windicss/LICENSE new file mode 100644 index 00000000..9f677c90 --- /dev/null +++ b/plugins/plugin-windicss/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (C) 2021 - PRESENT by pengzhanbo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/packages/plugin-windicss/README.md b/plugins/plugin-windicss/README.md similarity index 71% rename from packages/plugin-windicss/README.md rename to plugins/plugin-windicss/README.md index ae35c26d..34859179 100644 --- a/packages/plugin-windicss/README.md +++ b/plugins/plugin-windicss/README.md @@ -1,15 +1,15 @@ -# `@vuepress-plume/vuepress-plugin-windicss` +# `@vuepress-plume/plugin-windicss` 添加 `windicss` 支持 ## Install ``` -yarn add @vuepress-plume/vuepress-plugin-windicss +yarn add @vuepress-plume/plugin-windicss ``` ## Usage ``` js // .vuepress/config.js -const { windicssPlugin } = require('@vuepress-plume/vuepress-plugin-windicss') +const { windicssPlugin } = require('@vuepress-plume/plugin-windicss') const path = require('path') module.exports = { //... diff --git a/packages/plugin-windicss/package.json b/plugins/plugin-windicss/package.json similarity index 95% rename from packages/plugin-windicss/package.json rename to plugins/plugin-windicss/package.json index ab6e0b3d..f5a2077f 100644 --- a/packages/plugin-windicss/package.json +++ b/plugins/plugin-windicss/package.json @@ -1,5 +1,5 @@ { - "name": "@vuepress-plume/vuepress-plugin-windicss", + "name": "@vuepress-plume/plugin-windicss", "version": "1.0.0-beta.89", "description": "The Plugin for VuePress 2", "homepage": "https://github.com/pengzhanbo/vuepress-theme-plume#readme", diff --git a/packages/plugin-windicss/src/client/config.vite.ts b/plugins/plugin-windicss/src/client/config.vite.ts similarity index 100% rename from packages/plugin-windicss/src/client/config.vite.ts rename to plugins/plugin-windicss/src/client/config.vite.ts diff --git a/packages/plugin-windicss/src/client/config.webpack.ts b/plugins/plugin-windicss/src/client/config.webpack.ts similarity index 100% rename from packages/plugin-windicss/src/client/config.webpack.ts rename to plugins/plugin-windicss/src/client/config.webpack.ts diff --git a/packages/plugin-windicss/src/node/index.ts b/plugins/plugin-windicss/src/node/index.ts similarity index 100% rename from packages/plugin-windicss/src/node/index.ts rename to plugins/plugin-windicss/src/node/index.ts diff --git a/packages/plugin-windicss/src/node/plugin.ts b/plugins/plugin-windicss/src/node/plugin.ts similarity index 97% rename from packages/plugin-windicss/src/node/plugin.ts rename to plugins/plugin-windicss/src/node/plugin.ts index 21383873..e32f6e67 100644 --- a/packages/plugin-windicss/src/node/plugin.ts +++ b/plugins/plugin-windicss/src/node/plugin.ts @@ -31,7 +31,7 @@ export const windiCSSPlugin = (options?: WindiCSSOptions | string): Plugin => { ? path.resolve(__dirname, '../client/config.vite.js') : path.resolve(__dirname, '../client/config.webpack.js') return { - name: '@vuepress-plume/vuepress-plugin-windicss', + name: '@vuepress-plume/plugin-windicss', clientConfigFile, extendsBundlerOptions: (bundlerOptions, app: App) => { if (app.options.bundler.name === '@vuepress/bundler-vite') { diff --git a/packages/plugin-windicss/src/node/windicss.d.ts b/plugins/plugin-windicss/src/node/windicss.d.ts similarity index 100% rename from packages/plugin-windicss/src/node/windicss.d.ts rename to plugins/plugin-windicss/src/node/windicss.d.ts diff --git a/plugins/plugin-windicss/tsconfig.build.json b/plugins/plugin-windicss/tsconfig.build.json new file mode 100644 index 00000000..6bf67375 --- /dev/null +++ b/plugins/plugin-windicss/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig.build.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib" + }, + "include": ["./src"] +} diff --git a/packages/tsconfig.build.json b/plugins/tsconfig.build.json similarity index 92% rename from packages/tsconfig.build.json rename to plugins/tsconfig.build.json index 93158846..e3ae79aa 100644 --- a/packages/tsconfig.build.json +++ b/plugins/tsconfig.build.json @@ -15,6 +15,6 @@ { "path": "./plugin-notes-data/tsconfig.build.json" }, { "path": "./plugin-page-collection/tsconfig.build.json" }, { "path": "./plugin-windicss/tsconfig.build.json" }, - { "path": "./theme/tsconfig.build.json" } + { "path": "./plugin-shikiji/tsconfig.build.json" } ] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 24d65dd3..1949996d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -92,9 +92,6 @@ importers: taze: specifier: ^0.13.0 version: 0.13.0 - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@types/node@20.9.1)(typescript@5.3.3) tsconfig-vuepress: specifier: ^4.5.0 version: 4.5.0 @@ -107,12 +104,9 @@ importers: docs: dependencies: - '@vuepress-plume/vuepress-theme-plume': - specifier: workspace:* - version: link:../packages/theme '@vuepress/bundler-vite': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(@types/node@20.9.1)(sass@1.69.5)(ts-node@10.9.2)(typescript@5.3.3) + version: 2.0.0-rc.0(@types/node@20.9.1)(sass@1.69.5)(typescript@5.3.3) '@vuepress/bundler-webpack': specifier: 2.0.0-rc.0 version: 2.0.0-rc.0(typescript@5.3.3) @@ -140,8 +134,11 @@ importers: vue: specifier: ^3.3.13 version: 3.3.13(typescript@5.3.3) + vuepress-theme-plume: + specifier: workspace:* + version: link:../theme - packages/plugin-auto-frontmatter: + plugins/plugin-auto-frontmatter: dependencies: '@vuepress/core': specifier: 2.0.0-rc.0 @@ -165,7 +162,7 @@ importers: specifier: ^1.1.0 version: 1.1.0 - packages/plugin-baidu-tongji: + plugins/plugin-baidu-tongji: dependencies: '@vuepress/client': specifier: 2.0.0-rc.0 @@ -180,7 +177,7 @@ importers: specifier: 2.0.0-rc.0 version: 2.0.0-rc.0 - packages/plugin-blog-data: + plugins/plugin-blog-data: dependencies: '@vue/devtools-api': specifier: ^6.5.1 @@ -207,7 +204,7 @@ importers: specifier: ^3.3.13 version: 3.3.13(typescript@5.3.3) - packages/plugin-caniuse: + plugins/plugin-caniuse: dependencies: '@types/markdown-it': specifier: ^13.0.7 @@ -228,7 +225,7 @@ importers: specifier: ^4.0.0 version: 4.0.0 - packages/plugin-copy-code: + plugins/plugin-copy-code: dependencies: '@vuepress/client': specifier: 2.0.0-rc.0 @@ -249,7 +246,7 @@ importers: specifier: 4.2.5 version: 4.2.5(vue@3.3.13) - packages/plugin-iconify: + plugins/plugin-iconify: dependencies: '@iconify/vue': specifier: ^4.1.1 @@ -270,7 +267,7 @@ importers: specifier: ^3.3.13 version: 3.3.13(typescript@5.3.3) - packages/plugin-netlify-functions: + plugins/plugin-netlify-functions: dependencies: '@iarna/toml': specifier: ^2.2.5 @@ -316,7 +313,7 @@ importers: specifier: ^20.10.5 version: 20.10.5 - packages/plugin-notes-data: + plugins/plugin-notes-data: dependencies: '@vue/devtools-api': specifier: ^6.5.1 @@ -343,12 +340,12 @@ importers: specifier: ^3.3.13 version: 3.3.13(typescript@5.3.3) - packages/plugin-page-collection: + plugins/plugin-page-collection: dependencies: '@netlify/functions': specifier: ^2.4.1 version: 2.4.1 - '@vuepress-plume/vuepress-plugin-netlify-functions': + '@vuepress-plume/plugin-netlify-functions': specifier: workspace:* version: link:../plugin-netlify-functions '@vuepress/client': @@ -373,7 +370,28 @@ importers: specifier: 4.2.5 version: 4.2.5(vue@3.3.13) - packages/plugin-windicss: + plugins/plugin-shikiji: + dependencies: + '@vuepress/core': + specifier: 2.0.0-rc.0 + version: 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/utils': + specifier: 2.0.0-rc.0 + version: 2.0.0-rc.0 + nanoid: + specifier: ^5.0.4 + version: 5.0.4 + picocolors: + specifier: ^1.0.0 + version: 1.0.0 + shikiji: + specifier: ^0.9.11 + version: 0.9.11 + shikiji-transformers: + specifier: ^0.9.11 + version: 0.9.11 + + plugins/plugin-windicss: dependencies: '@vuepress/client': specifier: 2.0.0-rc.0 @@ -397,29 +415,32 @@ importers: specifier: ^1.8.0 version: 1.8.0 - packages/theme: + theme: dependencies: - '@vuepress-plume/vuepress-plugin-auto-frontmatter': + '@vuepress-plume/plugin-auto-frontmatter': specifier: workspace:* - version: link:../plugin-auto-frontmatter - '@vuepress-plume/vuepress-plugin-baidu-tongji': + version: link:../plugins/plugin-auto-frontmatter + '@vuepress-plume/plugin-baidu-tongji': specifier: workspace:* - version: link:../plugin-baidu-tongji - '@vuepress-plume/vuepress-plugin-blog-data': + version: link:../plugins/plugin-baidu-tongji + '@vuepress-plume/plugin-blog-data': specifier: workspace:* - version: link:../plugin-blog-data - '@vuepress-plume/vuepress-plugin-caniuse': + version: link:../plugins/plugin-blog-data + '@vuepress-plume/plugin-caniuse': specifier: workspace:* - version: link:../plugin-caniuse - '@vuepress-plume/vuepress-plugin-copy-code': + version: link:../plugins/plugin-caniuse + '@vuepress-plume/plugin-copy-code': specifier: workspace:* - version: link:../plugin-copy-code - '@vuepress-plume/vuepress-plugin-iconify': + version: link:../plugins/plugin-copy-code + '@vuepress-plume/plugin-iconify': specifier: workspace:* - version: link:../plugin-iconify - '@vuepress-plume/vuepress-plugin-notes-data': + version: link:../plugins/plugin-iconify + '@vuepress-plume/plugin-notes-data': specifier: workspace:* - version: link:../plugin-notes-data + version: link:../plugins/plugin-notes-data + '@vuepress-plume/plugin-shikiji': + specifier: workspace:* + version: link:../plugins/plugin-shikiji '@vuepress/client': specifier: 2.0.0-rc.0 version: 2.0.0-rc.0(typescript@5.3.3) @@ -450,15 +471,9 @@ importers: '@vuepress/plugin-palette': specifier: 2.0.0-rc.0 version: 2.0.0-rc.0(typescript@5.3.3) - '@vuepress/plugin-prismjs': - specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/plugin-search': specifier: 2.0.0-rc.0 version: 2.0.0-rc.0(typescript@5.3.3) - '@vuepress/plugin-shiki': - specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/plugin-theme-data': specifier: 2.0.0-rc.0 version: 2.0.0-rc.0(typescript@5.3.3) @@ -474,9 +489,6 @@ importers: '@vueuse/core': specifier: ^10.7.0 version: 10.7.0(vue@3.3.13) - body-scroll-lock: - specifier: 4.0.0-beta.0 - version: 4.0.0-beta.0 date-fns: specifier: ^3.0.5 version: 3.0.5 @@ -673,10 +685,6 @@ packages: hasBin: true dev: true - /@antfu/utils@0.7.2: - resolution: {integrity: sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==} - dev: false - /@antfu/utils@0.7.6: resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==} @@ -709,10 +717,10 @@ packages: '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helpers': 7.23.2 - '@babel/parser': 7.23.3 + '@babel/parser': 7.23.6 '@babel/template': 7.22.15 '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@9.2.2) gensync: 1.0.0-beta.2 @@ -726,7 +734,7 @@ packages: resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 '@jridgewell/gen-mapping': 0.3.2 '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 @@ -753,21 +761,21 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: false /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: false /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: false /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): @@ -788,19 +796,14 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: false /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 - dev: false - - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} - engines: {node: '>=6.9.0'} + '@babel/types': 7.23.5 dev: false /@babel/helper-string-parser@7.23.4: @@ -828,7 +831,7 @@ packages: dependencies: '@babel/template': 7.22.15 '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 transitivePeerDependencies: - supports-color dev: false @@ -850,20 +853,12 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.3: - resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.23.3 - dev: false - /@babel/parser@7.23.6: resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.5 dev: false /@babel/runtime-corejs3@7.18.9: @@ -885,8 +880,8 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.5 dev: false /@babel/traverse@7.23.3: @@ -899,23 +894,14 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.5 debug: 4.3.4(supports-color@9.2.2) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: false - /@babel/types@7.23.3: - resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - dev: false - /@babel/types@7.23.4: resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==} engines: {node: '>=6.9.0'} @@ -1007,19 +993,10 @@ packages: conventional-changelog-conventionalcommits: 7.0.2 dev: true - /@commitlint/config-validator@18.4.0: - resolution: {integrity: sha512-1y6qHMU3o4cYQSK+Y9EnmH6H1GRiwQGjnLIUOIKlekrmfc8MrMk1ByNmb8od4vK3qHJAaL/77/5n+1uyyIF5dA==} - engines: {node: '>=v18'} - requiresBuild: true - dependencies: - '@commitlint/types': 18.4.0 - ajv: 8.12.0 - dev: true - optional: true - /@commitlint/config-validator@18.4.3: resolution: {integrity: sha512-FPZZmTJBARPCyef9ohRC9EANiQEKSWIdatx5OlgeHKu878dWwpyeFauVkhzuBRJFcCA4Uvz/FDtlDKs008IHcA==} engines: {node: '>=v18'} + requiresBuild: true dependencies: '@commitlint/types': 18.4.3 ajv: 8.12.0 @@ -1037,16 +1014,10 @@ packages: lodash.upperfirst: 4.3.1 dev: true - /@commitlint/execute-rule@18.4.0: - resolution: {integrity: sha512-g013SWki6ZWhURBLOSXTaVQGWHdA0QlPJGiW4a+YpThezmJOemvc4LiKVpn13AjSKQ40QnmBqpBrxujOaSo+3A==} - engines: {node: '>=v18'} - requiresBuild: true - dev: true - optional: true - /@commitlint/execute-rule@18.4.3: resolution: {integrity: sha512-t7FM4c+BdX9WWZCPrrbV5+0SWLgT3kCq7e7/GhHCreYifg3V8qyvO127HF796vyFql75n4TFF+5v1asOOWkV1Q==} engines: {node: '>=v18'} + requiresBuild: true dev: true /@commitlint/format@18.4.3: @@ -1075,31 +1046,10 @@ packages: '@commitlint/types': 18.4.3 dev: true - /@commitlint/load@18.4.2(typescript@5.3.3): - resolution: {integrity: sha512-CKmzXdF9XwZJoVijAqpUlV9qzZOkyiYni4KuSCtTZVAAVudi9H84cJ4FqZxSwEP9G21vmoJiNrW8G042AsduVg==} - engines: {node: '>=v18'} - requiresBuild: true - dependencies: - '@commitlint/config-validator': 18.4.0 - '@commitlint/execute-rule': 18.4.0 - '@commitlint/resolve-extends': 18.4.0 - '@commitlint/types': 18.4.0 - '@types/node': 18.18.9 - chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.3.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@18.18.9)(cosmiconfig@8.3.6)(typescript@5.3.3) - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - lodash.uniq: 4.5.0 - resolve-from: 5.0.0 - transitivePeerDependencies: - - typescript - dev: true - optional: true - /@commitlint/load@18.4.3(typescript@5.3.3): resolution: {integrity: sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==} engines: {node: '>=v18'} + requiresBuild: true dependencies: '@commitlint/config-validator': 18.4.3 '@commitlint/execute-rule': 18.4.3 @@ -1142,23 +1092,10 @@ packages: minimist: 1.2.8 dev: true - /@commitlint/resolve-extends@18.4.0: - resolution: {integrity: sha512-qhgU6ach+S6sJMD9NjCYiEycOObGhxzWQLQzqlScJCv9zkPs15Bg0ffLXTQ3z7ipXv46XEKYMnSJzjLRw2Tlkg==} - engines: {node: '>=v18'} - requiresBuild: true - dependencies: - '@commitlint/config-validator': 18.4.0 - '@commitlint/types': 18.4.0 - import-fresh: 3.3.0 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - dev: true - optional: true - /@commitlint/resolve-extends@18.4.3: resolution: {integrity: sha512-30sk04LZWf8+SDgJrbJCjM90gTg2LxsD9cykCFeFu+JFHvBFq5ugzp2eO/DJGylAdVaqxej3c7eTSE64hR/lnw==} engines: {node: '>=v18'} + requiresBuild: true dependencies: '@commitlint/config-validator': 18.4.3 '@commitlint/types': 18.4.3 @@ -1191,15 +1128,6 @@ packages: find-up: 5.0.0 dev: true - /@commitlint/types@18.4.0: - resolution: {integrity: sha512-MKeaFxt0I9fhqUb2E+YIzX/gZtmkuodJET/XKiZIMvXUff8Ee4Ih86eLg+yAm2jf1pwGBmU02uNOp0y094w2Uw==} - engines: {node: '>=v18'} - requiresBuild: true - dependencies: - chalk: 4.1.2 - dev: true - optional: true - /@commitlint/types@18.4.3: resolution: {integrity: sha512-cvzx+vtY/I2hVBZHCLrpoh+sA0hfuzHwDc+BAFPimYLjJkpHnghQM+z8W/KyLGkygJh3BtI3xXXq+dKjnSWEmA==} engines: {node: '>=v18'} @@ -1212,6 +1140,7 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 + dev: false /@dabh/diagnostics@2.0.3: resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} @@ -1288,15 +1217,6 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm64@0.19.5: - resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - /@esbuild/android-arm64@0.19.6: resolution: {integrity: sha512-KQ/hbe9SJvIJ4sR+2PcZ41IBV+LPJyYp6V1K1P1xcMRup9iYsBoQn4MzE3mhMLOld27Au2eDcLlIREeKGUXpHQ==} engines: {node: '>=12'} @@ -1323,15 +1243,6 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm@0.19.5: - resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - /@esbuild/android-arm@0.19.6: resolution: {integrity: sha512-muPzBqXJKCbMYoNbb1JpZh/ynl0xS6/+pLjrofcR3Nad82SbsCogYzUE6Aq9QT3cLP0jR/IVK/NHC9b90mSHtg==} engines: {node: '>=12'} @@ -1358,15 +1269,6 @@ packages: requiresBuild: true optional: true - /@esbuild/android-x64@0.19.5: - resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false - optional: true - /@esbuild/android-x64@0.19.6: resolution: {integrity: sha512-VVJVZQ7p5BBOKoNxd0Ly3xUM78Y4DyOoFKdkdAe2m11jbh0LEU4bPles4e/72EMl4tapko8o915UalN/5zhspg==} engines: {node: '>=12'} @@ -1393,15 +1295,6 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.19.5: - resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - /@esbuild/darwin-arm64@0.19.6: resolution: {integrity: sha512-91LoRp/uZAKx6ESNspL3I46ypwzdqyDLXZH7x2QYCLgtnaU08+AXEbabY2yExIz03/am0DivsTtbdxzGejfXpA==} engines: {node: '>=12'} @@ -1428,15 +1321,6 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-x64@0.19.5: - resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - /@esbuild/darwin-x64@0.19.6: resolution: {integrity: sha512-QCGHw770ubjBU1J3ZkFJh671MFajGTYMZumPs9E/rqU52md6lIil97BR0CbPq6U+vTh3xnTNDHKRdR8ggHnmxQ==} engines: {node: '>=12'} @@ -1463,15 +1347,6 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.19.5: - resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - /@esbuild/freebsd-arm64@0.19.6: resolution: {integrity: sha512-J53d0jGsDcLzWk9d9SPmlyF+wzVxjXpOH7jVW5ae7PvrDst4kiAz6sX+E8btz0GB6oH12zC+aHRD945jdjF2Vg==} engines: {node: '>=12'} @@ -1498,15 +1373,6 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.19.5: - resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - /@esbuild/freebsd-x64@0.19.6: resolution: {integrity: sha512-hn9qvkjHSIB5Z9JgCCjED6YYVGCNpqB7dEGavBdG6EjBD8S/UcNUIlGcB35NCkMETkdYwfZSvD9VoDJX6VeUVA==} engines: {node: '>=12'} @@ -1533,15 +1399,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm64@0.19.5: - resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-arm64@0.19.6: resolution: {integrity: sha512-HQCOrk9XlH3KngASLaBfHpcoYEGUt829A9MyxaI8RMkfRA8SakG6YQEITAuwmtzFdEu5GU4eyhKcpv27dFaOBg==} engines: {node: '>=12'} @@ -1568,15 +1425,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm@0.19.5: - resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-arm@0.19.6: resolution: {integrity: sha512-G8IR5zFgpXad/Zp7gr7ZyTKyqZuThU6z1JjmRyN1vSF8j0bOlGzUwFSMTbctLAdd7QHpeyu0cRiuKrqK1ZTwvQ==} engines: {node: '>=12'} @@ -1603,15 +1451,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ia32@0.19.5: - resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-ia32@0.19.6: resolution: {integrity: sha512-22eOR08zL/OXkmEhxOfshfOGo8P69k8oKHkwkDrUlcB12S/sw/+COM4PhAPT0cAYW/gpqY2uXp3TpjQVJitz7w==} engines: {node: '>=12'} @@ -1638,15 +1477,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-loong64@0.19.5: - resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-loong64@0.19.6: resolution: {integrity: sha512-82RvaYAh/SUJyjWA8jDpyZCHQjmEggL//sC7F3VKYcBMumQjUL3C5WDl/tJpEiKtt7XrWmgjaLkrk205zfvwTA==} engines: {node: '>=12'} @@ -1673,15 +1503,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.19.5: - resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-mips64el@0.19.6: resolution: {integrity: sha512-8tvnwyYJpR618vboIv2l8tK2SuK/RqUIGMfMENkeDGo3hsEIrpGldMGYFcWxWeEILe5Fi72zoXLmhZ7PR23oQA==} engines: {node: '>=12'} @@ -1708,15 +1529,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.19.5: - resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-ppc64@0.19.6: resolution: {integrity: sha512-Qt+D7xiPajxVNk5tQiEJwhmarNnLPdjXAoA5uWMpbfStZB0+YU6a3CtbWYSy+sgAsnyx4IGZjWsTzBzrvg/fMA==} engines: {node: '>=12'} @@ -1743,15 +1555,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.19.5: - resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-riscv64@0.19.6: resolution: {integrity: sha512-lxRdk0iJ9CWYDH1Wpnnnc640ajF4RmQ+w6oHFZmAIYu577meE9Ka/DCtpOrwr9McMY11ocbp4jirgGgCi7Ls/g==} engines: {node: '>=12'} @@ -1778,15 +1581,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-s390x@0.19.5: - resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-s390x@0.19.6: resolution: {integrity: sha512-MopyYV39vnfuykHanRWHGRcRC3AwU7b0QY4TI8ISLfAGfK+tMkXyFuyT1epw/lM0pflQlS53JoD22yN83DHZgA==} engines: {node: '>=12'} @@ -1813,15 +1607,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-x64@0.19.5: - resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-x64@0.19.6: resolution: {integrity: sha512-UWcieaBzsN8WYbzFF5Jq7QULETPcQvlX7KL4xWGIB54OknXJjBO37sPqk7N82WU13JGWvmDzFBi1weVBajPovg==} engines: {node: '>=12'} @@ -1848,15 +1633,6 @@ packages: requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.19.5: - resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false - optional: true - /@esbuild/netbsd-x64@0.19.6: resolution: {integrity: sha512-EpWiLX0fzvZn1wxtLxZrEW+oQED9Pwpnh+w4Ffv8ZLuMhUoqR9q9rL4+qHW8F4Mg5oQEKxAoT0G+8JYNqCiR6g==} engines: {node: '>=12'} @@ -1883,15 +1659,6 @@ packages: requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.19.5: - resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false - optional: true - /@esbuild/openbsd-x64@0.19.6: resolution: {integrity: sha512-fFqTVEktM1PGs2sLKH4M5mhAVEzGpeZJuasAMRnvDZNCV0Cjvm1Hu35moL2vC0DOrAQjNTvj4zWrol/lwQ8Deg==} engines: {node: '>=12'} @@ -1918,15 +1685,6 @@ packages: requiresBuild: true optional: true - /@esbuild/sunos-x64@0.19.5: - resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false - optional: true - /@esbuild/sunos-x64@0.19.6: resolution: {integrity: sha512-M+XIAnBpaNvaVAhbe3uBXtgWyWynSdlww/JNZws0FlMPSBy+EpatPXNIlKAdtbFVII9OpX91ZfMb17TU3JKTBA==} engines: {node: '>=12'} @@ -1953,15 +1711,6 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-arm64@0.19.5: - resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@esbuild/win32-arm64@0.19.6: resolution: {integrity: sha512-2DchFXn7vp/B6Tc2eKdTsLzE0ygqKkNUhUBCNtMx2Llk4POIVMUq5rUYjdcedFlGLeRe1uLCpVvCmE+G8XYybA==} engines: {node: '>=12'} @@ -1988,15 +1737,6 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-ia32@0.19.5: - resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@esbuild/win32-ia32@0.19.6: resolution: {integrity: sha512-PBo/HPDQllyWdjwAVX+Gl2hH0dfBydL97BAH/grHKC8fubqp02aL4S63otZ25q3sBdINtOBbz1qTZQfXbP4VBg==} engines: {node: '>=12'} @@ -2023,15 +1763,6 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-x64@0.19.5: - resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@esbuild/win32-x64@0.19.6: resolution: {integrity: sha512-OE7yIdbDif2kKfrGa+V0vx/B3FJv2L4KnIiLlvtibPyO9UkgO3rzYE0HhpREo2vmJ1Ixq1zwm9/0er+3VOSZJA==} engines: {node: '>=12'} @@ -2283,6 +2014,7 @@ packages: /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} + dev: false /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} @@ -2302,6 +2034,7 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: false /@jridgewell/trace-mapping@0.3.18: resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} @@ -2315,6 +2048,7 @@ packages: dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.15 + dev: false /@jsdevtools/ez-spawn@3.0.4: resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} @@ -2412,7 +2146,7 @@ packages: npmlog: 5.0.1 rimraf: 3.0.2 semver: 7.5.4 - tar: 6.1.13 + tar: 6.2.0 transitivePeerDependencies: - encoding - supports-color @@ -2885,7 +2619,7 @@ packages: netlify: 13.1.11 netlify-headers-parser: 7.1.2 netlify-redirect-parser: 14.2.0 - node-fetch: 3.3.1 + node-fetch: 3.3.2 omit.js: 2.0.2 p-locate: 6.0.0 path-type: 5.0.0 @@ -2913,7 +2647,7 @@ packages: get-port: 6.1.2 is-path-inside: 4.0.0 jsonc-parser: 3.2.0 - node-fetch: 3.3.1 + node-fetch: 3.3.2 node-stream-zip: 1.15.0 p-retry: 5.1.1 p-wait-for: 4.1.0 @@ -3142,7 +2876,7 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} hasBin: true dependencies: - '@babel/parser': 7.23.3 + '@babel/parser': 7.23.6 '@babel/types': 7.23.4 '@netlify/binary-info': 1.0.0 '@netlify/serverless-functions-api': 1.13.0 @@ -3157,7 +2891,7 @@ packages: filter-obj: 5.1.0 find-up: 6.3.0 glob: 8.0.3 - is-builtin-module: 3.2.0 + is-builtin-module: 3.2.1 is-path-inside: 4.0.0 junk: 4.0.0 locate-path: 7.2.0 @@ -3185,7 +2919,7 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} hasBin: true dependencies: - '@babel/parser': 7.23.3 + '@babel/parser': 7.23.6 '@babel/types': 7.23.5 '@netlify/binary-info': 1.0.0 '@netlify/serverless-functions-api': 1.13.0 @@ -3200,7 +2934,7 @@ packages: filter-obj: 5.1.0 find-up: 6.3.0 glob: 8.0.3 - is-builtin-module: 3.2.0 + is-builtin-module: 3.2.1 is-path-inside: 4.0.0 junk: 4.0.0 locate-path: 7.2.0 @@ -4082,6 +3816,7 @@ packages: dependencies: is-glob: 4.0.3 micromatch: 4.0.5 + napi-wasm: 1.1.0 dev: false bundledDependencies: - napi-wasm @@ -4378,15 +4113,19 @@ packages: /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: false /@tsconfig/node12@1.0.11: resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: false /@tsconfig/node14@1.0.3: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: false /@tsconfig/node16@1.0.3: resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} + dev: false /@tufjs/canonical-json@2.0.0: resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} @@ -4586,6 +4325,7 @@ packages: /@types/node@18.18.9: resolution: {integrity: sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==} + requiresBuild: true dependencies: undici-types: 5.26.5 dev: true @@ -5006,11 +4746,7 @@ packages: resolution: {integrity: sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==} dev: false - /@vue/shared@3.3.8: - resolution: {integrity: sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==} - dev: false - - /@vuepress/bundler-vite@2.0.0-rc.0(@types/node@20.9.1)(sass@1.69.5)(ts-node@10.9.2)(typescript@5.3.3): + /@vuepress/bundler-vite@2.0.0-rc.0(@types/node@20.9.1)(sass@1.69.5)(typescript@5.3.3): resolution: {integrity: sha512-rX8S8IYpqqlJfNPstS/joorpxXx/4WuE7+gDM31i2HUrxOKGZVzq8ZsRRRU2UdoTwHZSd3LpUS4sMtxE5xLK1A==} dependencies: '@vitejs/plugin-vue': 4.5.0(vite@5.0.10)(vue@3.3.13) @@ -5021,7 +4757,7 @@ packages: autoprefixer: 10.4.16(postcss@8.4.31) connect-history-api-fallback: 2.0.0 postcss: 8.4.31 - postcss-load-config: 4.0.1(postcss@8.4.31)(ts-node@10.9.2) + postcss-load-config: 4.0.1(postcss@8.4.31) rollup: 4.4.1 vite: 5.0.10(@types/node@20.9.1)(sass@1.69.5) vue: 3.3.13(typescript@5.3.3) @@ -5092,7 +4828,7 @@ packages: cac: 6.7.14 chokidar: 3.5.3 envinfo: 7.11.0 - esbuild: 0.19.5 + esbuild: 0.19.10 transitivePeerDependencies: - '@vue/composition-api' - supports-color @@ -5104,7 +4840,7 @@ packages: dependencies: '@vue/devtools-api': 6.5.1 '@vuepress/shared': 2.0.0-rc.0 - '@vueuse/core': 10.6.1(vue@3.3.13) + '@vueuse/core': 10.7.0(vue@3.3.13) vue: 3.3.13(typescript@5.3.3) vue-router: 4.2.5(vue@3.3.13) transitivePeerDependencies: @@ -5272,17 +5008,6 @@ packages: - typescript dev: false - /@vuepress/plugin-prismjs@2.0.0-rc.0(typescript@5.3.3): - resolution: {integrity: sha512-c5WRI7+FhVjdbymOKQ8F2KY/Bnv7aQtWScVk8vCMUimNi7v7Wff/A/i3KSFNz/tge3LxiAeH/Dc2WS/OnQXwCg==} - dependencies: - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) - prismjs: 1.29.0 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - dev: false - /@vuepress/plugin-search@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-1ikJUgIN+7QrcAftxpWUKTrNVHEN2+k/az0Sjz7Ok7EthMHcG6qQsIb+AoK4WIQMsJkwVPLxwym/M1FbBTZDWQ==} dependencies: @@ -5299,17 +5024,6 @@ packages: - typescript dev: false - /@vuepress/plugin-shiki@2.0.0-rc.0(typescript@5.3.3): - resolution: {integrity: sha512-K06icizhp0zVUtWa6rqL/SKWzzSP+XgYizRoqwdMsGlYNThLXAf4cIseRjF+I4VOFS5aj5hZs8MnxymKmRrwIQ==} - dependencies: - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) - shiki: 0.14.5 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - dev: false - /@vuepress/plugin-theme-data@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-FXY3/Ml+rM6gNKvwdBF6vKAcwnSvtXCzKgQwJAw3ppQTKUkLcbOxqM+h4d8bzHWAAvdnEvQFug5uEZgWllBQbA==} dependencies: @@ -5343,7 +5057,7 @@ packages: resolution: {integrity: sha512-ikdSfjRv5LGM1iv4HHwF9P6gqTjaFCXKPK+hzlkHFHNZO1GLqk7/BPc4F51tAG1s8TcLhUZc+54LrfgS7PkXXA==} dependencies: '@mdit-vue/types': 1.0.0 - '@vue/shared': 3.3.8 + '@vue/shared': 3.3.13 dev: false /@vuepress/utils@2.0.0-rc.0: @@ -5364,18 +5078,6 @@ packages: - supports-color dev: false - /@vueuse/core@10.6.1(vue@3.3.13): - resolution: {integrity: sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q==} - dependencies: - '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 10.6.1 - '@vueuse/shared': 10.6.1(vue@3.3.13) - vue-demi: 0.14.6(vue@3.3.13) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: false - /@vueuse/core@10.7.0(vue@3.3.13): resolution: {integrity: sha512-4EUDESCHtwu44ZWK3Gc/hZUVhVo/ysvdtwocB5vcauSV4B7NiGY5972WnsojB3vRNdxvAt7kzJWE2h9h7C9d5w==} dependencies: @@ -5388,23 +5090,10 @@ packages: - vue dev: false - /@vueuse/metadata@10.6.1: - resolution: {integrity: sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw==} - dev: false - /@vueuse/metadata@10.7.0: resolution: {integrity: sha512-GlaH7tKP2iBCZ3bHNZ6b0cl9g0CJK8lttkBNUX156gWvNYhTKEtbweWLm9rxCPIiwzYcr/5xML6T8ZUEt+DkvA==} dev: false - /@vueuse/shared@10.6.1(vue@3.3.13): - resolution: {integrity: sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q==} - dependencies: - vue-demi: 0.14.6(vue@3.3.13) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: false - /@vueuse/shared@10.7.0(vue@3.3.13): resolution: {integrity: sha512-kc00uV6CiaTdc3i1CDC4a3lBxzaBE9AgYNtFN87B5OOscqeWElj/uza8qVDmk7/U8JbqoONLbtqiLJ5LGRuqlw==} dependencies: @@ -5520,16 +5209,6 @@ packages: '@xtuc/long': 4.2.2 dev: false - /@windicss/config@1.9.1: - resolution: {integrity: sha512-MjutTiS9XIteriwkH9D+que+bILbpulekYzjJGQDg3Sb2H87aOcO30f7N11ZiHF5OYoZn4yJz4lDbB3A6IuXfQ==} - dependencies: - debug: 4.3.4(supports-color@9.2.2) - jiti: 1.18.2 - windicss: 3.5.6 - transitivePeerDependencies: - - supports-color - dev: false - /@windicss/config@1.9.2: resolution: {integrity: sha512-5yOaarc7Yce08i3NCNRNMUb/tfmVcFo801UwgM27/dXWWfG30wuPONms8VrQurPZlcZTayPKX0svOx0doWdnPQ==} dependencies: @@ -5540,20 +5219,6 @@ packages: - supports-color dev: false - /@windicss/plugin-utils@1.9.1: - resolution: {integrity: sha512-sz/Z2sxUZIkJ2nVeTmtYTtXhWxe/yTTkM5nqU6eKhP0n6waipTCJJdLvWoZcgzQBbBCL/JLRQd/9BYsBqKuLDQ==} - dependencies: - '@antfu/utils': 0.7.2 - '@windicss/config': 1.9.1 - debug: 4.3.4(supports-color@9.2.2) - fast-glob: 3.3.2 - magic-string: 0.30.0 - micromatch: 4.0.5 - windicss: 3.5.6 - transitivePeerDependencies: - - supports-color - dev: false - /@windicss/plugin-utils@1.9.2: resolution: {integrity: sha512-P019ZVYJSBVzMBhYSzcMIWpMjZZWEynF4s7oXgP9+5msH4/Ek55erFXY6r+e3sysBFohnIr3hosQ5dp9FMG16Q==} dependencies: @@ -5703,6 +5368,7 @@ packages: /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} + dev: false /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} @@ -5904,10 +5570,6 @@ packages: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - /ansi-sequence-parser@1.1.0: - resolution: {integrity: sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==} - dev: false - /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -5937,20 +5599,12 @@ packages: entities: 2.2.0 dev: false - /anymatch@3.1.2: - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: false /anywhere@1.6.0: resolution: {integrity: sha512-X+MpvNGoZNAFsQkyvgBcCdAoz8yHULnW5gfmNrjkGXr6VrtWxsCSlT3bAbbmAE2/umhU9TMF2ffRBL/H2hHvzA==} @@ -6021,6 +5675,7 @@ packages: /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: false /arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -6376,10 +6031,6 @@ packages: - supports-color dev: false - /body-scroll-lock@4.0.0-beta.0: - resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} - dev: false - /bonjour-service@1.0.13: resolution: {integrity: sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==} dependencies: @@ -6587,7 +6238,7 @@ packages: promise-inflight: 1.0.1 rimraf: 3.0.2 ssri: 9.0.1 - tar: 6.1.13 + tar: 6.2.0 unique-filename: 2.0.1 transitivePeerDependencies: - bluebird @@ -6763,7 +6414,7 @@ packages: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} dependencies: - anymatch: 3.1.2 + anymatch: 3.1.3 braces: 3.0.2 glob-parent: 5.1.2 is-binary-path: 2.1.0 @@ -7617,6 +7268,7 @@ packages: /cosmiconfig-typescript-loader@5.0.0(@types/node@18.18.9)(cosmiconfig@8.3.6)(typescript@5.3.3): resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} + requiresBuild: true peerDependencies: '@types/node': '*' cosmiconfig: '>=8.2' @@ -7641,6 +7293,7 @@ packages: /cosmiconfig@8.3.6(typescript@5.3.3): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} + requiresBuild: true peerDependencies: typescript: '>=4.9.5' peerDependenciesMeta: @@ -7732,6 +7385,7 @@ packages: /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: false /cron-parser@4.8.1: resolution: {integrity: sha512-jbokKWGcyU4gl6jAfX97E1gDpY12DJ1cLJZmoDzaAln/shZ+S3KBFBuA2Q6WeUN4gJf/8klnV1EfvhA2lK5IRQ==} @@ -7855,7 +7509,7 @@ packages: longest: 2.0.1 word-wrap: 1.2.3 optionalDependencies: - '@commitlint/load': 18.4.2(typescript@5.3.3) + '@commitlint/load': 18.4.3(typescript@5.3.3) transitivePeerDependencies: - typescript dev: true @@ -8151,8 +7805,8 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dependencies: is-url: 1.2.4 - postcss: 8.4.31 - postcss-values-parser: 6.0.2(postcss@8.4.31) + postcss: 8.4.32 + postcss-values-parser: 6.0.2(postcss@8.4.32) dev: false /detective-sass@5.0.0: @@ -8198,6 +7852,7 @@ packages: /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} + dev: false /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} @@ -8571,36 +8226,6 @@ packages: '@esbuild/win32-ia32': 0.19.10 '@esbuild/win32-x64': 0.19.10 - /esbuild@0.19.5: - resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.19.5 - '@esbuild/android-arm64': 0.19.5 - '@esbuild/android-x64': 0.19.5 - '@esbuild/darwin-arm64': 0.19.5 - '@esbuild/darwin-x64': 0.19.5 - '@esbuild/freebsd-arm64': 0.19.5 - '@esbuild/freebsd-x64': 0.19.5 - '@esbuild/linux-arm': 0.19.5 - '@esbuild/linux-arm64': 0.19.5 - '@esbuild/linux-ia32': 0.19.5 - '@esbuild/linux-loong64': 0.19.5 - '@esbuild/linux-mips64el': 0.19.5 - '@esbuild/linux-ppc64': 0.19.5 - '@esbuild/linux-riscv64': 0.19.5 - '@esbuild/linux-s390x': 0.19.5 - '@esbuild/linux-x64': 0.19.5 - '@esbuild/netbsd-x64': 0.19.5 - '@esbuild/openbsd-x64': 0.19.5 - '@esbuild/sunos-x64': 0.19.5 - '@esbuild/win32-arm64': 0.19.5 - '@esbuild/win32-ia32': 0.19.5 - '@esbuild/win32-x64': 0.19.5 - dev: false - /esbuild@0.19.6: resolution: {integrity: sha512-Xl7dntjA2OEIvpr9j0DVxxnog2fyTGnyVoQXAMQI6eR3mf9zCQds7VIKUDCotDgE/p4ncTgeRqgX8t5d6oP4Gw==} engines: {node: '>=12'} @@ -9777,7 +9402,6 @@ packages: /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: true /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} @@ -9938,7 +9562,7 @@ packages: engines: {node: ^14.18.0 || ^16.13.0 || >=18.0.0} dependencies: '@xhmikosr/downloader': 13.0.1 - node-fetch: 3.3.1 + node-fetch: 3.3.2 semver: 7.5.4 dev: false @@ -10384,7 +10008,6 @@ packages: engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 - dev: true /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} @@ -10994,19 +10617,11 @@ packages: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} dev: false - /is-builtin-module@3.2.0: - resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==} - engines: {node: '>=6'} - dependencies: - builtin-modules: 3.3.0 - dev: false - /is-builtin-module@3.2.1: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 - dev: true /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} @@ -11029,12 +10644,12 @@ packages: resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.3 + dev: true /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: hasown: 2.0.0 - dev: true /is-data-descriptor@0.1.4: resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} @@ -11422,11 +11037,6 @@ packages: supports-color: 8.1.1 dev: false - /jiti@1.18.2: - resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==} - hasBin: true - dev: false - /jiti@1.20.0: resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} hasBin: true @@ -11480,6 +11090,7 @@ packages: /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + requiresBuild: true /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -11965,6 +11576,7 @@ packages: /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + requiresBuild: true dev: true /lodash.upperfirst@4.3.1: @@ -12105,13 +11717,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: false - /magic-string@0.30.0: - resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.14 - dev: false - /magic-string@0.30.5: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} @@ -12135,6 +11740,7 @@ packages: /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: false /make-fetch-happen@10.2.1: resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} @@ -12564,6 +12170,7 @@ packages: /minipass@4.2.7: resolution: {integrity: sha512-ScVIgqHcXRMyfflqHmEW0bm8z8rb5McHyOY3ewX9JBgZaR77G7nxq9L/mtV96/QbAAwtbCAHVVLzD1kkyfFQEw==} engines: {node: '>=8'} + dev: true /minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} @@ -12693,12 +12300,6 @@ packages: dev: false optional: 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: false - /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -12733,6 +12334,10 @@ packages: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} dev: false + /napi-wasm@1.1.0: + resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} + dev: false + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -12923,7 +12528,7 @@ packages: '@netlify/open-api': 2.26.0 lodash-es: 4.17.21 micro-api-client: 3.3.0 - node-fetch: 3.3.1 + node-fetch: 3.3.2 omit.js: 2.0.2 p-wait-for: 4.1.0 qs: 6.11.0 @@ -12971,15 +12576,6 @@ packages: whatwg-url: 5.0.0 dev: false - /node-fetch@3.3.1: - resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - data-uri-to-buffer: 4.0.0 - fetch-blob: 3.2.0 - formdata-polyfill: 4.0.10 - dev: false - /node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -13031,7 +12627,7 @@ packages: resolution: {integrity: sha512-QUlkJYzrNewUCp4c7CCPN8Mh8c+pwNs23JsQfHKUwIkCxYa6c0AFLuUJIZxU6BdnarfytPSGKm1YMAz06hj9cw==} engines: {node: '>=14'} dependencies: - '@babel/parser': 7.23.3 + '@babel/parser': 7.23.6 dev: false /node-stream-zip@1.15.0: @@ -13092,7 +12688,7 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.2 + resolve: 1.22.8 semver: 5.7.1 validate-npm-package-license: 3.0.4 @@ -13855,10 +13451,6 @@ packages: engines: {node: '>=12'} dev: false - /pathe@1.1.0: - resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} - dev: false - /pathe@1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} @@ -13975,7 +13567,7 @@ packages: postcss: 8.4.31 dev: false - /postcss-load-config@4.0.1(postcss@8.4.31)(ts-node@10.9.2): + /postcss-load-config@4.0.1(postcss@8.4.31): resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} peerDependencies: @@ -13989,7 +13581,6 @@ packages: dependencies: lilconfig: 2.1.0 postcss: 8.4.31 - ts-node: 10.9.2(@types/node@20.9.1)(typescript@5.3.3) yaml: 2.3.4 dev: false @@ -14076,7 +13667,7 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: false - /postcss-values-parser@6.0.2(postcss@8.4.31): + /postcss-values-parser@6.0.2(postcss@8.4.32): resolution: {integrity: sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==} engines: {node: '>=10'} peerDependencies: @@ -14087,7 +13678,7 @@ packages: dependencies: color-name: 1.1.4 is-url-superb: 4.0.0 - postcss: 8.4.31 + postcss: 8.4.32 quote-unquote: 1.0.0 dev: false @@ -14095,7 +13686,7 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.6 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 dev: false @@ -14208,11 +13799,6 @@ packages: minimist: 1.2.8 dev: false - /prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - dev: false - /proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -14691,6 +14277,7 @@ packages: /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + requiresBuild: true /require-in-the-middle@7.2.0(supports-color@9.2.2): resolution: {integrity: sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw==} @@ -14698,7 +14285,7 @@ packages: dependencies: debug: 4.3.4(supports-color@9.2.2) module-details-from-path: 1.0.3 - resolve: 1.22.2 + resolve: 1.22.8 transitivePeerDependencies: - supports-color dev: false @@ -14761,13 +14348,12 @@ packages: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true /resolve@2.0.0-next.4: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true dependencies: - is-core-module: 2.13.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: false @@ -15176,13 +14762,20 @@ packages: /shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - /shiki@0.14.5: - resolution: {integrity: sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==} + /shikiji-core@0.9.11: + resolution: {integrity: sha512-KbZdB+0oyoyNiQT0ueXCigp/0ilu1sMvb2aD3gDIDkaQwfayet0f1/9kkh0Wvtk42KMASDR36qA8ctnTQvpocA==} + dev: false + + /shikiji-transformers@0.9.11: + resolution: {integrity: sha512-ndEyaMIlILU/skg1zDXiHvTBNsBdTkNxLwSJ/fQEDyGiVn1KceRHaxxCFlslK7zBjCup1M0jWhgxWLij8+o+Lg==} dependencies: - ansi-sequence-parser: 1.1.0 - jsonc-parser: 3.2.0 - vscode-oniguruma: 1.7.0 - vscode-textmate: 8.0.0 + shikiji: 0.9.11 + dev: false + + /shikiji@0.9.11: + resolution: {integrity: sha512-3lZxXOPdhUr42fDTWmWiSrWTbbrRR3YY70F24G+hwh3VmN33ocKdH8RpytyhBhYvSRpiPhHDwGl2C5ozlO6Xow==} + dependencies: + shikiji-core: 0.9.11 dev: false /shimmer@1.2.1: @@ -15937,6 +15530,7 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 + dev: true /tar@6.2.0: resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} @@ -15948,7 +15542,6 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: true /taze@0.13.0: resolution: {integrity: sha512-o17Y6miF+44sDJ7haRHTqZefTlGOaBSdDHRwRcrt+s3WeGSPBUtPSG18XNwToIXN//eh58hyYnyDwTnpYLp4sg==} @@ -16277,36 +15870,6 @@ packages: yn: 3.1.1 dev: false - /ts-node@10.9.2(@types/node@20.9.1)(typescript@5.3.3): - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.3 - '@types/node': 20.9.1 - acorn: 8.10.0 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.3.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - /tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: @@ -16793,6 +16356,7 @@ packages: /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: false /validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -16869,14 +16433,6 @@ packages: optionalDependencies: fsevents: 2.3.3 - /vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - dev: false - - /vscode-textmate@8.0.0: - resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - dev: false - /vue-demi@0.14.6(vue@3.3.13): resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} engines: {node: '>=12'} @@ -17468,12 +17024,12 @@ packages: /windicss-webpack-plugin@1.8.0: resolution: {integrity: sha512-zCzNLJ4hjgl5A2+mq8XlPtbvM5RONNz/ol93YG9tcMSn+aH/6Ll/lA5UDnVJluBr8b2Ch5C/GIqXcIMGG8mmdA==} dependencies: - '@windicss/plugin-utils': 1.9.1 + '@windicss/plugin-utils': 1.9.2 debug: 4.3.4(supports-color@9.2.2) get-port: 6.1.2 loader-utils: 2.0.4 lodash: 4.17.21 - pathe: 1.1.0 + pathe: 1.1.1 webpack-virtual-modules: 0.5.0 windicss: 3.5.6 transitivePeerDependencies: @@ -17735,6 +17291,7 @@ packages: /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} + dev: false /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 196993a9..012a5c0f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,4 @@ packages: - docs - - packages/* + - theme + - plugins/* diff --git a/readme.md b/readme.md index b9015948..00acef90 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,4 @@ -## @vuepress-plume/vuepress-theme-plume +## vuepress-theme-plume 一个简约的 vuepress 主题。 @@ -12,14 +12,14 @@ ## Install ``` sh -yarn add vuepress@next @vuepress-plume/vuepress-theme-plume +yarn add vuepress@next vuepress-theme-plume ``` ## Usage ``` ts import { defineUserConfig } from 'vuepress' -import { plumeTheme } from '@vuepress-plume/vuepress-theme-plume' +import { plumeTheme } from 'vuepress-theme-plume' export default defineUserConfig({ theme: plumeTheme({ // theme config @@ -48,10 +48,11 @@ __options__ : `PlumeThemeOptions` ## 内置插件 -- [plugin-caniuse](https://github.com/pengzhanbo/vuepress-theme-plume/tree/main/packages/plugin-caniuse) 在文档中使用 caniuse 提供的 web feature support list -- [plugin-auto-frontmatter](https://github.com/pengzhanbo/vuepress-theme-plume/tree/main/packages/plugin-auto-frontmatter) 在 md 文件中根据匹配规则自动生成 frontmatter -- [plugin-notes-data](https://github.com/pengzhanbo/vuepress-theme-plume/tree/main/packages/plugin-notes-data) 根据规则,将 md文件归类为 note,并生成 sidebar -- [plugin-blog-data](https://github.com/pengzhanbo/vuepress-theme-plume/tree/main/packages/plugin-blog-data) 根据规则,将md文件归类为 blog post,并生成 post list +- [plugin-shikiji](https://github.com/pengzhanbo/vuepress-theme-plume/tree/main/plugins/plugin-shikiji) 使用 [`shikiji`](https://shikiji.netlify.app/) 来为 Markdown 代码块启用代码高亮。 +- [plugin-caniuse](https://github.com/pengzhanbo/vuepress-theme-plume/tree/main/plugins/plugin-caniuse) 在文档中使用 caniuse 提供的 web feature support list +- [plugin-auto-frontmatter](https://github.com/pengzhanbo/vuepress-theme-plume/tree/main/plugins/plugin-auto-frontmatter) 在 md 文件中根据匹配规则自动生成 frontmatter +- [plugin-notes-data](https://github.com/pengzhanbo/vuepress-theme-plume/tree/main/plugins/plugin-notes-data) 根据规则,将 md文件归类为 note,并生成 sidebar +- [plugin-blog-data](https://github.com/pengzhanbo/vuepress-theme-plume/tree/main/plugins/plugin-blog-data) 根据规则,将md文件归类为 blog post,并生成 post list - [vuepress-plugin-mdEnhance](https://vuepress-theme-hope.github.io/v2/md-enhance/zh/) 增强markdown功能插件 - [vuepress-plugin-comment](https://vuepress-theme-hope.github.io/v2/comment/zh/) 文章评论插件,支持 "giscus" | "twikoo" | "waline" - [vuepress-plugin-copy-code](https://github.com/pengzhanbo/vuepress-theme-plume/tree/main/packages/plugin-copy-code) 文章内代码块复制插件 @@ -65,7 +66,7 @@ __options__ : `PlumeThemeOptions` ## 非内置插件 -- [vuepress-plugin-netlify-functions](https://github.com/pengzhanbo/vuepress-theme-plume/tree/main/packages/plugin-netlify-functions) 当站点部署在 netlify 时,希望使用 netlify functions 可选择此插件提供支持 +- [vuepress-plugin-netlify-functions](https://github.com/pengzhanbo/vuepress-theme-plume/tree/main/plugins/plugin-netlify-functions) 当站点部署在 netlify 时,希望使用 netlify functions 可选择此插件提供支持 ### 注意 本主题基于 `VuePress2` ,仍处于 Beta 阶段。 diff --git a/scripts/create/template/README.md.tpl b/scripts/create/template/README.md.tpl index 09c05f20..4c2c83fe 100644 --- a/scripts/create/template/README.md.tpl +++ b/scripts/create/template/README.md.tpl @@ -1,13 +1,13 @@ -# `@vuepress-plume/vuepress-{{ pkgName }}` +# `@vuepress-plume/{{ pkgName }}` ## Install ``` -yarn add @vuepress-plume/vuepress-{{ pkgName }} +yarn add @vuepress-plume/{{ pkgName }} ``` ## Usage ``` js // .vuepress/config.js -const {{ lowerName }}Plugin = require('@vuepress-plume/vuepress-{{ pkgName }}') +const {{ lowerName }}Plugin = require('@vuepress-plume/{{ pkgName }}') module.exports = { //... plugins: [ diff --git a/scripts/create/template/package.json.tpl b/scripts/create/template/package.json.tpl index d7beed33..ea1e0361 100644 --- a/scripts/create/template/package.json.tpl +++ b/scripts/create/template/package.json.tpl @@ -1,5 +1,5 @@ { - "name": "@vuepress-plume/vuepress-{{ pkgName }}", + "name": "@vuepress-plume/{{ pkgName }}", "version": "{{ version }}", "description": "The Plugin for VuePres 2", "keyword": [ diff --git a/scripts/create/template/src/node/plugin.ts.tpl b/scripts/create/template/src/node/plugin.ts.tpl index 7c533057..5561d9e2 100644 --- a/scripts/create/template/src/node/plugin.ts.tpl +++ b/scripts/create/template/src/node/plugin.ts.tpl @@ -14,7 +14,7 @@ export interface {{ upperName }}Options { export const {{ lowerName }}Plugin = (options: {{ upperName }}Options): Plugin => { return (app: App) => { return { - name: '@vuepress-plume/vuepress-{{ pkgName }}', + name: '@vuepress-plume/{{ pkgName }}', {{#if client}} clientConfigFile: path.resolve(__dirname, '../client/clientConfig.js'), {{/if}} diff --git a/packages/theme/README.md b/theme/README.md similarity index 62% rename from packages/theme/README.md rename to theme/README.md index cbd94ed7..01977b48 100644 --- a/packages/theme/README.md +++ b/theme/README.md @@ -1,4 +1,4 @@ -# `@vuepress-plume/vuepress-theme-plume` +# `vuepress-theme-plume` 一款基于 VuePress@2 的博客皮肤。 @@ -7,9 +7,9 @@ ## Install ``` sh # use yarn -yarn add @vuepress-plume/vuepress-theme-plume +yarn add vuepress-theme-plume # or npm -npm i @vuepress-plume/vuepress-theme-plume +npm i vuepress-theme-plume ``` ## Usage @@ -17,7 +17,7 @@ npm i @vuepress-plume/vuepress-theme-plume ``` js // .vuepress/config.ts import { defineUserConfig } from 'vuepress' -import { plumeTheme } from '@vuepress-plume/vuepress-theme-plume' +import { plumeTheme } from 'vuepress-theme-plume' export default defineUserConfig({ theme: plumeTheme({ diff --git a/packages/theme/package.json b/theme/package.json similarity index 79% rename from packages/theme/package.json rename to theme/package.json index 83b4e38e..5d6630b8 100644 --- a/packages/theme/package.json +++ b/theme/package.json @@ -1,5 +1,5 @@ { - "name": "@vuepress-plume/vuepress-theme-plume", + "name": "vuepress-theme-plume", "version": "1.0.0-beta.89", "description": "A Blog Theme for VuePress 2.0", "keywords": [ @@ -43,13 +43,14 @@ "ts:watch": "tsc -b tsconfig.build.json --watch" }, "dependencies": { - "@vuepress-plume/vuepress-plugin-auto-frontmatter": "workspace:*", - "@vuepress-plume/vuepress-plugin-baidu-tongji": "workspace:*", - "@vuepress-plume/vuepress-plugin-blog-data": "workspace:*", - "@vuepress-plume/vuepress-plugin-caniuse": "workspace:*", - "@vuepress-plume/vuepress-plugin-copy-code": "workspace:*", - "@vuepress-plume/vuepress-plugin-iconify": "workspace:*", - "@vuepress-plume/vuepress-plugin-notes-data": "workspace:*", + "@vuepress-plume/plugin-auto-frontmatter": "workspace:*", + "@vuepress-plume/plugin-baidu-tongji": "workspace:*", + "@vuepress-plume/plugin-blog-data": "workspace:*", + "@vuepress-plume/plugin-caniuse": "workspace:*", + "@vuepress-plume/plugin-copy-code": "workspace:*", + "@vuepress-plume/plugin-iconify": "workspace:*", + "@vuepress-plume/plugin-notes-data": "workspace:*", + "@vuepress-plume/plugin-shikiji": "workspace:*", "@vuepress/client": "2.0.0-rc.0", "@vuepress/core": "2.0.0-rc.0", "@vuepress/plugin-active-header-links": "2.0.0-rc.0", @@ -60,15 +61,12 @@ "@vuepress/plugin-medium-zoom": "2.0.0-rc.0", "@vuepress/plugin-nprogress": "2.0.0-rc.0", "@vuepress/plugin-palette": "2.0.0-rc.0", - "@vuepress/plugin-prismjs": "2.0.0-rc.0", "@vuepress/plugin-search": "2.0.0-rc.0", - "@vuepress/plugin-shiki": "2.0.0-rc.0", "@vuepress/plugin-theme-data": "2.0.0-rc.0", "@vuepress/plugin-toc": "2.0.0-rc.0", "@vuepress/shared": "2.0.0-rc.0", "@vuepress/utils": "2.0.0-rc.0", "@vueuse/core": "^10.7.0", - "body-scroll-lock": "4.0.0-beta.0", "date-fns": "^3.0.5", "lodash.merge": "^4.6.2", "nanoid": "^5.0.4", diff --git a/packages/theme/src/client/components/AutoLink.vue b/theme/src/client/components/AutoLink.vue similarity index 91% rename from packages/theme/src/client/components/AutoLink.vue rename to theme/src/client/components/AutoLink.vue index 12082efd..01d04b81 100644 --- a/packages/theme/src/client/components/AutoLink.vue +++ b/theme/src/client/components/AutoLink.vue @@ -35,8 +35,8 @@ const linkTo = (e: Event) => { class="auto-link" :class="{ link: href }" :href="href ? normalizeLink(href) : undefined" - :target="target || (isExternal ? '_blank' : undefined)" - :rel="rel || (isExternal ? 'noreferrer' : undefined)" + :target="target ?? (isExternal ? '_blank' : undefined)" + :rel="rel ?? (isExternal ? 'noreferrer' : undefined)" @click="linkTo($event)" > diff --git a/packages/theme/src/client/components/Backdrop.vue b/theme/src/client/components/Backdrop.vue similarity index 100% rename from packages/theme/src/client/components/Backdrop.vue rename to theme/src/client/components/Backdrop.vue diff --git a/packages/theme/src/client/components/Blog.vue b/theme/src/client/components/Blog.vue similarity index 100% rename from packages/theme/src/client/components/Blog.vue rename to theme/src/client/components/Blog.vue diff --git a/packages/theme/src/client/components/BlogAvatar.vue b/theme/src/client/components/BlogAvatar.vue similarity index 100% rename from packages/theme/src/client/components/BlogAvatar.vue rename to theme/src/client/components/BlogAvatar.vue diff --git a/theme/src/client/components/DocOutlineItem.vue b/theme/src/client/components/DocOutlineItem.vue new file mode 100644 index 00000000..0cf328a3 --- /dev/null +++ b/theme/src/client/components/DocOutlineItem.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/packages/theme/src/client/components/Flyout/MenuGroup.vue b/theme/src/client/components/Flyout/MenuGroup.vue similarity index 100% rename from packages/theme/src/client/components/Flyout/MenuGroup.vue rename to theme/src/client/components/Flyout/MenuGroup.vue diff --git a/packages/theme/src/client/components/Flyout/MenuLink.vue b/theme/src/client/components/Flyout/MenuLink.vue similarity index 100% rename from packages/theme/src/client/components/Flyout/MenuLink.vue rename to theme/src/client/components/Flyout/MenuLink.vue diff --git a/packages/theme/src/client/components/Flyout/VMenu.vue b/theme/src/client/components/Flyout/VMenu.vue similarity index 100% rename from packages/theme/src/client/components/Flyout/VMenu.vue rename to theme/src/client/components/Flyout/VMenu.vue diff --git a/packages/theme/src/client/components/Flyout/index.vue b/theme/src/client/components/Flyout/index.vue similarity index 100% rename from packages/theme/src/client/components/Flyout/index.vue rename to theme/src/client/components/Flyout/index.vue diff --git a/packages/theme/src/client/components/Home.vue b/theme/src/client/components/Home.vue similarity index 100% rename from packages/theme/src/client/components/Home.vue rename to theme/src/client/components/Home.vue diff --git a/packages/theme/src/client/components/LayoutContent.vue b/theme/src/client/components/LayoutContent.vue similarity index 100% rename from packages/theme/src/client/components/LayoutContent.vue rename to theme/src/client/components/LayoutContent.vue diff --git a/packages/theme/src/client/components/LocalNav.vue b/theme/src/client/components/LocalNav.vue similarity index 57% rename from packages/theme/src/client/components/LocalNav.vue rename to theme/src/client/components/LocalNav.vue index 6fe607d9..ff5a8e5b 100644 --- a/packages/theme/src/client/components/LocalNav.vue +++ b/theme/src/client/components/LocalNav.vue @@ -1,6 +1,13 @@ @@ -48,6 +79,14 @@ function scrollToTop() { transition: border-color 0.5s, background-color 0.5s; } +.local-nav.fixed { + position: fixed; +} + +.local-nav.reached-top { + border-top-color: transparent; +} + @media (min-width: 960px) { .local-nav { display: none; diff --git a/theme/src/client/components/LocalNavOutlineDropdown.vue b/theme/src/client/components/LocalNavOutlineDropdown.vue new file mode 100644 index 00000000..d5c60f6e --- /dev/null +++ b/theme/src/client/components/LocalNavOutlineDropdown.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/packages/theme/src/client/components/Nav/NavBar.vue b/theme/src/client/components/Nav/NavBar.vue similarity index 90% rename from packages/theme/src/client/components/Nav/NavBar.vue rename to theme/src/client/components/Nav/NavBar.vue index a4c3492c..3abae56c 100644 --- a/packages/theme/src/client/components/Nav/NavBar.vue +++ b/theme/src/client/components/Nav/NavBar.vue @@ -1,6 +1,7 @@