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

View file

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

View file

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

View file

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