diff --git a/packages/docusaurus-plugin-content-blog/src/blogUtils.ts b/packages/docusaurus-plugin-content-blog/src/blogUtils.ts index e6951f8e20..4f3bb3bd4e 100644 --- a/packages/docusaurus-plugin-content-blog/src/blogUtils.ts +++ b/packages/docusaurus-plugin-content-blog/src/blogUtils.ts @@ -257,6 +257,7 @@ async function processBlogSourceFile( blogSourceAbsolute, options, frontMatter.last_update, + vcs, ); const draft = isDraft({frontMatter}); diff --git a/packages/docusaurus-plugin-content-docs/src/docs.ts b/packages/docusaurus-plugin-content-docs/src/docs.ts index 352ccb3adb..b8f02ba5b0 100644 --- a/packages/docusaurus-plugin-content-docs/src/docs.ts +++ b/packages/docusaurus-plugin-content-docs/src/docs.ts @@ -97,6 +97,7 @@ async function doProcessDocMetadata({ siteDir, siteConfig: { markdown: {parseFrontMatter}, + future: {experimental_vcs: vcs}, }, } = context; @@ -125,6 +126,7 @@ async function doProcessDocMetadata({ filePath, options, lastUpdateFrontMatter, + vcs, ); // E.g. api/plugins/myDoc -> myDoc; myDoc -> myDoc diff --git a/packages/docusaurus-plugin-content-docs/src/versions/__tests__/loadVersion.test.ts b/packages/docusaurus-plugin-content-docs/src/versions/__tests__/loadVersion.test.ts index 442e4a43a5..57d20695f1 100644 --- a/packages/docusaurus-plugin-content-docs/src/versions/__tests__/loadVersion.test.ts +++ b/packages/docusaurus-plugin-content-docs/src/versions/__tests__/loadVersion.test.ts @@ -8,6 +8,7 @@ import * as path from 'path'; import {fromPartial} from '@total-typescript/shoehorn'; import {DEFAULT_PARSE_FRONT_MATTER} from '@docusaurus/utils/src'; +import {DEFAULT_VCS_CONFIG} from '@docusaurus/utils'; import {readVersionsMetadata} from '../version'; import {DEFAULT_OPTIONS} from '../../options'; import {loadVersion} from '../loadVersion'; @@ -37,6 +38,9 @@ async function siteFixture(fixture: string) { markdown: { parseFrontMatter: DEFAULT_PARSE_FRONT_MATTER, }, + future: { + experimental_vcs: DEFAULT_VCS_CONFIG, + }, }, }); diff --git a/packages/docusaurus-plugin-content-pages/src/content.ts b/packages/docusaurus-plugin-content-pages/src/content.ts index 65f1d9b420..c3ae1b18e8 100644 --- a/packages/docusaurus-plugin-content-pages/src/content.ts +++ b/packages/docusaurus-plugin-content-pages/src/content.ts @@ -98,6 +98,7 @@ async function processPageSourceFile( ): Promise { const {context, options, contentPaths} = params; const {siteConfig, baseUrl, siteDir, i18n} = context; + const vcs = siteConfig.future.experimental_vcs; const {editUrl} = options; // Lookup in localized folder in priority @@ -180,6 +181,7 @@ async function processPageSourceFile( source, options, frontMatter.last_update, + vcs, ); if (isDraft({frontMatter})) { diff --git a/packages/docusaurus-utils/src/lastUpdateUtils.ts b/packages/docusaurus-utils/src/lastUpdateUtils.ts index 97dbcbe0a0..7c23272a76 100644 --- a/packages/docusaurus-utils/src/lastUpdateUtils.ts +++ b/packages/docusaurus-utils/src/lastUpdateUtils.ts @@ -116,13 +116,15 @@ export async function readLastUpdateData( filePath: string, options: LastUpdateOptions, lastUpdateFrontMatter: FrontMatterLastUpdate | undefined, - - // We fallback to the default VSC config on purpose + vcs: Pick, +): Promise { + // We fallback to the default VSC config at runtime on purpose // It preserves retro-compatibility if a third-party plugin imports it // This also ensures unit tests keep working without extra setup + // We still want to ensure type safety by requiring the VCS param // TODO Docusaurus v4: refactor all these Git read APIs - vcs: Pick = DEFAULT_VCS_CONFIG, -): Promise { + vcs = vcs ?? DEFAULT_VCS_CONFIG; + const {showLastUpdateAuthor, showLastUpdateTime} = options; if (!showLastUpdateAuthor && !showLastUpdateTime) {