mirror of
https://github.com/10h30/astroplate.git
synced 2026-07-11 18:56:06 +09:00
refactor darkmode
This commit is contained in:
+43
-13
@@ -1,20 +1,49 @@
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const rootDirs = ["src/pages", "src/hooks", "src/layouts", "src/styles"];
|
||||
(function () {
|
||||
const rootDirs = ["src/pages", "src/hooks", "src/layouts", "src/styles"];
|
||||
|
||||
const configFiles = [
|
||||
const deleteAssetList = [
|
||||
"public/images/logo-darkmode.png",
|
||||
"src/layouts/components/ThemeSwitcher.astro",
|
||||
];
|
||||
|
||||
const configFiles = [
|
||||
{
|
||||
filePath: "tailwind.config.js",
|
||||
patterns: ["darkmode:\\s*{[^}]*},", 'darkMode:\\s*"class",'],
|
||||
},
|
||||
{ filePath: "src/config/theme.json", patterns: ["colors.darkmode"] },
|
||||
];
|
||||
];
|
||||
|
||||
rootDirs.forEach(removeDarkModeFromPages);
|
||||
configFiles.forEach(removeDarkMode);
|
||||
const filePaths = [
|
||||
{
|
||||
filePath: "src/layouts/partials/Header.astro",
|
||||
patterns: [
|
||||
"<ThemeSwitchers*(?:\\s+[^>]+)?\\s*(?:\\/\\>|>([\\s\\S]*?)<\\/ThemeSwitchers*>)",
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
function removeDarkModeFromFiles(filePath, regexPatterns) {
|
||||
filePaths.forEach(({ filePath, patterns }) => {
|
||||
removeDarkModeFromFiles(filePath, patterns);
|
||||
});
|
||||
|
||||
deleteAssetList.forEach(deleteAsset);
|
||||
function deleteAsset(asset) {
|
||||
try {
|
||||
fs.unlinkSync(asset);
|
||||
console.log(`${path.basename(asset)} deleted successfully!`);
|
||||
} catch (error) {
|
||||
console.error(`${asset} not found`);
|
||||
}
|
||||
}
|
||||
|
||||
rootDirs.forEach(removeDarkModeFromPages);
|
||||
configFiles.forEach(removeDarkMode);
|
||||
|
||||
function removeDarkModeFromFiles(filePath, regexPatterns) {
|
||||
const fileContent = fs.readFileSync(filePath, "utf8");
|
||||
let updatedContent = fileContent;
|
||||
regexPatterns.forEach((pattern) => {
|
||||
@@ -22,9 +51,9 @@ function removeDarkModeFromFiles(filePath, regexPatterns) {
|
||||
updatedContent = updatedContent.replace(regex, "");
|
||||
});
|
||||
fs.writeFileSync(filePath, updatedContent, "utf8");
|
||||
}
|
||||
}
|
||||
|
||||
function removeDarkModeFromPages(directoryPath) {
|
||||
function removeDarkModeFromPages(directoryPath) {
|
||||
const files = fs.readdirSync(directoryPath);
|
||||
|
||||
files.forEach((file) => {
|
||||
@@ -38,9 +67,9 @@ function removeDarkModeFromPages(directoryPath) {
|
||||
]);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function removeDarkMode(configFile) {
|
||||
function removeDarkMode(configFile) {
|
||||
const { filePath, patterns } = configFile;
|
||||
if (filePath === "tailwind.config.js") {
|
||||
removeDarkModeFromFiles(filePath, patterns);
|
||||
@@ -49,9 +78,9 @@ function removeDarkMode(configFile) {
|
||||
patterns.forEach((pattern) => deleteNestedProperty(contentFile, pattern));
|
||||
fs.writeFileSync(filePath, JSON.stringify(contentFile));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function deleteNestedProperty(obj, propertyPath) {
|
||||
function deleteNestedProperty(obj, propertyPath) {
|
||||
const properties = propertyPath.split(".");
|
||||
let currentObj = obj;
|
||||
for (let i = 0; i < properties.length - 1; i++) {
|
||||
@@ -63,4 +92,5 @@ function deleteNestedProperty(obj, propertyPath) {
|
||||
}
|
||||
}
|
||||
delete currentObj[properties[properties.length - 1]];
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user