diff --git a/packages/docusaurus-1.x/lib/server/__tests__/__fixtures__/metadata.js b/packages/docusaurus-1.x/lib/server/__tests__/__fixtures__/metadata.js index 8b98d6a14d..37baef643a 100644 --- a/packages/docusaurus-1.x/lib/server/__tests__/__fixtures__/metadata.js +++ b/packages/docusaurus-1.x/lib/server/__tests__/__fixtures__/metadata.js @@ -10,6 +10,7 @@ module.exports = { id: 'en-doc1', title: 'Document 1', source: 'doc1.md', + versioned_source: 'doc1.md', version: 'next', permalink: 'docs/en/next/doc1.html', localized_id: 'doc1', @@ -25,6 +26,7 @@ module.exports = { id: 'en-doc2', title: 'Document 2', source: 'doc2.md', + versioned_source: 'doc2.md', version: 'next', permalink: 'docs/en/next/doc2.html', localized_id: 'doc2', @@ -40,6 +42,7 @@ module.exports = { id: 'en-doc3', title: 'Document 3', source: 'doc3.md', + versioned_source: 'doc3.md', version: 'next', permalink: 'docs/en/next/doc3.html', localized_id: 'doc3', @@ -55,6 +58,7 @@ module.exports = { id: 'en-reflinks', title: 'Reference Links', source: 'reflinks.md', + versioned_source: 'reflinks.md', version: 'next', permalink: 'docs/en/next/reflinks.html', localized_id: 'reflinks', @@ -70,6 +74,7 @@ module.exports = { id: 'ko-doc1', title: '문서 1', source: 'doc1.md', + versioned_source: 'doc1.md', version: 'next', permalink: 'docs/ko/next/doc1.html', localized_id: 'doc1', @@ -84,6 +89,7 @@ module.exports = { id: 'ko-doc2', title: '문서 2', source: 'doc2.md', + versioned_source: 'doc2.md', version: 'next', permalink: 'docs/ko/next/doc2.html', localized_id: 'doc2', @@ -99,6 +105,7 @@ module.exports = { original_id: 'doc1', title: 'Document 1', source: 'version-1.0.0/doc1.md', + versioned_source: 'version-1.0.0/doc1.md', version: '1.0.0', permalink: 'docs/en/doc1.html', localized_id: 'version-1.0.0-doc1', @@ -114,6 +121,7 @@ module.exports = { original_id: 'doc2', title: 'Document 2', source: 'version-1.0.0/doc2.md', + versioned_source: 'version-1.0.0/doc2.md', version: '1.0.0', permalink: 'docs/en/doc2.html', localized_id: 'version-1.0.0-doc2', @@ -128,6 +136,7 @@ module.exports = { id: 'ko-version-1.0.0-doc1', title: '문서 1', source: 'version-1.0.0/doc1.md', + versioned_source: 'version-1.0.0/doc1.md', version: '1.0.0', permalink: 'docs/ko/doc1.html', localized_id: 'version-1.0.0-doc1', @@ -142,6 +151,7 @@ module.exports = { id: 'ko-version-1.0.0-doc2', title: '문서 2', source: 'version-1.0.0/doc2.md', + versioned_source: 'version-1.0.0/doc2.md', version: '1.0.0', permalink: 'docs/ko/doc2.html', localized_id: 'version-1.0.0-doc2', diff --git a/packages/docusaurus-1.x/lib/server/__tests__/__snapshots__/readCategories.test.js.snap b/packages/docusaurus-1.x/lib/server/__tests__/__snapshots__/readCategories.test.js.snap index 6dea2956a4..d830f529ba 100644 --- a/packages/docusaurus-1.x/lib/server/__tests__/__snapshots__/readCategories.test.js.snap +++ b/packages/docusaurus-1.x/lib/server/__tests__/__snapshots__/readCategories.test.js.snap @@ -19,6 +19,7 @@ Array [ "source": "doc1.md", "title": "Document 1", "version": "next", + "versioned_source": "doc1.md", }, "type": "LINK", }, @@ -37,6 +38,7 @@ Array [ "source": "doc2.md", "title": "Document 2", "version": "next", + "versioned_source": "doc2.md", }, "type": "LINK", }, @@ -61,6 +63,7 @@ Array [ "source": "doc3.md", "title": "Document 3", "version": "next", + "versioned_source": "doc3.md", }, "type": "LINK", }, @@ -79,6 +82,7 @@ Array [ "source": "reflinks.md", "title": "Reference Links", "version": "next", + "versioned_source": "reflinks.md", }, "type": "LINK", }, diff --git a/packages/docusaurus-1.x/lib/server/__tests__/docs.test.js b/packages/docusaurus-1.x/lib/server/__tests__/docs.test.js index 80d7a51261..4639701ee0 100644 --- a/packages/docusaurus-1.x/lib/server/__tests__/docs.test.js +++ b/packages/docusaurus-1.x/lib/server/__tests__/docs.test.js @@ -105,6 +105,7 @@ describe('mdToHtmlify', () => { id: 'subdir-doc3', title: 'Document 3', source: 'subdir/doc3.md', + versioned_source: 'subdir/doc3.md', permalink: 'docs/subdir/doc3.html', language: 'en', }, diff --git a/packages/docusaurus-1.x/lib/server/docs.js b/packages/docusaurus-1.x/lib/server/docs.js index 7b054d3628..f96bf47d65 100644 --- a/packages/docusaurus-1.x/lib/server/docs.js +++ b/packages/docusaurus-1.x/lib/server/docs.js @@ -69,17 +69,20 @@ function mdToHtmlify(oldContent, mdToHtml, metadata, siteConfig) { let mdMatch = mdRegex.exec(modifiedLine); while (mdMatch !== null) { /* Replace it to correct html link */ - const docsSource = metadata.version - ? metadata.source.replace(/version-.*?\//, '') - : metadata.source; + const docsSource = + metadata.version && readMetadata.shouldGenerateNextReleaseDocs() + ? metadata.versioned_source.replace(/version-.*?\//, '') + : metadata.versioned_source; let htmlLink = mdToHtml[resolve(docsSource, mdMatch[1])] || mdToHtml[mdMatch[1]]; if (htmlLink) { htmlLink = getPath(htmlLink, siteConfig.cleanUrl); htmlLink = htmlLink.replace('/en/', `/${metadata.language}/`); htmlLink = htmlLink.replace( - '/VERSION/', - metadata.version && metadata.version !== env.versioning.latestVersion + /\/VERSION\/(next\/)?/, + metadata.version && + metadata.version !== env.versioning.latestVersion && + readMetadata.shouldGenerateNextReleaseDocs() ? `/${metadata.version}/` : '/', ); @@ -95,7 +98,7 @@ function mdToHtmlify(oldContent, mdToHtml, metadata, siteConfig) { if (mdBrokenLinks.length) { console.log( - `[WARN] unresolved links in file '${metadata.source}' >`, + `[WARN] unresolved links in file '${metadata.versioned_source}' >`, mdBrokenLinks, ); } diff --git a/packages/docusaurus-1.x/lib/server/metadataUtils.js b/packages/docusaurus-1.x/lib/server/metadataUtils.js index f77ad092f0..047b12afa1 100644 --- a/packages/docusaurus-1.x/lib/server/metadataUtils.js +++ b/packages/docusaurus-1.x/lib/server/metadataUtils.js @@ -67,7 +67,7 @@ function mdToHtml(Metadata, siteConfig) { const result = {}; Object.keys(Metadata).forEach((id) => { const metadata = Metadata[id]; - if (metadata.language !== 'en' || metadata.original_id) { + if (metadata.language !== 'en') { return; } let htmlLink = baseUrl + metadata.permalink.replace('/next/', '/'); @@ -81,7 +81,7 @@ function mdToHtml(Metadata, siteConfig) { } else { htmlLink = htmlLink.replace(docsRegex, `${baseDocsPart}VERSION/`); } - result[metadata.source] = htmlLink; + result[metadata.versioned_source] = htmlLink; }); return result; } diff --git a/packages/docusaurus-1.x/lib/server/readMetadata.js b/packages/docusaurus-1.x/lib/server/readMetadata.js index 538c88a72f..42ff273849 100644 --- a/packages/docusaurus-1.x/lib/server/readMetadata.js +++ b/packages/docusaurus-1.x/lib/server/readMetadata.js @@ -172,6 +172,7 @@ function processMetadata(file, refDir) { metadata.source = subDir ? `${subDir}/${path.basename(file)}` : path.basename(file); + metadata.versioned_source = metadata.source; if (!metadata.title) { metadata.title = metadata.id; @@ -426,6 +427,7 @@ module.exports = { getDocsPath, readSidebar, processMetadata, + shouldGenerateNextReleaseDocs, generateMetadataDocs, generateMetadataBlog, }; diff --git a/packages/docusaurus-1.x/lib/server/versionFallback.js b/packages/docusaurus-1.x/lib/server/versionFallback.js index 64df0f3f98..26053df44d 100644 --- a/packages/docusaurus-1.x/lib/server/versionFallback.js +++ b/packages/docusaurus-1.x/lib/server/versionFallback.js @@ -234,6 +234,10 @@ function processVersionMetadata(file, version, useVersion, language) { metadata.id = (env.translation.enabled ? `${language}-` : '') + metadata.id; metadata.language = language; metadata.version = version; + metadata.versioned_source = metadata.source.replace( + `version-${useVersion}`, + `version-${version}`, + ); return metadata; }