60 lines
1.6 KiB
JavaScript
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();
|