From b04c6dafe7b5cfcce7bd8c922b495e2c90c1add8 Mon Sep 17 00:00:00 2001 From: "Mr.Hope" Date: Sat, 7 Jan 2023 13:07:33 +0800 Subject: [PATCH] feat(core): add markdownEnv to Page --- packages/core/src/page/createPage.ts | 2 ++ packages/core/src/page/renderPageContent.ts | 15 +++++++++++++++ packages/core/src/types/page.ts | 5 +++++ .../core/tests/page/renderPageContent.spec.ts | 1 + 4 files changed, 23 insertions(+) diff --git a/packages/core/src/page/createPage.ts b/packages/core/src/page/createPage.ts index 0e899d7802..d45f69d688 100644 --- a/packages/core/src/page/createPage.ts +++ b/packages/core/src/page/createPage.ts @@ -37,6 +37,7 @@ export const createPage = async ( frontmatter, headers, links, + markdownEnv, sfcBlocks, title, } = await renderPageContent({ @@ -123,6 +124,7 @@ export const createPage = async ( date, deps, links, + markdownEnv, pathInferred, pathLocale, permalink, diff --git a/packages/core/src/page/renderPageContent.ts b/packages/core/src/page/renderPageContent.ts index 414ff07e04..5ea613f69d 100644 --- a/packages/core/src/page/renderPageContent.ts +++ b/packages/core/src/page/renderPageContent.ts @@ -24,6 +24,7 @@ export const renderPageContent = async ({ }): Promise<{ contentRendered: string deps: string[] + markdownEnv: Record frontmatter: PageFrontmatter headers: MarkdownHeader[] links: MarkdownLink[] @@ -54,6 +55,19 @@ export const renderPageContent = async ({ customBlocks: [], }, title = '', + + // values dropped from env + + // eslint-disable-next-line @typescript-eslint/naming-convention + base: _base, + // eslint-disable-next-line @typescript-eslint/naming-convention + content: _content, + // eslint-disable-next-line @typescript-eslint/naming-convention + filePath: _filePath, + // eslint-disable-next-line @typescript-eslint/naming-convention + filePathRelative: _filePathRelative, + + ...otherEnv } = markdownEnv return { @@ -62,6 +76,7 @@ export const renderPageContent = async ({ frontmatter, headers, links, + markdownEnv: otherEnv, sfcBlocks, title: frontmatter.title ?? title, } diff --git a/packages/core/src/types/page.ts b/packages/core/src/types/page.ts index 532ba237b1..5b04a924af 100644 --- a/packages/core/src/types/page.ts +++ b/packages/core/src/types/page.ts @@ -74,6 +74,11 @@ export type Page< */ routeMeta: Record + /** + * Markdown Environment of the page + */ + markdownEnv: Record + /** * Extracted sfc blocks of the page */ diff --git a/packages/core/tests/page/renderPageContent.spec.ts b/packages/core/tests/page/renderPageContent.spec.ts index 5f3c8c7d1d..5ab8ca87c2 100644 --- a/packages/core/tests/page/renderPageContent.spec.ts +++ b/packages/core/tests/page/renderPageContent.spec.ts @@ -31,6 +31,7 @@ const msg = 'msg' frontmatter: {}, headers: [], links: [], + markdownEnv: { excerpt: '' }, sfcBlocks: { template: { type: 'template',