mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-09 23:27:28 +02:00
Initial API refactor
This commit is contained in:
parent
32768eea7e
commit
419e0c0ff9
8 changed files with 196 additions and 193 deletions
|
@ -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" }));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue