Initial API refactor

This commit is contained in:
Frank Li 2017-07-31 16:19:02 -07:00
parent 32768eea7e
commit 419e0c0ff9
8 changed files with 196 additions and 193 deletions

View file

@ -12,8 +12,9 @@ const CWD = process.cwd();
const path = require("path");
const fs = require("fs");
const os = require("os");
const sidebar = require(CWD + "/docSidebar.js");
const sidebar = require(CWD + "/sidebar.json");
const glob = require("glob");
const siteConfig = require(CWD + "/siteConfig.js");
let languages;
if (fs.existsSync(CWD + "/languages.js")) {
languages = require(CWD + "/languages.js");
@ -108,11 +109,12 @@ function processMetadata(file) {
const rawContent = result.rawContent;
metadata.source = path.basename(file);
// in permalink replace /en/ language with localized folder
metadata.permalink = metadata.permalink.replace(
/\/en\//g,
"/" + language + "/"
);
if (languages.length === 1 && !siteConfig.useEnglishUrl) {
metadata.permalink = "docs/" + metadata.id + ".html";
} else {
metadata.permalink = "docs/" + language + "/" + metadata.id + ".html";
}
// change ids previous, next
metadata.localized_id = metadata.id;
metadata.id = language + "-" + metadata.id;
@ -139,7 +141,7 @@ function processMetadata(file) {
function generateDocsMetadata() {
const order = readSidebar(sidebar);
const regexSubFolder = /docs\/(.*)\/.*/;
const regexSubFolder = /translated_docs\/(.*)\/.*/;
const enabledLanguages = [];
languages.filter(lang => lang.enabled).map(lang => {
@ -148,7 +150,25 @@ function generateDocsMetadata() {
const metadatas = [];
const files = glob.sync(CWD + "/../docs/**");
/* metadata for english files */
let files = glob.sync(CWD + "/../docs/**");
files.forEach(file => {
let language = "en";
const extension = path.extname(file);
if (extension === ".md" || extension === ".markdown") {
const res = processMetadata(file);
if (!res) {
return;
}
let metadata = res.metadata;
metadatas.push(metadata);
}
});
/* metadata for non-english docs */
files = glob.sync(CWD + "/translated_docs/**");
files.forEach(file => {
let language = "en";
const match = regexSubFolder.exec(file);
@ -186,8 +206,12 @@ function generateDocsMetadata() {
function generateBlogMetadata() {
const metadatas = [];
let files = glob.sync(CWD + "/../blog/**/*.*");
let files = glob.sync(CWD + "/blog/**/*.*");
files.sort().reverse().forEach(file => {
const extension = path.extname(file);
if (extension !== ".md" && extension !== ".markdown") {
return;
}
// Transform
// 2015-08-13-blog-post-name-0.5.md
// into
@ -197,8 +221,6 @@ function generateBlogMetadata() {
.replace("-", "/")
.replace("-", "/")
.replace("-", "/")
// react-middleware is broken with files that contains multiple .
// like react-0.14.js
.replace(/\./g, "-")
.replace(/\-md$/, ".html");
const result = extractMetadata(fs.readFileSync(file, { encoding: "utf8" }));