fix(v1): versioned_docs and skip-next-release relative path issue by adding versioned_source to metadata (#3429)

This commit is contained in:
josephMG 2020-09-10 22:52:16 +08:00 committed by GitHub
parent 94527b0b62
commit d280176806
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 32 additions and 8 deletions

View file

@ -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',

View file

@ -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",
}, },

View file

@ -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',
}, },

View file

@ -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,
); );
} }

View file

@ -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;
} }

View file

@ -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,
}; };

View file

@ -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;
} }