Add versioning functionality

This commit is contained in:
Frank Li 2017-08-03 10:25:01 -07:00
parent 58452ea963
commit 3598dffc58
12 changed files with 568 additions and 132 deletions

View file

@ -14,6 +14,7 @@ const fs = require("fs");
const os = require("os");
const glob = require("glob");
const siteConfig = require(CWD + "/siteConfig.js");
const versionFallback = require("./versionFallback");
let languages;
if (fs.existsSync(CWD + "/languages.js")) {
languages = require(CWD + "/languages.js");
@ -28,7 +29,9 @@ if (fs.existsSync(CWD + "/languages.js")) {
}
function readSidebar() {
const allSidebars = require(CWD + "/sidebar.json");
let allSidebars = require(CWD + "/sidebar.json");
Object.assign(allSidebars, versionFallback.sidebarData());
const order = {};
Object.keys(allSidebars).forEach(sidebar => {
@ -148,7 +151,7 @@ function generateDocsMetadata() {
enabledLanguages.push(lang.tag);
});
const metadatas = [];
const metadatas = {};
/* metadata for english files */
let files = glob.sync(CWD + "/../docs/**");
@ -163,7 +166,7 @@ function generateDocsMetadata() {
return;
}
let metadata = res.metadata;
metadatas.push(metadata);
metadatas[metadata.id] = metadata;
}
});
@ -188,10 +191,32 @@ function generateDocsMetadata() {
return;
}
let metadata = res.metadata;
metadatas.push(metadata);
metadatas[metadata.id] = metadata;
}
});
versionData = versionFallback.docData();
versionData.forEach(metadata => {
const id = metadata.localized_id;
metadata.sidebar = order[id].sidebar;
metadata.category = order[id].category;
if (order[id].next) {
metadata.next_id = order[id].next.replace(
"version-" + metadata.version + "-",
""
);
metadata.next = metadata.language + "-" + order[id].next;
}
if (order[id].previous) {
metadata.previous_id = order[id].previous.replace(
"version-" + metadata.version + "-",
""
);
metadata.previous = metadata.language + "-" + order[id].previous;
}
metadatas[metadata.id] = metadata;
});
fs.writeFileSync(
__dirname + "/../core/metadata.js",
"/**\n" +
@ -245,6 +270,7 @@ function generateBlogMetadata() {
}
module.exports = {
readSidebar,
extractMetadata,
processMetadata,
generateDocsMetadata,