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",