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": {