diff --git a/build-docs.js b/build-docs.js deleted file mode 100644 index fba7621..0000000 --- a/build-docs.js +++ /dev/null @@ -1,45 +0,0 @@ -#!/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("docs/*", (err, files) => { - if (!err) { - files.forEach((srcFile) => - fs.copyFileSync(srcFile, path.join("dist", path.basename(srcFile))) - ); - } else throw "error globbing dist directory."; -}); -fs.writeFileSync( - path.join(__dirname, "/dist/index.html"), - ejs.render(template, { getNewId, getCurrentId, example }) -); diff --git a/build.js b/build.js index 5871308..b33c37b 100644 --- a/build.js +++ b/build.js @@ -1,21 +1,70 @@ #!/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 mkdirp = require("mkdirp"); +const path = require("path"); const postcss = require("postcss"); -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); +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 }, + }); +} + +function writeCSS(result) { + mkdirp.sync("dist"); + fs.writeFileSync("dist/98.css", result.css); + fs.writeFileSync("dist/98.css.map", result.map); +} + +function buildDocs() { + 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("docs/*", (err, files) => { + if (!err) { + files.forEach((srcFile) => + fs.copyFileSync(srcFile, path.join("dist", path.basename(srcFile))) + ); + } else throw "error globbing dist directory."; }); + fs.writeFileSync( + path.join(__dirname, "/dist/index.html"), + ejs.render(template, { getNewId, getCurrentId, example }) + ); +} + +buildCSS().then(writeCSS).then(buildDocs); diff --git a/package.json b/package.json index 55dca3b..13154c8 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,7 @@ }, "scripts": { "build": "node build.js", - "build:docs": "npm run build && node build-docs.js", - "deploy:docs": "npm run build:docs && gh-pages -d dist" + "deploy:docs": "npm run build && gh-pages -d dist" }, "repository": { "type": "git",