From fb2703fb565f455d017b65a72398e441abb476d4 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Mon, 1 Jan 2024 08:45:38 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=B0=83=E6=95=B4=E5=8C=85=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=A0=BC=E5=BC=8F=EF=BC=8C=E4=BC=98=E5=8C=96=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/plugin-auto-frontmatter/README.md | 10 ++++++++-- plugins/plugin-auto-frontmatter/package.json | 5 ++++- plugins/plugin-baidu-tongji/README.md | 14 ++++++++++---- plugins/plugin-baidu-tongji/package.json | 12 ++++++------ plugins/plugin-baidu-tongji/src/node/plugin.ts | 6 ++---- plugins/plugin-blog-data/README.md | 16 ++++++++++++---- plugins/plugin-blog-data/package.json | 11 ++++++++--- plugins/plugin-caniuse/README.md | 14 ++++++++++++-- plugins/plugin-caniuse/package.json | 15 +++++++++++---- plugins/plugin-content-update/README.md | 14 ++++++++++---- plugins/plugin-content-update/package.json | 11 ++++++++--- plugins/plugin-copy-code/README.md | 12 +++++++++--- plugins/plugin-copy-code/package.json | 10 ++++++++-- plugins/plugin-iconify/README.md | 14 ++++++++++---- plugins/plugin-iconify/package.json | 10 ++++++++-- plugins/plugin-netlify-functions/README.md | 12 +++++++++--- plugins/plugin-netlify-functions/package.json | 5 ++++- plugins/plugin-notes-data/README.md | 15 +++++++++++---- plugins/plugin-notes-data/package.json | 10 ++++++++-- plugins/plugin-shikiji/README.md | 15 +++++++++++---- plugins/plugin-shikiji/package.json | 5 ++++- plugins/plugin-shikiji/src/node/highlight.ts | 15 ++++++--------- theme/README.md | 9 ++++++--- theme/package.json | 17 +++++++++++++---- 24 files changed, 198 insertions(+), 79 deletions(-) diff --git a/plugins/plugin-auto-frontmatter/README.md b/plugins/plugin-auto-frontmatter/README.md index 6b0c7ca6..e19070df 100644 --- a/plugins/plugin-auto-frontmatter/README.md +++ b/plugins/plugin-auto-frontmatter/README.md @@ -3,13 +3,19 @@ 自动生成 `*.md` 文件的 `frontmatter` 配置。 ## Install -``` + +```sh +npm install @vuepress-plume/plugin-auto-frontmatter +# or +pnpm add @vuepress-plume/plugin-auto-frontmatter +# or yarn add @vuepress-plume/plugin-auto-frontmatter ``` ## Usage ``` js -// .vuepress/config.js +// .vuepress/config.[jt]s import { autoFrontmatterPlugin } from '@vuepress-plume/plugin-auto-frontmatter' + export default { // ... plugins: [ diff --git a/plugins/plugin-auto-frontmatter/package.json b/plugins/plugin-auto-frontmatter/package.json index 189898f2..f7d1a0a8 100644 --- a/plugins/plugin-auto-frontmatter/package.json +++ b/plugins/plugin-auto-frontmatter/package.json @@ -14,7 +14,10 @@ "url": "https://github.com/pengzhanbo/vuepress-theme-plume/issues" }, "exports": { - ".": "./lib/node/index.js", + ".": { + "types": "./lib/node/index.d.ts", + "import": "./lib/node/index.js" + }, "./package.json": "./package.json" }, "main": "lib/node/index.js", diff --git a/plugins/plugin-baidu-tongji/README.md b/plugins/plugin-baidu-tongji/README.md index 733692d2..71bd642e 100644 --- a/plugins/plugin-baidu-tongji/README.md +++ b/plugins/plugin-baidu-tongji/README.md @@ -3,14 +3,20 @@ 在vuepress中接入百度统计 ## Install -``` + +```sh +npm install @vuepress-plume/plugin-baidu-tongji +# or +pnpm add @vuepress-plume/plugin-baidu-tongji +# or yarn add @vuepress-plume/plugin-baidu-tongji ``` ## Usage ``` js -// .vuepress/config.js -const { baiduTongjiPlugin } = require('@vuepress-plume/plugin-baidu-tongji') -module.exports = { +// .vuepress/config.[jt]s +import { baiduTongjiPlugin } from '@vuepress-plume/plugin-baidu-tongji' + +export default { // ... plugins: [ baiduTongjiPlugin({ diff --git a/plugins/plugin-baidu-tongji/package.json b/plugins/plugin-baidu-tongji/package.json index b69ffbd8..72f35446 100644 --- a/plugins/plugin-baidu-tongji/package.json +++ b/plugins/plugin-baidu-tongji/package.json @@ -14,7 +14,10 @@ "url": "https://github.com/pengzhanbo/vuepress-theme-plume/issues" }, "exports": { - ".": "./lib/node/index.js", + ".": { + "types": "./lib/node/index.d.ts", + "import": "./lib/node/index.js" + }, "./package.json": "./package.json" }, "main": "lib/node/index.js", @@ -29,10 +32,7 @@ "ts": "tsc -b tsconfig.build.json" }, "dependencies": { - "@vuepress/client": "2.0.0-rc.0", - "@vuepress/core": "2.0.0-rc.0", - "@vuepress/shared": "2.0.0-rc.0", - "@vuepress/utils": "2.0.0-rc.0" + "@vuepress/core": "2.0.0-rc.0" }, "publishConfig": { "access": "public" @@ -41,6 +41,6 @@ "VuePress", "vuepress plugin", "baiduTongji", - "vuepress-plugin-plugin-baidu-tongji" + "vuepress-plugin-baidu-tongji" ] } diff --git a/plugins/plugin-baidu-tongji/src/node/plugin.ts b/plugins/plugin-baidu-tongji/src/node/plugin.ts index 78b16658..80e8eb24 100644 --- a/plugins/plugin-baidu-tongji/src/node/plugin.ts +++ b/plugins/plugin-baidu-tongji/src/node/plugin.ts @@ -8,12 +8,10 @@ export function baiduTongjiPlugin({ key = '' }: BaiduTongjiOptions): Plugin { return { name: '@vuepress-plume/plugin-baidu-tongji', extendsPage: (page) => { - page.frontmatter.head = page.frontmatter.head || [] + page.frontmatter.head ??= [] page.frontmatter.head?.push([ 'script', - { - type: 'text/javascript', - }, + { type: 'text/javascript' }, 'var _hmt = _hmt || []', ]) page.frontmatter.head?.push([ diff --git a/plugins/plugin-blog-data/README.md b/plugins/plugin-blog-data/README.md index e0afe43c..fdb0e6d7 100644 --- a/plugins/plugin-blog-data/README.md +++ b/plugins/plugin-blog-data/README.md @@ -1,14 +1,22 @@ # `@vuepress-plume/plugin-blog-data` ## Install -``` + +```sh +npm install @vuepress-plume/plugin-blog-data +# or +pnpm add @vuepress-plume/plugin-blog-data +# or yarn add @vuepress-plume/plugin-blog-data ``` + ## Usage + ``` js -// .vuepress/config.js -const { blogDataPlugin } = require('@vuepress-plume/plugin-blog-data') -module.exports = { +// .vuepress/config.[jt]s +import { blogDataPlugin } from '@vuepress-plume/plugin-blog-data' + +export default { // ... plugins: [ blogDataPlugin() diff --git a/plugins/plugin-blog-data/package.json b/plugins/plugin-blog-data/package.json index d608b4ea..66ddac62 100644 --- a/plugins/plugin-blog-data/package.json +++ b/plugins/plugin-blog-data/package.json @@ -14,8 +14,14 @@ "url": "https://github.com/pengzhanbo/vuepress-theme-plume/issues" }, "exports": { - ".": "./lib/node/index.js", - "./client": "./lib/client/index.js", + ".": { + "types": "./lib/node/index.d.ts", + "import": "./lib/node/index.js" + }, + "./client": { + "types": "./lib/client/index.d.ts", + "import": "./lib/client/index.js" + }, "./package.json": "./package.json" }, "main": "lib/node/index.js", @@ -33,7 +39,6 @@ "@vue/devtools-api": "^6.5.1", "@vuepress/client": "2.0.0-rc.0", "@vuepress/core": "2.0.0-rc.0", - "@vuepress/shared": "2.0.0-rc.0", "@vuepress/utils": "2.0.0-rc.0", "chokidar": "^3.5.3", "create-filter": "^1.0.1", diff --git a/plugins/plugin-caniuse/README.md b/plugins/plugin-caniuse/README.md index 062d4db1..d34fd22a 100644 --- a/plugins/plugin-caniuse/README.md +++ b/plugins/plugin-caniuse/README.md @@ -8,23 +8,32 @@ VuePress 2 插件 ## Install ``` sh +npm install @vuepress-plume/plugin-caniuse +# or +pnpm add @vuepress-plume/plugin-caniuse +# or yarn add @vuepress-plume/plugin-caniuse ``` ## Usage ### 在VuePress 配置文件中添加插件 + ``` js -// .vuepress/config.js +// .vuepress/config.[jt]s +import { caniusePlugin } from '@vuepress-plume/plugin-caniuse' + export default { // ... plugins: [ - ['@vuepress-plume/plugin-caniuse', { mode: 'image' }] + caniusePlugin({ mode: 'image' }), ] // ... } ``` + ### 在markdown中编写 + ``` md ::: caniuse {{browser_versions}} ::: @@ -51,6 +60,7 @@ export default { - 大于`0` 表示高于当前浏览器版本的支持情况 ## Example + ``` md ::: caniuse css-matches-pseudo {-2,-1,1} ::: diff --git a/plugins/plugin-caniuse/package.json b/plugins/plugin-caniuse/package.json index a88ef6f1..a6b4883b 100644 --- a/plugins/plugin-caniuse/package.json +++ b/plugins/plugin-caniuse/package.json @@ -21,8 +21,14 @@ "caniuse" ], "exports": { - ".": "./lib/node/index.js", - "./client": "./lib/client/index.js", + ".": { + "types": "./lib/node/index.d.ts", + "import": "./lib/node/index.js" + }, + "./client": { + "types": "./lib/client/index.d.ts", + "import": "./lib/client/index.js" + }, "./package.json": "./package.json" }, "main": "lib/node/index.js", @@ -36,13 +42,14 @@ "ts": "tsc -b tsconfig.build.json" }, "dependencies": { - "@types/markdown-it": "^13.0.7", - "@vuepress/cli": "2.0.0-rc.0", "@vuepress/client": "2.0.0-rc.0", "@vuepress/core": "2.0.0-rc.0", "@vuepress/utils": "2.0.0-rc.0", "markdown-it-container": "^4.0.0" }, + "devDependencies": { + "@types/markdown-it": "^13.0.7" + }, "publishConfig": { "access": "public" } diff --git a/plugins/plugin-content-update/README.md b/plugins/plugin-content-update/README.md index 22fdd80a..cf40e8da 100644 --- a/plugins/plugin-content-update/README.md +++ b/plugins/plugin-content-update/README.md @@ -4,14 +4,20 @@ 实现当页面内容发生更新时,触发 `onContentUpdated` 事件。 ## Install -``` + +```sh +npm install @vuepress-plume/plugin-content-update +# or +pnpm add @vuepress-plume/plugin-content-update +# or yarn add @vuepress-plume/plugin-content-update ``` ## Usage ``` js -// .vuepress/config.js -const { contentUpdatePlugin } = require('@vuepress-plume/plugin-content-update') -module.exports = { +// .vuepress/config.[jt]s +import { contentUpdatePlugin } from '@vuepress-plume/plugin-content-update' + +export default { // ... plugins: [ contentUpdatePlugin() diff --git a/plugins/plugin-content-update/package.json b/plugins/plugin-content-update/package.json index 7c60e5d1..9879acf3 100644 --- a/plugins/plugin-content-update/package.json +++ b/plugins/plugin-content-update/package.json @@ -14,8 +14,14 @@ "url": "https://github.com/pengzhanbo/vuepress-theme-plume/issues" }, "exports": { - ".": "./lib/node/index.js", - "./client": "./lib/client/index.js", + ".": { + "types": "./lib/node/index.d.ts", + "import": "./lib/node/index.js" + }, + "./client": { + "types": "./lib/client/index.d.ts", + "import": "./lib/client/index.js" + }, "./package.json": "./package.json" }, "main": "lib/node/index.js", @@ -32,7 +38,6 @@ "dependencies": { "@vuepress/client": "2.0.0-rc.0", "@vuepress/core": "2.0.0-rc.0", - "@vuepress/shared": "2.0.0-rc.0", "@vuepress/utils": "2.0.0-rc.0", "vue": "^3.4.3", "vue-router": "4.2.5" diff --git a/plugins/plugin-copy-code/README.md b/plugins/plugin-copy-code/README.md index c868f9c6..8257db09 100644 --- a/plugins/plugin-copy-code/README.md +++ b/plugins/plugin-copy-code/README.md @@ -1,14 +1,20 @@ # `@vuepress-plume/plugin-copy-code` ## Install -``` + +```sh +npm install @vuepress-plume/plugin-copy-code +# or +pnpm add @vuepress-plume/plugin-copy-code +# or yarn add @vuepress-plume/plugin-copy-code ``` ## Usage ``` js // .vuepress/config.js -const { copyCodePlugin } = require('@vuepress-plume/plugin-copy-code') -module.exports = { +import { copyCodePlugin } from '@vuepress-plume/plugin-copy-code' + +export default { // ... plugins: [ copyCodePlugin() diff --git a/plugins/plugin-copy-code/package.json b/plugins/plugin-copy-code/package.json index 975b3cb1..35fd7d81 100644 --- a/plugins/plugin-copy-code/package.json +++ b/plugins/plugin-copy-code/package.json @@ -14,8 +14,14 @@ "url": "https://github.com/pengzhanbo/vuepress-theme-plume/issues" }, "exports": { - ".": "./lib/node/index.js", - "./client": "./lib/client/index.js", + ".": { + "types": "./lib/node/index.d.ts", + "import": "./lib/node/index.js" + }, + "./client": { + "types": "./lib/client/index.d.ts", + "import": "./lib/client/index.js" + }, "./package.json": "./package.json" }, "main": "lib/node/index.js", diff --git a/plugins/plugin-iconify/README.md b/plugins/plugin-iconify/README.md index b478d7ad..b1064ba6 100644 --- a/plugins/plugin-iconify/README.md +++ b/plugins/plugin-iconify/README.md @@ -3,14 +3,20 @@ 添加 `iconify` 图标库支持。并注入全局组件 `` ## Install -``` + +```sh +npm install @vuepress-plume/plugin-iconify +# or +pnpm add @vuepress-plume/plugin-iconify +# or yarn add @vuepress-plume/plugin-iconify ``` ## Usage ``` js -// .vuepress/config.js -const iconifyPlugin = require('@vuepress-plume/plugin-iconify') -module.exports = { +// .vuepress/config.[jt]s +import { iconifyPlugin } from '@vuepress-plume/plugin-iconify' + +export default { // ... plugins: [ iconifyPlugin() diff --git a/plugins/plugin-iconify/package.json b/plugins/plugin-iconify/package.json index da00a3ba..82ba2700 100644 --- a/plugins/plugin-iconify/package.json +++ b/plugins/plugin-iconify/package.json @@ -14,8 +14,14 @@ "url": "https://github.com/pengzhanbo/vuepress-theme-plume/issues" }, "exports": { - ".": "./lib/node/index.js", - "./client": "./lib/client/index.js", + ".": { + "types": "./lib/node/index.d.ts", + "import": "./lib/node/index.js" + }, + "./client": { + "types": "./lib/client/index.d.ts", + "import": "./lib/client/index.js" + }, "./package.json": "./package.json" }, "main": "lib/node/index.js", diff --git a/plugins/plugin-netlify-functions/README.md b/plugins/plugin-netlify-functions/README.md index 2f5eb252..32f828d0 100644 --- a/plugins/plugin-netlify-functions/README.md +++ b/plugins/plugin-netlify-functions/README.md @@ -22,7 +22,12 @@ You may need this plugin to provide support. - 使用 `dotenv` 在本地服务环境提供 类似于 `netlify environment variables` 支持。 在项目根目录下 创建 `.env` 文件用于保存开发时环境变量 ## Install -``` + +```sh +npm install vuepress-plugin-netlify-functions +# or +pnpm add vuepress-plugin-netlify-functions +# or yarn add vuepress-plugin-netlify-functions ``` ## Usage @@ -31,9 +36,10 @@ yarn add vuepress-plugin-netlify-functions 在 vuepress 项目中,或者在一个 vuepress 主题中 ``` js - // .vuepress/config.js + // .vuepress/config.[jt]s import { netlifyFunctionsPlugin } from 'vuepress-plugin-netlify-functions' - module.exports = { + + export default { // ... plugins: [ netlifyFunctionsPlugin() diff --git a/plugins/plugin-netlify-functions/package.json b/plugins/plugin-netlify-functions/package.json index b8642b8d..b88170bb 100644 --- a/plugins/plugin-netlify-functions/package.json +++ b/plugins/plugin-netlify-functions/package.json @@ -22,7 +22,10 @@ "vuepress-plugin-netlify-functions" ], "exports": { - ".": "./lib/node/index.js", + ".": { + "types": "./lib/node/index.d.ts", + "import": "./lib/node/index.js" + }, "./package.json": "./package.json" }, "main": "lib/node/index.js", diff --git a/plugins/plugin-notes-data/README.md b/plugins/plugin-notes-data/README.md index 3635e563..74ad4ade 100644 --- a/plugins/plugin-notes-data/README.md +++ b/plugins/plugin-notes-data/README.md @@ -1,14 +1,21 @@ # `@vuepress-plume/plugin-notes-data` ## Install -``` + +```sh +npm install @vuepress-plume/plugin-notes-data +# or +pnpm add @vuepress-plume/plugin-notes-data +# or yarn add @vuepress-plume/plugin-notes-data ``` ## Usage + ``` js -// .vuepress/config.js -const notesDataPlugin = require('@vuepress-plume/plugin-notes-data') -module.exports = { +// .vuepress/config.[jt]s +import { notesDataPlugin } from '@vuepress-plume/plugin-notes-data' + +export default { // ... plugins: [ notesDataPlugin() diff --git a/plugins/plugin-notes-data/package.json b/plugins/plugin-notes-data/package.json index c6a9dc17..e5566135 100644 --- a/plugins/plugin-notes-data/package.json +++ b/plugins/plugin-notes-data/package.json @@ -14,8 +14,14 @@ "url": "https://github.com/pengzhanbo/vuepress-theme-plume/issues" }, "exports": { - ".": "./lib/node/index.js", - "./client": "./lib/client/index.js", + ".": { + "types": "./lib/node/index.d.ts", + "import": "./lib/node/index.js" + }, + "./client": { + "types": "./lib/client/index.d.ts", + "import": "./lib/client/index.js" + }, "./package.json": "./package.json" }, "main": "lib/node/index.js", diff --git a/plugins/plugin-shikiji/README.md b/plugins/plugin-shikiji/README.md index dea20499..d46329ff 100644 --- a/plugins/plugin-shikiji/README.md +++ b/plugins/plugin-shikiji/README.md @@ -3,14 +3,21 @@ 使用 [`shikiji`](https://shikiji.netlify.app/) 来为 Markdown 代码块启用代码高亮。 ## Install -``` + +```sh +npm install @vuepress-plume/plugin-shikiji +# or +pnpm add @vuepress-plume/plugin-shikiji +# or yarn add @vuepress-plume/plugin-shikiji ``` ## Usage + ``` js -// .vuepress/config.js -const shikijiPlugin = require('@vuepress-plume/plugin-shikiji') -module.exports = { +// .vuepress/config.[jt]s +import { shikijiPlugin } from '@vuepress-plume/plugin-shikiji' + +export default { // ... plugins: [ shikijiPlugin() diff --git a/plugins/plugin-shikiji/package.json b/plugins/plugin-shikiji/package.json index 5810d84f..ac276aa2 100644 --- a/plugins/plugin-shikiji/package.json +++ b/plugins/plugin-shikiji/package.json @@ -14,7 +14,10 @@ "url": "https://github.com/pengzhanbo/vuepress-theme-plume/issues" }, "exports": { - ".": "./lib/node/index.js", + ".": { + "types": "./lib/node/index.d.ts", + "import": "./lib/node/index.js" + }, "./package.json": "./package.json" }, "main": "lib/node/index.js", diff --git a/plugins/plugin-shikiji/src/node/highlight.ts b/plugins/plugin-shikiji/src/node/highlight.ts index 8f1d8fd2..2feb50e1 100644 --- a/plugins/plugin-shikiji/src/node/highlight.ts +++ b/plugins/plugin-shikiji/src/node/highlight.ts @@ -30,9 +30,9 @@ export async function highlight( const highlighter = await getHighlighter({ themes: - typeof theme === 'string' || 'name' in theme - ? [theme] - : [theme.light, theme.dark], + typeof theme === 'object' && 'light' in theme && 'dark' in theme + ? [theme.light, theme.dark] + : [theme], langs: [...Object.keys(bundledLanguages), ...(options.languages || [])], langAlias: options.languageAlias, }) @@ -131,12 +131,9 @@ export async function highlight( meta: { __raw: attrs, }, - ...(typeof theme === 'string' || 'name' in theme - ? { theme } - : { - themes: theme, - defaultColor: false, - }), + ...(typeof theme === 'object' && 'light' in theme && 'dark' in theme + ? { themes: theme, defaultColor: false } + : { theme }), }) return fillEmptyHighlightedLine(restoreMustache(highlighted)) diff --git a/theme/README.md b/theme/README.md index 01977b48..0625da47 100644 --- a/theme/README.md +++ b/theme/README.md @@ -5,11 +5,14 @@ [查看使用文档](https://pengzhanbo.cn/note/vuepress-theme-plume) ## Install + ``` sh -# use yarn -yarn add vuepress-theme-plume -# or npm +# npm npm i vuepress-theme-plume +# or pnpm +pnpm add vuepress-theme-plume +# or yarn +yarn add vuepress-theme-plume ``` ## Usage diff --git a/theme/package.json b/theme/package.json index 9630b95b..eaa275f6 100644 --- a/theme/package.json +++ b/theme/package.json @@ -22,10 +22,19 @@ "theme-plume" ], "exports": { - ".": "./lib/node/index.js", - "./client": "./lib/client/index.js", - "./package.json": "./package.json", - "./shared": "./lib/shared/index.js" + ".": { + "types": "./lib/node/index.d.ts", + "import": "./lib/node/index.js" + }, + "./client": { + "types": "./lib/client/index.d.ts", + "import": "./lib/client/index.js" + }, + "./shared": { + "types": "./lib/shared/index.d.ts", + "import": "./lib/shared/index.js" + }, + "./package.json": "./package.json" }, "main": "lib/node/index.js", "types": "lib/node/index.d.ts",