Use versions.json file and move versioned, translated docs into translated_docs

This commit is contained in:
Frank Li 2017-08-03 15:58:56 -07:00
parent d3e3d209a4
commit 67592dcf8a
4 changed files with 21 additions and 34 deletions

View file

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

View file

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

View file

@ -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 => {

View file

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