mirror of
https://github.com/facebook/docusaurus.git
synced 2025-07-06 19:37:52 +02:00
fix(v1): versioned_docs and skip-next-release relative path issue by adding versioned_source to metadata (#3429)
This commit is contained in:
parent
94527b0b62
commit
d280176806
7 changed files with 32 additions and 8 deletions
|
@ -10,6 +10,7 @@ module.exports = {
|
||||||
id: 'en-doc1',
|
id: 'en-doc1',
|
||||||
title: 'Document 1',
|
title: 'Document 1',
|
||||||
source: 'doc1.md',
|
source: 'doc1.md',
|
||||||
|
versioned_source: 'doc1.md',
|
||||||
version: 'next',
|
version: 'next',
|
||||||
permalink: 'docs/en/next/doc1.html',
|
permalink: 'docs/en/next/doc1.html',
|
||||||
localized_id: 'doc1',
|
localized_id: 'doc1',
|
||||||
|
@ -25,6 +26,7 @@ module.exports = {
|
||||||
id: 'en-doc2',
|
id: 'en-doc2',
|
||||||
title: 'Document 2',
|
title: 'Document 2',
|
||||||
source: 'doc2.md',
|
source: 'doc2.md',
|
||||||
|
versioned_source: 'doc2.md',
|
||||||
version: 'next',
|
version: 'next',
|
||||||
permalink: 'docs/en/next/doc2.html',
|
permalink: 'docs/en/next/doc2.html',
|
||||||
localized_id: 'doc2',
|
localized_id: 'doc2',
|
||||||
|
@ -40,6 +42,7 @@ module.exports = {
|
||||||
id: 'en-doc3',
|
id: 'en-doc3',
|
||||||
title: 'Document 3',
|
title: 'Document 3',
|
||||||
source: 'doc3.md',
|
source: 'doc3.md',
|
||||||
|
versioned_source: 'doc3.md',
|
||||||
version: 'next',
|
version: 'next',
|
||||||
permalink: 'docs/en/next/doc3.html',
|
permalink: 'docs/en/next/doc3.html',
|
||||||
localized_id: 'doc3',
|
localized_id: 'doc3',
|
||||||
|
@ -55,6 +58,7 @@ module.exports = {
|
||||||
id: 'en-reflinks',
|
id: 'en-reflinks',
|
||||||
title: 'Reference Links',
|
title: 'Reference Links',
|
||||||
source: 'reflinks.md',
|
source: 'reflinks.md',
|
||||||
|
versioned_source: 'reflinks.md',
|
||||||
version: 'next',
|
version: 'next',
|
||||||
permalink: 'docs/en/next/reflinks.html',
|
permalink: 'docs/en/next/reflinks.html',
|
||||||
localized_id: 'reflinks',
|
localized_id: 'reflinks',
|
||||||
|
@ -70,6 +74,7 @@ module.exports = {
|
||||||
id: 'ko-doc1',
|
id: 'ko-doc1',
|
||||||
title: '문서 1',
|
title: '문서 1',
|
||||||
source: 'doc1.md',
|
source: 'doc1.md',
|
||||||
|
versioned_source: 'doc1.md',
|
||||||
version: 'next',
|
version: 'next',
|
||||||
permalink: 'docs/ko/next/doc1.html',
|
permalink: 'docs/ko/next/doc1.html',
|
||||||
localized_id: 'doc1',
|
localized_id: 'doc1',
|
||||||
|
@ -84,6 +89,7 @@ module.exports = {
|
||||||
id: 'ko-doc2',
|
id: 'ko-doc2',
|
||||||
title: '문서 2',
|
title: '문서 2',
|
||||||
source: 'doc2.md',
|
source: 'doc2.md',
|
||||||
|
versioned_source: 'doc2.md',
|
||||||
version: 'next',
|
version: 'next',
|
||||||
permalink: 'docs/ko/next/doc2.html',
|
permalink: 'docs/ko/next/doc2.html',
|
||||||
localized_id: 'doc2',
|
localized_id: 'doc2',
|
||||||
|
@ -99,6 +105,7 @@ module.exports = {
|
||||||
original_id: 'doc1',
|
original_id: 'doc1',
|
||||||
title: 'Document 1',
|
title: 'Document 1',
|
||||||
source: 'version-1.0.0/doc1.md',
|
source: 'version-1.0.0/doc1.md',
|
||||||
|
versioned_source: 'version-1.0.0/doc1.md',
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
permalink: 'docs/en/doc1.html',
|
permalink: 'docs/en/doc1.html',
|
||||||
localized_id: 'version-1.0.0-doc1',
|
localized_id: 'version-1.0.0-doc1',
|
||||||
|
@ -114,6 +121,7 @@ module.exports = {
|
||||||
original_id: 'doc2',
|
original_id: 'doc2',
|
||||||
title: 'Document 2',
|
title: 'Document 2',
|
||||||
source: 'version-1.0.0/doc2.md',
|
source: 'version-1.0.0/doc2.md',
|
||||||
|
versioned_source: 'version-1.0.0/doc2.md',
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
permalink: 'docs/en/doc2.html',
|
permalink: 'docs/en/doc2.html',
|
||||||
localized_id: 'version-1.0.0-doc2',
|
localized_id: 'version-1.0.0-doc2',
|
||||||
|
@ -128,6 +136,7 @@ module.exports = {
|
||||||
id: 'ko-version-1.0.0-doc1',
|
id: 'ko-version-1.0.0-doc1',
|
||||||
title: '문서 1',
|
title: '문서 1',
|
||||||
source: 'version-1.0.0/doc1.md',
|
source: 'version-1.0.0/doc1.md',
|
||||||
|
versioned_source: 'version-1.0.0/doc1.md',
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
permalink: 'docs/ko/doc1.html',
|
permalink: 'docs/ko/doc1.html',
|
||||||
localized_id: 'version-1.0.0-doc1',
|
localized_id: 'version-1.0.0-doc1',
|
||||||
|
@ -142,6 +151,7 @@ module.exports = {
|
||||||
id: 'ko-version-1.0.0-doc2',
|
id: 'ko-version-1.0.0-doc2',
|
||||||
title: '문서 2',
|
title: '문서 2',
|
||||||
source: 'version-1.0.0/doc2.md',
|
source: 'version-1.0.0/doc2.md',
|
||||||
|
versioned_source: 'version-1.0.0/doc2.md',
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
permalink: 'docs/ko/doc2.html',
|
permalink: 'docs/ko/doc2.html',
|
||||||
localized_id: 'version-1.0.0-doc2',
|
localized_id: 'version-1.0.0-doc2',
|
||||||
|
|
|
@ -19,6 +19,7 @@ Array [
|
||||||
"source": "doc1.md",
|
"source": "doc1.md",
|
||||||
"title": "Document 1",
|
"title": "Document 1",
|
||||||
"version": "next",
|
"version": "next",
|
||||||
|
"versioned_source": "doc1.md",
|
||||||
},
|
},
|
||||||
"type": "LINK",
|
"type": "LINK",
|
||||||
},
|
},
|
||||||
|
@ -37,6 +38,7 @@ Array [
|
||||||
"source": "doc2.md",
|
"source": "doc2.md",
|
||||||
"title": "Document 2",
|
"title": "Document 2",
|
||||||
"version": "next",
|
"version": "next",
|
||||||
|
"versioned_source": "doc2.md",
|
||||||
},
|
},
|
||||||
"type": "LINK",
|
"type": "LINK",
|
||||||
},
|
},
|
||||||
|
@ -61,6 +63,7 @@ Array [
|
||||||
"source": "doc3.md",
|
"source": "doc3.md",
|
||||||
"title": "Document 3",
|
"title": "Document 3",
|
||||||
"version": "next",
|
"version": "next",
|
||||||
|
"versioned_source": "doc3.md",
|
||||||
},
|
},
|
||||||
"type": "LINK",
|
"type": "LINK",
|
||||||
},
|
},
|
||||||
|
@ -79,6 +82,7 @@ Array [
|
||||||
"source": "reflinks.md",
|
"source": "reflinks.md",
|
||||||
"title": "Reference Links",
|
"title": "Reference Links",
|
||||||
"version": "next",
|
"version": "next",
|
||||||
|
"versioned_source": "reflinks.md",
|
||||||
},
|
},
|
||||||
"type": "LINK",
|
"type": "LINK",
|
||||||
},
|
},
|
||||||
|
|
|
@ -105,6 +105,7 @@ describe('mdToHtmlify', () => {
|
||||||
id: 'subdir-doc3',
|
id: 'subdir-doc3',
|
||||||
title: 'Document 3',
|
title: 'Document 3',
|
||||||
source: 'subdir/doc3.md',
|
source: 'subdir/doc3.md',
|
||||||
|
versioned_source: 'subdir/doc3.md',
|
||||||
permalink: 'docs/subdir/doc3.html',
|
permalink: 'docs/subdir/doc3.html',
|
||||||
language: 'en',
|
language: 'en',
|
||||||
},
|
},
|
||||||
|
|
|
@ -69,17 +69,20 @@ function mdToHtmlify(oldContent, mdToHtml, metadata, siteConfig) {
|
||||||
let mdMatch = mdRegex.exec(modifiedLine);
|
let mdMatch = mdRegex.exec(modifiedLine);
|
||||||
while (mdMatch !== null) {
|
while (mdMatch !== null) {
|
||||||
/* Replace it to correct html link */
|
/* Replace it to correct html link */
|
||||||
const docsSource = metadata.version
|
const docsSource =
|
||||||
? metadata.source.replace(/version-.*?\//, '')
|
metadata.version && readMetadata.shouldGenerateNextReleaseDocs()
|
||||||
: metadata.source;
|
? metadata.versioned_source.replace(/version-.*?\//, '')
|
||||||
|
: metadata.versioned_source;
|
||||||
let htmlLink =
|
let htmlLink =
|
||||||
mdToHtml[resolve(docsSource, mdMatch[1])] || mdToHtml[mdMatch[1]];
|
mdToHtml[resolve(docsSource, mdMatch[1])] || mdToHtml[mdMatch[1]];
|
||||||
if (htmlLink) {
|
if (htmlLink) {
|
||||||
htmlLink = getPath(htmlLink, siteConfig.cleanUrl);
|
htmlLink = getPath(htmlLink, siteConfig.cleanUrl);
|
||||||
htmlLink = htmlLink.replace('/en/', `/${metadata.language}/`);
|
htmlLink = htmlLink.replace('/en/', `/${metadata.language}/`);
|
||||||
htmlLink = htmlLink.replace(
|
htmlLink = htmlLink.replace(
|
||||||
'/VERSION/',
|
/\/VERSION\/(next\/)?/,
|
||||||
metadata.version && metadata.version !== env.versioning.latestVersion
|
metadata.version &&
|
||||||
|
metadata.version !== env.versioning.latestVersion &&
|
||||||
|
readMetadata.shouldGenerateNextReleaseDocs()
|
||||||
? `/${metadata.version}/`
|
? `/${metadata.version}/`
|
||||||
: '/',
|
: '/',
|
||||||
);
|
);
|
||||||
|
@ -95,7 +98,7 @@ function mdToHtmlify(oldContent, mdToHtml, metadata, siteConfig) {
|
||||||
|
|
||||||
if (mdBrokenLinks.length) {
|
if (mdBrokenLinks.length) {
|
||||||
console.log(
|
console.log(
|
||||||
`[WARN] unresolved links in file '${metadata.source}' >`,
|
`[WARN] unresolved links in file '${metadata.versioned_source}' >`,
|
||||||
mdBrokenLinks,
|
mdBrokenLinks,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,7 @@ function mdToHtml(Metadata, siteConfig) {
|
||||||
const result = {};
|
const result = {};
|
||||||
Object.keys(Metadata).forEach((id) => {
|
Object.keys(Metadata).forEach((id) => {
|
||||||
const metadata = Metadata[id];
|
const metadata = Metadata[id];
|
||||||
if (metadata.language !== 'en' || metadata.original_id) {
|
if (metadata.language !== 'en') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let htmlLink = baseUrl + metadata.permalink.replace('/next/', '/');
|
let htmlLink = baseUrl + metadata.permalink.replace('/next/', '/');
|
||||||
|
@ -81,7 +81,7 @@ function mdToHtml(Metadata, siteConfig) {
|
||||||
} else {
|
} else {
|
||||||
htmlLink = htmlLink.replace(docsRegex, `${baseDocsPart}VERSION/`);
|
htmlLink = htmlLink.replace(docsRegex, `${baseDocsPart}VERSION/`);
|
||||||
}
|
}
|
||||||
result[metadata.source] = htmlLink;
|
result[metadata.versioned_source] = htmlLink;
|
||||||
});
|
});
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,6 +172,7 @@ function processMetadata(file, refDir) {
|
||||||
metadata.source = subDir
|
metadata.source = subDir
|
||||||
? `${subDir}/${path.basename(file)}`
|
? `${subDir}/${path.basename(file)}`
|
||||||
: path.basename(file);
|
: path.basename(file);
|
||||||
|
metadata.versioned_source = metadata.source;
|
||||||
|
|
||||||
if (!metadata.title) {
|
if (!metadata.title) {
|
||||||
metadata.title = metadata.id;
|
metadata.title = metadata.id;
|
||||||
|
@ -426,6 +427,7 @@ module.exports = {
|
||||||
getDocsPath,
|
getDocsPath,
|
||||||
readSidebar,
|
readSidebar,
|
||||||
processMetadata,
|
processMetadata,
|
||||||
|
shouldGenerateNextReleaseDocs,
|
||||||
generateMetadataDocs,
|
generateMetadataDocs,
|
||||||
generateMetadataBlog,
|
generateMetadataBlog,
|
||||||
};
|
};
|
||||||
|
|
|
@ -234,6 +234,10 @@ function processVersionMetadata(file, version, useVersion, language) {
|
||||||
metadata.id = (env.translation.enabled ? `${language}-` : '') + metadata.id;
|
metadata.id = (env.translation.enabled ? `${language}-` : '') + metadata.id;
|
||||||
metadata.language = language;
|
metadata.language = language;
|
||||||
metadata.version = version;
|
metadata.version = version;
|
||||||
|
metadata.versioned_source = metadata.source.replace(
|
||||||
|
`version-${useVersion}`,
|
||||||
|
`version-${version}`,
|
||||||
|
);
|
||||||
|
|
||||||
return metadata;
|
return metadata;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue