From 29faa9bdf345a65e674a1b3bc97073410d276289 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Wed, 28 Jun 2023 18:30:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(plugin-notes-data):=20=E4=BF=AE=E5=A4=8D=20?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E7=B3=BB=E7=BB=9F=E7=9A=84=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=88=86=E9=9A=94=E7=AC=A6=E4=B8=8D=E5=90=8C=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E6=AD=A3=E5=88=99=E5=8C=B9=E9=85=8D=E9=94=99=E8=AF=AF?= =?UTF-8?q?(#3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/plugin-notes-data/package.json | 3 +++ packages/plugin-notes-data/src/node/prepareNotesData.ts | 5 +++-- packages/plugin-notes-data/src/node/utils.ts | 4 ++++ packages/theme/src/node/autoFrontmatter.ts | 7 +++---- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/plugin-notes-data/package.json b/packages/plugin-notes-data/package.json index 7ced3244..c427f777 100644 --- a/packages/plugin-notes-data/package.json +++ b/packages/plugin-notes-data/package.json @@ -20,6 +20,9 @@ }, "main": "lib/node/index.js", "types": "./lib/node/index.d.ts", + "files": [ + "lib" + ], "scripts": { "build": "pnpm run clean && pnpm run copy && pnpm run ts", "clean": "rimraf lib *.tsbuildinfo", diff --git a/packages/plugin-notes-data/src/node/prepareNotesData.ts b/packages/plugin-notes-data/src/node/prepareNotesData.ts index e4b7c166..204c1aba 100644 --- a/packages/plugin-notes-data/src/node/prepareNotesData.ts +++ b/packages/plugin-notes-data/src/node/prepareNotesData.ts @@ -9,7 +9,7 @@ import type { NotesSidebar, NotesSidebarItem, } from '../shared/index.js' -import { ensureArray } from './utils.js' +import { ensureArray, normalizePath } from './utils.js' const HMR_CODE = ` if (import.meta.webpackHot) { @@ -37,10 +37,11 @@ export const prepareNotesData = async ( { include, exclude, notes, dir, link }: NotesDataOptions ) => { if (!notes || notes.length === 0) return + dir = normalizePath(dir) const filter = createFilter(ensureArray(include), ensureArray(exclude), { resolve: false, }) - const DIR_PATTERN = new RegExp(`^${path.join(dir, '/')}`) + const DIR_PATTERN = new RegExp(`^${normalizePath(path.join(dir, '/'))}`) const notesPageList: NotePage[] = app.pages .filter( (page) => diff --git a/packages/plugin-notes-data/src/node/utils.ts b/packages/plugin-notes-data/src/node/utils.ts index 981a3c67..2e016c6d 100644 --- a/packages/plugin-notes-data/src/node/utils.ts +++ b/packages/plugin-notes-data/src/node/utils.ts @@ -3,3 +3,7 @@ export function ensureArray(thing: T | T[] | null | undefined): T[] { if (thing === null || thing === undefined) return [] return [thing] } + +export function normalizePath(str: string) { + return str.replace(/\\+/g, '/') +} diff --git a/packages/theme/src/node/autoFrontmatter.ts b/packages/theme/src/node/autoFrontmatter.ts index aa994187..95208041 100644 --- a/packages/theme/src/node/autoFrontmatter.ts +++ b/packages/theme/src/node/autoFrontmatter.ts @@ -36,13 +36,12 @@ export default function autoFrontmatter( const notes = localeOption.locales?.[locale].notes if (!notes) return '' const dir = notes.dir - console.log(locale, dir) - return dir ? path.join(locale, dir).replace(/^\//, '') : '' + return dir + ? path.join(locale, dir).replace(/\\+/g, '/').replace(/^\//, '') + : '' }) .filter(Boolean) - console.log('locales notes dirs', Object.keys(locales), localesNotesDirs) - const baseFormatter: FormatterObject = { author(author: string) { if (author) return author