Merge pull request #4266 from w00000dy/cdata

Migrate from inliner to web-resource-inliner
This commit is contained in:
netmindz 2025-03-11 22:14:03 +00:00 committed by GitHub
commit f396dac1cc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 260 additions and 1680 deletions

1899
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -25,10 +25,10 @@
"dependencies": { "dependencies": {
"clean-css": "^5.3.3", "clean-css": "^5.3.3",
"html-minifier-terser": "^7.2.0", "html-minifier-terser": "^7.2.0",
"inliner": "^1.13.1", "web-resource-inliner": "^7.0.0",
"nodemon": "^3.1.7" "nodemon": "^3.1.9"
}, },
"engines": { "engines": {
"node": ">=20.0.0" "node": ">=20.0.0"
} }
} }

View File

@ -17,7 +17,7 @@
const fs = require("node:fs"); const fs = require("node:fs");
const path = require("path"); const path = require("path");
const inliner = require("inliner"); const inline = require("web-resource-inliner");
const zlib = require("node:zlib"); const zlib = require("node:zlib");
const CleanCSS = require("clean-css"); const CleanCSS = require("clean-css");
const minifyHtml = require("html-minifier-terser").minify; const minifyHtml = require("html-minifier-terser").minify;
@ -128,21 +128,26 @@ async function minify(str, type = "plain") {
async function writeHtmlGzipped(sourceFile, resultFile, page) { async function writeHtmlGzipped(sourceFile, resultFile, page) {
console.info("Reading " + sourceFile); console.info("Reading " + sourceFile);
new inliner(sourceFile, async function (error, html) { inline.html({
if (error) throw error; fileContent: fs.readFileSync(sourceFile, "utf8"),
relativeTo: path.dirname(sourceFile),
strict: true,
},
async function (error, html) {
if (error) throw error;
html = adoptVersionAndRepo(html); html = adoptVersionAndRepo(html);
const originalLength = html.length; const originalLength = html.length;
html = await minify(html, "html-minify"); html = await minify(html, "html-minify");
const result = zlib.gzipSync(html, { level: zlib.constants.Z_BEST_COMPRESSION }); const result = zlib.gzipSync(html, { level: zlib.constants.Z_BEST_COMPRESSION });
console.info("Minified and compressed " + sourceFile + " from " + originalLength + " to " + result.length + " bytes"); console.info("Minified and compressed " + sourceFile + " from " + originalLength + " to " + result.length + " bytes");
const array = hexdump(result); const array = hexdump(result);
let src = singleHeader; let src = singleHeader;
src += `const uint16_t PAGE_${page}_L = ${result.length};\n`; src += `const uint16_t PAGE_${page}_L = ${result.length};\n`;
src += `const uint8_t PAGE_${page}[] PROGMEM = {\n${array}\n};\n\n`; src += `const uint8_t PAGE_${page}[] PROGMEM = {\n${array}\n};\n\n`;
console.info("Writing " + resultFile); console.info("Writing " + resultFile);
fs.writeFileSync(resultFile, src); fs.writeFileSync(resultFile, src);
}); });
} }
async function specToChunk(srcDir, s) { async function specToChunk(srcDir, s) {