mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-10 15:47:23 +02:00
Use versions.json file and move versioned, translated docs into translated_docs
This commit is contained in:
parent
d3e3d209a4
commit
67592dcf8a
4 changed files with 21 additions and 34 deletions
|
@ -106,9 +106,9 @@ function execute() {
|
||||||
|
|
||||||
let file;
|
let file;
|
||||||
if (metadata.version) {
|
if (metadata.version) {
|
||||||
if (ENABLE_TRANSLATION) {
|
if (ENABLE_TRANSLATION && metadata.language !== "en") {
|
||||||
file =
|
file =
|
||||||
CWD + "/versioned_docs/" + metadata.language + "/" + metadata.source;
|
CWD + "/translated_docs/" + metadata.language + "/" + metadata.source;
|
||||||
} else {
|
} else {
|
||||||
file = CWD + "/versioned_docs/" + metadata.source;
|
file = CWD + "/versioned_docs/" + metadata.source;
|
||||||
}
|
}
|
||||||
|
@ -120,9 +120,11 @@ function execute() {
|
||||||
CWD + "/translated_docs/" + metadata.language + "/" + metadata.source;
|
CWD + "/translated_docs/" + metadata.language + "/" + metadata.source;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fs.existsSync(file)) {
|
if (!fs.existsSync(file)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let rawContent = readMetadata.extractMetadata(fs.readFileSync(file, "utf8"))
|
let rawContent = readMetadata.extractMetadata(fs.readFileSync(file, "utf8"))
|
||||||
.rawContent;
|
.rawContent;
|
||||||
|
|
||||||
|
|
|
@ -159,9 +159,9 @@ function execute(port) {
|
||||||
|
|
||||||
let file;
|
let file;
|
||||||
if (metadata.version) {
|
if (metadata.version) {
|
||||||
if (ENABLE_TRANSLATION) {
|
if (ENABLE_TRANSLATION && metadata.language !== "en") {
|
||||||
file =
|
file =
|
||||||
CWD + "/versioned_docs/" + metadata.language + "/" + metadata.source;
|
CWD + "/translated_docs/" + metadata.language + "/" + metadata.source;
|
||||||
} else {
|
} else {
|
||||||
file = CWD + "/versioned_docs/" + metadata.source;
|
file = CWD + "/versioned_docs/" + metadata.source;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,8 @@ const fs = require("fs");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const diff = require("diff");
|
const diff = require("diff");
|
||||||
const assert = require("assert");
|
const assert = require("assert");
|
||||||
|
|
||||||
|
const versions = require(CWD + "/versions.json");
|
||||||
const siteConfig = require(CWD + "/siteConfig.js");
|
const siteConfig = require(CWD + "/siteConfig.js");
|
||||||
|
|
||||||
const ENABLE_TRANSLATION = fs.existsSync(CWD + "/languages.js");
|
const ENABLE_TRANSLATION = fs.existsSync(CWD + "/languages.js");
|
||||||
|
@ -68,20 +70,7 @@ function extractMetadata(content) {
|
||||||
|
|
||||||
/*****************************************************************/
|
/*****************************************************************/
|
||||||
|
|
||||||
// versions is an array of all versions currently in use
|
const versionFolder = CWD + "/versioned_docs/";
|
||||||
const versions = [];
|
|
||||||
const versionFolder = ENABLE_TRANSLATION
|
|
||||||
? CWD + "/versioned_docs/en/"
|
|
||||||
: CWD + "/versioned_docs/";
|
|
||||||
let files = glob.sync(versionFolder + "*");
|
|
||||||
files.forEach(file => {
|
|
||||||
if (!fs.lstatSync(file).isDirectory()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const version = file.split("version-")[1];
|
|
||||||
versions.push(version);
|
|
||||||
});
|
|
||||||
versions.sort(semver.rcompare);
|
|
||||||
|
|
||||||
// available stores doc ids of documents that are available for
|
// available stores doc ids of documents that are available for
|
||||||
// each version
|
// each version
|
||||||
|
@ -184,8 +173,6 @@ function processVersionMetadata(file, version, useVersion, language) {
|
||||||
|
|
||||||
// return all metadata of versioned documents
|
// return all metadata of versioned documents
|
||||||
function docData() {
|
function docData() {
|
||||||
const files = glob.sync(CWD + "/versioned_docs/**");
|
|
||||||
|
|
||||||
allIds = new Set();
|
allIds = new Set();
|
||||||
Object.keys(versionFiles).forEach(version => {
|
Object.keys(versionFiles).forEach(version => {
|
||||||
Object.keys(versionFiles[version]).forEach(id => {
|
Object.keys(versionFiles[version]).forEach(id => {
|
||||||
|
|
|
@ -9,16 +9,15 @@
|
||||||
* of patent rights can be found in the PATENTS file in the same directory.
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const CWD = process.cwd();
|
|
||||||
const glob = require("glob");
|
const glob = require("glob");
|
||||||
const fs = require("fs-extra");
|
const fs = require("fs-extra");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const mkdirp = require("mkdirp");
|
const mkdirp = require("mkdirp");
|
||||||
const semver = require("semver");
|
|
||||||
const readMetadata = require("./server/readMetadata.js");
|
const readMetadata = require("./server/readMetadata.js");
|
||||||
const versionFallback = require("./server/versionFallback.js");
|
const versionFallback = require("./server/versionFallback.js");
|
||||||
|
|
||||||
const ENABLE_TRANSLATION = fs.existsSync(CWD + "/languages.js");
|
const CWD = process.cwd();
|
||||||
|
const versions = require(CWD + "/versions.json");
|
||||||
|
|
||||||
let version;
|
let version;
|
||||||
|
|
||||||
|
@ -37,9 +36,9 @@ if (typeof version === "undefined") {
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(version = semver.valid(version))) {
|
if (versions.includes(version)) {
|
||||||
console.error(
|
console.error(
|
||||||
"Invalid version!\nSpecify a valid version following the specifications at http://semver.org/."
|
"This verison already exists!\nSpecify a new version to create that does not already exist."
|
||||||
);
|
);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
@ -53,10 +52,8 @@ function makeHeader(metadata) {
|
||||||
return header;
|
return header;
|
||||||
}
|
}
|
||||||
|
|
||||||
let versionFolder = CWD + "/versioned_docs/version-" + version;
|
const versionFolder = CWD + "/versioned_docs/version-" + version;
|
||||||
if (ENABLE_TRANSLATION) {
|
|
||||||
versionFolder = CWD + "/versioned_docs/en/version-" + version;
|
|
||||||
}
|
|
||||||
mkdirp.sync(versionFolder);
|
mkdirp.sync(versionFolder);
|
||||||
|
|
||||||
// copy necessary files to new version, changing some of its metadata to reflect the versioning
|
// copy necessary files to new version, changing some of its metadata to reflect the versioning
|
||||||
|
@ -81,12 +78,9 @@ files.forEach(file => {
|
||||||
metadata.original_id = metadata.id;
|
metadata.original_id = metadata.id;
|
||||||
metadata.id = "version-" + version + "-" + metadata.id;
|
metadata.id = "version-" + version + "-" + metadata.id;
|
||||||
|
|
||||||
let targetFile =
|
const targetFile =
|
||||||
CWD + "/versioned_docs/version-" + version + "/" + path.basename(file);
|
CWD + "/versioned_docs/version-" + version + "/" + path.basename(file);
|
||||||
if (ENABLE_TRANSLATION) {
|
|
||||||
targetFile =
|
|
||||||
CWD + "/versioned_docs/en/version-" + version + "/" + path.basename(file);
|
|
||||||
}
|
|
||||||
fs.writeFileSync(targetFile, makeHeader(metadata) + rawContent, "utf8");
|
fs.writeFileSync(targetFile, makeHeader(metadata) + rawContent, "utf8");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -117,3 +111,7 @@ if (versionFallback.diffLatestSidebar()) {
|
||||||
"utf8"
|
"utf8"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// update versions.json file
|
||||||
|
versions.unshift(version);
|
||||||
|
fs.writeFileSync(CWD + "/versions.json", JSON.stringify(versions, null, 2));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue