mirror of
https://github.com/jdan/98.css.git
synced 2025-09-25 21:09:07 +02:00
split build:docs into its own command
This commit is contained in:
45
build-docs.js
Normal file
45
build-docs.js
Normal file
@@ -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 `<div class="example">
|
||||||
|
${inline}
|
||||||
|
<details>
|
||||||
|
<summary>Show code</summary>
|
||||||
|
<pre><code>${escaped}</code></pre>
|
||||||
|
</details>
|
||||||
|
</div>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
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 })
|
||||||
|
);
|
51
build.js
51
build.js
@@ -1,55 +1,9 @@
|
|||||||
#!/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 hljs = require("highlight.js");
|
|
||||||
const mkdirp = require("mkdirp");
|
const mkdirp = require("mkdirp");
|
||||||
const postcss = require("postcss");
|
const postcss = require("postcss");
|
||||||
const glob = require("glob");
|
|
||||||
const path = require("path");
|
|
||||||
|
|
||||||
let id = 0;
|
postcss()
|
||||||
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 `<div class="example">
|
|
||||||
${inline}
|
|
||||||
<details>
|
|
||||||
<summary>Show code</summary>
|
|
||||||
<pre><code>${escaped}</code></pre>
|
|
||||||
</details>
|
|
||||||
</div>`;
|
|
||||||
}
|
|
||||||
|
|
||||||
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.";
|
|
||||||
});
|
|
||||||
fs.writeFileSync(
|
|
||||||
"docs/index.html",
|
|
||||||
ejs.render(template, { getNewId, getCurrentId, example })
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
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"))
|
||||||
@@ -65,6 +19,3 @@ function buildCSS() {
|
|||||||
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);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
buildCSS().then(buildDocs);
|
|
||||||
|
@@ -8,6 +8,7 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node build.js",
|
"build": "node build.js",
|
||||||
|
"build:docs": "npm run build && node build-docs.js",
|
||||||
"release": "npm run build && npm publish"
|
"release": "npm run build && npm publish"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
|
Reference in New Issue
Block a user