Files
test/frontend/scripts/fill-colors.js
Benjamin Falch 2bc741fb78
Some checks failed
Mark Stale PRs / stale (push) Has been cancelled
adding monkeytype
2026-04-23 13:53:44 +02:00

60 lines
1.6 KiB
JavaScript

// oxlint-disable no-require-imports
const fs = require("fs");
function main() {
return new Promise((resolve) => {
const listFile = JSON.parse(
fs.readFileSync("../static/themes/_list.json", {
encoding: "utf8",
}),
);
const themeFiles = fs.readdirSync("../static/themes/");
// themeFiles.forEach((filename) => {
for (let filename of themeFiles) {
if (filename === "_list.json") continue;
filename = filename.split(".")[0];
let themeData = fs.readFileSync(`../static/themes/${filename}.css`, {
encoding: "utf8",
flag: "r",
});
const subMatches = /--sub-color: (#.+);/g.exec(themeData);
const bgMatches = /--bg-color: (#.+);/g.exec(themeData);
const mainMatches = /--main-color: (#.+);/g.exec(themeData);
const textMatches = /--text-color: (#.+);/g.exec(themeData);
listFile.find(
(theme) => theme.name === filename.split(".css")[0],
).subColor = subMatches[1];
listFile.find(
(theme) => theme.name === filename.split(".css")[0],
).textColor = textMatches[1];
listFile.find(
(theme) => theme.name === filename.split(".css")[0],
).bgColor = bgMatches[1];
listFile.find(
(theme) => theme.name === filename.split(".css")[0],
).mainColor = mainMatches[1];
// console.log(themeData);
// fs.writeFileSync(
// `../static/quotes/${filename}.json`,
// JSON.stringify(quoteData, null, 2)
// );
}
fs.writeFileSync(
`../static/themes/_list.json`,
JSON.stringify(listFile, null, 2),
);
resolve();
});
// });
}
main();