mirror of
https://github.com/jdan/98.css.git
synced 2025-09-25 13:08:57 +02:00
consolidate build and build-docs
This commit is contained in:
@@ -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 `<div class="example">
|
|
||||||
${inline}
|
|
||||||
<details>
|
|
||||||
<summary>Show code</summary>
|
|
||||||
<pre><code>${escaped}</code></pre>
|
|
||||||
</details>
|
|
||||||
</div>`;
|
|
||||||
}
|
|
||||||
|
|
||||||
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 })
|
|
||||||
);
|
|
55
build.js
55
build.js
@@ -1,9 +1,15 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
const dedent = require("dedent");
|
||||||
|
const ejs = require("ejs");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
|
const glob = require("glob");
|
||||||
|
const hljs = require("highlight.js");
|
||||||
const mkdirp = require("mkdirp");
|
const mkdirp = require("mkdirp");
|
||||||
|
const path = require("path");
|
||||||
const postcss = require("postcss");
|
const postcss = require("postcss");
|
||||||
|
|
||||||
postcss()
|
function buildCSS() {
|
||||||
|
return postcss()
|
||||||
.use(require("postcss-inline-svg"))
|
.use(require("postcss-inline-svg"))
|
||||||
.use(require("postcss-css-variables"))
|
.use(require("postcss-css-variables"))
|
||||||
.use(require("postcss-calc"))
|
.use(require("postcss-calc"))
|
||||||
@@ -13,9 +19,52 @@ postcss()
|
|||||||
from: "style.css",
|
from: "style.css",
|
||||||
to: "dist/98.css",
|
to: "dist/98.css",
|
||||||
map: { inline: false },
|
map: { inline: false },
|
||||||
})
|
});
|
||||||
.then((result) => {
|
}
|
||||||
|
|
||||||
|
function writeCSS(result) {
|
||||||
mkdirp.sync("dist");
|
mkdirp.sync("dist");
|
||||||
fs.writeFileSync("dist/98.css", result.css);
|
fs.writeFileSync("dist/98.css", result.css);
|
||||||
fs.writeFileSync("dist/98.css.map", result.map);
|
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 `<div class="example">
|
||||||
|
${inline}
|
||||||
|
<details>
|
||||||
|
<summary>Show code</summary>
|
||||||
|
<pre><code>${escaped}</code></pre>
|
||||||
|
</details>
|
||||||
|
</div>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
@@ -8,8 +8,7 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node build.js",
|
"build": "node build.js",
|
||||||
"build:docs": "npm run build && node build-docs.js",
|
"deploy:docs": "npm run build && gh-pages -d dist"
|
||||||
"deploy:docs": "npm run build:docs && gh-pages -d dist"
|
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
Reference in New Issue
Block a user