mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-10 07:37:19 +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;
|
||||
if (metadata.version) {
|
||||
if (ENABLE_TRANSLATION) {
|
||||
if (ENABLE_TRANSLATION && metadata.language !== "en") {
|
||||
file =
|
||||
CWD + "/versioned_docs/" + metadata.language + "/" + metadata.source;
|
||||
CWD + "/translated_docs/" + metadata.language + "/" + metadata.source;
|
||||
} else {
|
||||
file = CWD + "/versioned_docs/" + metadata.source;
|
||||
}
|
||||
|
@ -120,9 +120,11 @@ function execute() {
|
|||
CWD + "/translated_docs/" + metadata.language + "/" + metadata.source;
|
||||
}
|
||||
}
|
||||
|
||||
if (!fs.existsSync(file)) {
|
||||
return;
|
||||
}
|
||||
|
||||
let rawContent = readMetadata.extractMetadata(fs.readFileSync(file, "utf8"))
|
||||
.rawContent;
|
||||
|
||||
|
|
|
@ -159,9 +159,9 @@ function execute(port) {
|
|||
|
||||
let file;
|
||||
if (metadata.version) {
|
||||
if (ENABLE_TRANSLATION) {
|
||||
if (ENABLE_TRANSLATION && metadata.language !== "en") {
|
||||
file =
|
||||
CWD + "/versioned_docs/" + metadata.language + "/" + metadata.source;
|
||||
CWD + "/translated_docs/" + metadata.language + "/" + metadata.source;
|
||||
} else {
|
||||
file = CWD + "/versioned_docs/" + metadata.source;
|
||||
}
|
||||
|
|
|
@ -14,6 +14,8 @@ const fs = require("fs");
|
|||
const path = require("path");
|
||||
const diff = require("diff");
|
||||
const assert = require("assert");
|
||||
|
||||
const versions = require(CWD + "/versions.json");
|
||||
const siteConfig = require(CWD + "/siteConfig.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 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);
|
||||
const versionFolder = CWD + "/versioned_docs/";
|
||||
|
||||
// available stores doc ids of documents that are available for
|
||||
// each version
|
||||
|
@ -184,8 +173,6 @@ function processVersionMetadata(file, version, useVersion, language) {
|
|||
|
||||
// return all metadata of versioned documents
|
||||
function docData() {
|
||||
const files = glob.sync(CWD + "/versioned_docs/**");
|
||||
|
||||
allIds = new Set();
|
||||
Object.keys(versionFiles).forEach(version => {
|
||||
Object.keys(versionFiles[version]).forEach(id => {
|
||||
|
|
|
@ -9,16 +9,15 @@
|
|||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
const CWD = process.cwd();
|
||||
const glob = require("glob");
|
||||
const fs = require("fs-extra");
|
||||
const path = require("path");
|
||||
const mkdirp = require("mkdirp");
|
||||
const semver = require("semver");
|
||||
const readMetadata = require("./server/readMetadata.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;
|
||||
|
||||
|
@ -37,9 +36,9 @@ if (typeof version === "undefined") {
|
|||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!(version = semver.valid(version))) {
|
||||
if (versions.includes(version)) {
|
||||
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);
|
||||
}
|
||||
|
@ -53,10 +52,8 @@ function makeHeader(metadata) {
|
|||
return header;
|
||||
}
|
||||
|
||||
let versionFolder = CWD + "/versioned_docs/version-" + version;
|
||||
if (ENABLE_TRANSLATION) {
|
||||
versionFolder = CWD + "/versioned_docs/en/version-" + version;
|
||||
}
|
||||
const versionFolder = CWD + "/versioned_docs/version-" + version;
|
||||
|
||||
mkdirp.sync(versionFolder);
|
||||
|
||||
// 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.id = "version-" + version + "-" + metadata.id;
|
||||
|
||||
let targetFile =
|
||||
const targetFile =
|
||||
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");
|
||||
});
|
||||
|
||||
|
@ -117,3 +111,7 @@ if (versionFallback.diffLatestSidebar()) {
|
|||
"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