From 5af709a7623f698a1630054ee8ffda8f1544b753 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sun, 19 May 2024 14:06:47 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=AD=A3=E5=88=99=E6=A0=A1=E9=AA=8C=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 5 +++-- docs/notes/theme/guide/编写文章.md | 2 +- eslint.config.js | 4 ++++ plugins/plugin-blog-data/src/node/prepareBlogData.ts | 2 +- plugins/plugin-caniuse/src/node/plugin.ts | 2 +- plugins/plugin-copy-code/src/client/setupCopyCode.ts | 2 +- plugins/plugin-md-power/src/client/components/CodeEditor.vue | 2 +- plugins/plugin-md-power/src/client/composables/codeRepl.ts | 2 +- plugins/plugin-md-power/src/client/utils/is.ts | 2 +- 9 files changed, 14 insertions(+), 9 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ec280134..6aae6ea6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,6 +18,7 @@ "stylelint.packageManager": "pnpm", "eslint.rules.customizations": [ { "rule": "style/*", "severity": "off" }, + { "rule": "format/*", "severity": "off" }, { "rule": "*-indent", "severity": "off" }, { "rule": "*-spacing", "severity": "off" }, { "rule": "*-spaces", "severity": "off" }, @@ -27,11 +28,11 @@ { "rule": "*quotes", "severity": "off" }, { "rule": "*semi", "severity": "off" } ], + "editor.formatOnSave": false, + "prettier.enable": false, "editor.codeActionsOnSave": { - "source.fixAll": "explicit", "source.fixAll.eslint": "explicit", "source.organizeImports": "never" - // "source.fixAll.stylelint": "explicit" }, "editor.formatOnPaste": true, "eslint.validate": [ diff --git a/docs/notes/theme/guide/编写文章.md b/docs/notes/theme/guide/编写文章.md index 4d9678fe..94eba640 100644 --- a/docs/notes/theme/guide/编写文章.md +++ b/docs/notes/theme/guide/编写文章.md @@ -28,7 +28,7 @@ permalink: /guide/write/ 由于文件夹名称将作为分类名称,且不在主题配置中进行排序配置,对于有排序需要的场景,使用以下规则进行命名 ``` ts -const dir = /\d+\.[^]+/ +const dir = /\d+\.[\s\S]+/ // 即 数字 + . + 分类名称 // 如: 1.前端 ``` diff --git a/eslint.config.js b/eslint.config.js index dda5695f..a9aade18 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,6 +1,10 @@ import config from '@pengzhanbo/eslint-config-vue' export default config({ + // todo: 正则校验 + // 当前项目中的 正则 海冰不能完全通过 规则,存在 53 个问题 + // 但处理起来比较麻烦,因此将会作为一项比较长期的工作来完成。 + regexp: false, ignores: [ 'lib', 'docs/notes/theme/snippet/code-block.snippet.md', diff --git a/plugins/plugin-blog-data/src/node/prepareBlogData.ts b/plugins/plugin-blog-data/src/node/prepareBlogData.ts index 41e22c63..552851d5 100644 --- a/plugins/plugin-blog-data/src/node/prepareBlogData.ts +++ b/plugins/plugin-blog-data/src/node/prepareBlogData.ts @@ -22,7 +22,7 @@ if (import.meta.hot) { } ` -const headingRe = /.*?<\/h\1>/gi +const headingRe = /]*>.*?<\/h\1>/gi function getTimestamp(time: Date): number { return new Date(time).getTime() diff --git a/plugins/plugin-caniuse/src/node/plugin.ts b/plugins/plugin-caniuse/src/node/plugin.ts index 23cf274d..4941687c 100644 --- a/plugins/plugin-caniuse/src/node/plugin.ts +++ b/plugins/plugin-caniuse/src/node/plugin.ts @@ -14,7 +14,7 @@ export function caniusePlugin({ }: CanIUsePluginOptions): Plugin { mode = isMode(mode) ? mode : modeMap[0] const type = 'caniuse' - const validateReg = new RegExp(`^${type}\\s+(.*)$`) + const validateReg = new RegExp(`^${type}(?:$|\s)`) const pluginObj: PluginObject = { name: '@vuepress-plume/plugin-caniuse', clientConfigFile: path.resolve(__dirname, '../client/clientConfig.js'), diff --git a/plugins/plugin-copy-code/src/client/setupCopyCode.ts b/plugins/plugin-copy-code/src/client/setupCopyCode.ts index d8b84c6f..a7cbadeb 100644 --- a/plugins/plugin-copy-code/src/client/setupCopyCode.ts +++ b/plugins/plugin-copy-code/src/client/setupCopyCode.ts @@ -5,7 +5,7 @@ import type { CopyCodeOptions } from '../shared/index.js' declare const __COPY_CODE_OPTIONS__: CopyCodeOptions const options = __COPY_CODE_OPTIONS__ -const RE_LANGUAGE = /language-([\w]+)/ +const RE_LANGUAGE = /language-(\w+)/ const RE_START_CODE = /^ *(\$|>)/gm const shells = ['shellscript', 'shell', 'bash', 'sh', 'zsh'] const ignoredNodes = ['.diff.remove', '.vp-copy-ignore'] diff --git a/plugins/plugin-md-power/src/client/components/CodeEditor.vue b/plugins/plugin-md-power/src/client/components/CodeEditor.vue index 38f902b6..22a07b09 100644 --- a/plugins/plugin-md-power/src/client/components/CodeEditor.vue +++ b/plugins/plugin-md-power/src/client/components/CodeEditor.vue @@ -34,7 +34,7 @@ function highlight() { }) if (container) { container.innerHTML = output - .replace(/^/, '') + .replace(/^]*>/, '') .replace(/<\/pre>$/, '') .replace(/()(<\/span>)/g, '$1$2') } diff --git a/plugins/plugin-md-power/src/client/composables/codeRepl.ts b/plugins/plugin-md-power/src/client/composables/codeRepl.ts index 088e9d25..ea1ac391 100644 --- a/plugins/plugin-md-power/src/client/composables/codeRepl.ts +++ b/plugins/plugin-md-power/src/client/composables/codeRepl.ts @@ -4,7 +4,7 @@ import { sleep } from '../utils/sleep.js' import { rustExecute } from './rustRepl.js' const ignoredNodes = ['.diff.remove', '.vp-copy-ignore'] -const RE_LANGUAGE = /language-([\w]+)/ +const RE_LANGUAGE = /language-(\w+)/ const api = { go: 'https://api.pengzhanbo.cn/repl/golang/run', kotlin: 'https://api.pengzhanbo.cn/repl/kotlin/run', diff --git a/plugins/plugin-md-power/src/client/utils/is.ts b/plugins/plugin-md-power/src/client/utils/is.ts index fa23aada..032e92a5 100644 --- a/plugins/plugin-md-power/src/client/utils/is.ts +++ b/plugins/plugin-md-power/src/client/utils/is.ts @@ -3,7 +3,7 @@ export function checkIsMobile(ua: string): boolean { } export function checkIsSafari(ua: string): boolean { - return /version\/([\w.]+) .*(mobile ?safari|safari)/i.test(ua) + return /version\/[\w.]+ .*(?:mobile ?safari|safari)/i.test(ua) } export function checkIsiPad(ua: string): boolean {