From c4b617ba4ed33f84fba2acdf33d1d2bc16dbf8a4 Mon Sep 17 00:00:00 2001 From: Jordan Scales Date: Fri, 24 Apr 2020 19:21:25 -0400 Subject: [PATCH] split build:docs into its own command --- build-docs.js | 45 +++++++++++++++++++++++++++++ build.js | 79 ++++++++++----------------------------------------- package.json | 1 + 3 files changed, 61 insertions(+), 64 deletions(-) create mode 100644 build-docs.js diff --git a/build-docs.js b/build-docs.js new file mode 100644 index 0000000..ab34eeb --- /dev/null +++ b/build-docs.js @@ -0,0 +1,45 @@ +#!/usr/bin/env node +const dedent = require("dedent"); +const ejs = require("ejs"); +const fs = require("fs"); +const glob = require("glob"); +const hljs = require("highlight.js"); +const path = require("path"); + +let id = 0; +function getNewId() { + return ++id; +} +function getCurrentId() { + return id; +} + +const template = fs.readFileSync("docs/index.html.ejs", "utf-8"); + +function example(code) { + const magicBrackets = /\[\[(.*)\]\]/g; + const dedented = dedent(code); + const inline = dedented.replace(magicBrackets, "$1"); + const escaped = hljs.highlight("html", dedented.replace(magicBrackets, "")) + .value; + + return `
+ ${inline} +
+ Show code +
${escaped}
+
+
`; +} + +glob("dist/*", (err, files) => { + if (!err) { + files.forEach((srcFile) => + fs.copyFileSync(srcFile, path.join("docs", path.basename(srcFile))) + ); + } else throw "error globbing dist directory."; +}); +fs.writeFileSync( + "docs/index.html", + ejs.render(template, { getNewId, getCurrentId, example }) +); diff --git a/build.js b/build.js index 29d95be..5871308 100644 --- a/build.js +++ b/build.js @@ -1,70 +1,21 @@ #!/usr/bin/env node -const dedent = require("dedent"); -const ejs = require("ejs"); const fs = require("fs"); -const hljs = require("highlight.js"); const mkdirp = require("mkdirp"); const postcss = require("postcss"); -const glob = require("glob"); -const path = require("path"); -let id = 0; -function getNewId() { - return ++id; -} -function getCurrentId() { - return id; -} - -function example(code) { - const magicBrackets = /\[\[(.*)\]\]/g; - const dedented = dedent(code); - const inline = dedented.replace(magicBrackets, "$1"); - const escaped = hljs.highlight("html", dedented.replace(magicBrackets, "")) - .value; - - return `
- ${inline} -
- Show code -
${escaped}
-
-
`; -} - -function buildDocs() { - const template = fs.readFileSync("docs/index.html.ejs", "utf-8"); - - glob("dist/*", (err, files) => { - if (!err) { - files.forEach((srcFile) => - fs.copyFileSync(srcFile, path.join("docs", path.basename(srcFile))) - ); - } else throw "error globbing dist directory."; +postcss() + .use(require("postcss-inline-svg")) + .use(require("postcss-css-variables")) + .use(require("postcss-calc")) + .use(require("postcss-copy")({ dest: "dist", template: "[name].[ext]" })) + .use(require("cssnano")) + .process(fs.readFileSync("style.css"), { + from: "style.css", + to: "dist/98.css", + map: { inline: false }, + }) + .then((result) => { + mkdirp.sync("dist"); + fs.writeFileSync("dist/98.css", result.css); + fs.writeFileSync("dist/98.css.map", result.map); }); - fs.writeFileSync( - "docs/index.html", - ejs.render(template, { getNewId, getCurrentId, example }) - ); -} - -function buildCSS() { - return postcss() - .use(require("postcss-inline-svg")) - .use(require("postcss-css-variables")) - .use(require("postcss-calc")) - .use(require("postcss-copy")({ dest: "dist", template: "[name].[ext]" })) - .use(require("cssnano")) - .process(fs.readFileSync("style.css"), { - from: "style.css", - to: "dist/98.css", - map: { inline: false }, - }) - .then((result) => { - mkdirp.sync("dist"); - fs.writeFileSync("dist/98.css", result.css); - fs.writeFileSync("dist/98.css.map", result.map); - }); -} - -buildCSS().then(buildDocs); diff --git a/package.json b/package.json index 8d63587..f0d5d74 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ }, "scripts": { "build": "node build.js", + "build:docs": "npm run build && node build-docs.js", "release": "npm run build && npm publish" }, "repository": {