Code cleanups for consistency & adds Docusaurus to meta tags (#138)

* Add a made with Docusaurus meta tag

* Code cleanups and changes for clarity

* Add back pages string extraction
This commit is contained in:
Eric Nakagawa 2017-10-18 14:40:16 -07:00 committed by Joel Marcey
parent fd05bb3239
commit a4695a3083
4 changed files with 43 additions and 14 deletions

View file

@ -25,6 +25,7 @@ class Head extends React.Component {
<meta httpEquiv="X-UA-Compatible" content="IE=edge, chrome=1" /> <meta httpEquiv="X-UA-Compatible" content="IE=edge, chrome=1" />
<title>{this.props.title}</title> <title>{this.props.title}</title>
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<meta name="generator" content="Docusaurus" />
<meta property="og:title" content={this.props.title} /> <meta property="og:title" content={this.props.title} />
<meta property="og:type" content="website" /> <meta property="og:type" content="website" />
<meta property="og:url" content={this.props.url} /> <meta property="og:url" content={this.props.url} />

View file

@ -107,7 +107,6 @@ function extractMetadata(content) {
} catch (e) {} } catch (e) {}
metadata[key] = value; metadata[key] = value;
} }
return { metadata, rawContent: both.content }; return { metadata, rawContent: both.content };
} }

View file

@ -121,14 +121,15 @@ function execute(port) {
console.log("server.js triggered..."); console.log("server.js triggered...");
reloadMetadata(); reloadMetadata();
reloadMetadataBlog();
extractTranslations();
reloadSiteConfig();
// handle all requests for document pages // handle all requests for document pages
const app = express().get(/docs\/.*html$/, (req, res, next) => { const app = express();
extractTranslations();
reloadSiteConfig();
let url = req.path.toString().replace(siteConfig.baseUrl, "");
reloadMetadata(); app.get(/docs\/.*html$/, (req, res, next) => {
let url = req.path.toString().replace(siteConfig.baseUrl, "");
// links is a map from a permalink to an id for each document // links is a map from a permalink to an id for each document
let links = {}; let links = {};
@ -240,7 +241,11 @@ function execute(port) {
} }
const docComp = ( const docComp = (
<DocsLayout metadata={metadata} language={language} config={siteConfig} Doc={Doc}> <DocsLayout
metadata={metadata}
language={language}
config={siteConfig}
Doc={Doc}>
{rawContent} {rawContent}
</DocsLayout> </DocsLayout>
); );
@ -277,10 +282,6 @@ function execute(port) {
// handle all requests for blog pages and posts // handle all requests for blog pages and posts
app.get(/blog\/.*html$/, (req, res) => { app.get(/blog\/.*html$/, (req, res) => {
extractTranslations();
reloadSiteConfig();
reloadMetadataBlog();
// generate all of the blog pages // generate all of the blog pages
removeModuleAndChildrenFromCache("../core/BlogPageLayout.js"); removeModuleAndChildrenFromCache("../core/BlogPageLayout.js");
const BlogPageLayout = require("../core/BlogPageLayout.js"); const BlogPageLayout = require("../core/BlogPageLayout.js");
@ -358,9 +359,6 @@ function execute(port) {
// handle all other main pages // handle all other main pages
app.get("*.html", (req, res, next) => { app.get("*.html", (req, res, next) => {
extractTranslations();
reloadSiteConfig();
// look for user provided html file first // look for user provided html file first
let htmlFile = req.path.toString().replace(siteConfig.baseUrl, ""); let htmlFile = req.path.toString().replace(siteConfig.baseUrl, "");
htmlFile = CWD + "/pages/" + htmlFile; htmlFile = CWD + "/pages/" + htmlFile;

View file

@ -85,6 +85,37 @@ function execute() {
}); });
}); });
// go through pages to look for text inside translate tags
files = glob.sync(CWD + "/pages/en/**");
files.forEach(file => {
const extension = path.extname(file);
if (extension === ".js") {
const ast = babylon.parse(fs.readFileSync(file, "utf8"), {
plugins: ["jsx"]
});
traverse(ast, {
enter(path) {
if (
path.node.type === "JSXElement" &&
path.node.openingElement.name.name === "translate"
) {
const text = path.node.children[0].value
.trim()
.replace(/\s+/g, " ");
let description = "no description given";
const attributes = path.node.openingElement.attributes;
for (let i = 0; i < attributes.length; i++) {
if (attributes[i].name.name === "desc") {
description = attributes[i].value.value;
}
}
translations["pages-strings"][text + "|" + description] = text;
}
}
});
}
});
// Manually add 'Help Translate' to en.json // Manually add 'Help Translate' to en.json
translations["pages-strings"][ translations["pages-strings"][
"Help Translate|recruit community translators for your project" "Help Translate|recruit community translators for your project"