@titas_mallick/wedding-site-gen 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/cli.mjs +38 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,6 +10,10 @@ Simply run the following command in your terminal:
|
|
|
10
10
|
npx @titas_mallick/wedding-site-gen
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
+
> [!WARNING]
|
|
14
|
+
> **⚠️ CRITICAL: Asset Replacement Required**
|
|
15
|
+
> This generator includes **sample images** (in `/public`) and **sample text** meant for demonstration. You **MUST** replace `groom.jpg`, `bride.jpg`, and all photos in `/public/pw` and `/public/Images` with your own assets before publishing your website. Using the sample images may lead to copyright issues or a confusing guest experience.
|
|
16
|
+
|
|
13
17
|
### What happens next?
|
|
14
18
|
1. **Interactive Setup**: The CLI will ask for:
|
|
15
19
|
- Groom & Bride Names
|
package/cli.mjs
CHANGED
|
@@ -35,6 +35,34 @@ async function main() {
|
|
|
35
35
|
config.siteUrl = await question("Website URL (e.g., https://ourwedding.com): ") || "https://ourwedding.com";
|
|
36
36
|
config.hashtag = await question("Wedding Hashtag (e.g., #TitasWedsSukanya): ") || `#${config.groomName}Weds${config.brideName}`;
|
|
37
37
|
|
|
38
|
+
console.log("\nChoose a Visual Theme:");
|
|
39
|
+
console.log("1. Classic Pink & Gold (Traditional & Romantic)");
|
|
40
|
+
console.log("2. Royal Blue & Gold (Elegant & Regal)");
|
|
41
|
+
console.log("3. Forest Green & Cream (Nature-inspired & Modern)");
|
|
42
|
+
console.log("4. Deep Red & Champagne (Passionate & Classic)");
|
|
43
|
+
|
|
44
|
+
const themeChoice = await question("Select Theme (1-4) [default: 1]: ") || "1";
|
|
45
|
+
|
|
46
|
+
const themes = {
|
|
47
|
+
"1": { // Pink & Gold
|
|
48
|
+
pink500: "#ec4899",
|
|
49
|
+
gold400: "#d99e43",
|
|
50
|
+
},
|
|
51
|
+
"2": { // Royal Blue & Gold
|
|
52
|
+
pink500: "#1e40af", // Replacing pink with blue
|
|
53
|
+
gold400: "#fbbf24",
|
|
54
|
+
},
|
|
55
|
+
"3": { // Forest Green & Cream
|
|
56
|
+
pink500: "#065f46", // Replacing pink with green
|
|
57
|
+
gold400: "#92400e", // More earthy gold
|
|
58
|
+
},
|
|
59
|
+
"4": { // Deep Red & Champagne
|
|
60
|
+
pink500: "#991b1b", // Replacing pink with red
|
|
61
|
+
gold400: "#d4af37",
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const selectedTheme = themes[themeChoice] || themes["1"];
|
|
38
66
|
const targetDir = await question("Target directory name: ") || "my-wedding-website";
|
|
39
67
|
|
|
40
68
|
rl.close();
|
|
@@ -127,6 +155,16 @@ export default adminCred;
|
|
|
127
155
|
content = JSON.stringify(pkg, null, 2);
|
|
128
156
|
}
|
|
129
157
|
|
|
158
|
+
if (entry.name === 'tailwind.config.js') {
|
|
159
|
+
// Replace the primary colors in the tailwind config
|
|
160
|
+
content = content.replace(/pink:\s*{\s*[^}]*500:\s*'#[a-fA-F0-9]{6}'/g, (match) => {
|
|
161
|
+
return match.replace(/'#[a-fA-F0-9]{6}'/, `'${selectedTheme.pink500}'`);
|
|
162
|
+
});
|
|
163
|
+
content = content.replace(/gold:\s*{\s*[^}]*400:\s*'#[a-fA-F0-9]{6}'/g, (match) => {
|
|
164
|
+
return match.replace(/'#[a-fA-F0-9]{6}'/, `'${selectedTheme.gold400}'`);
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
|
|
130
168
|
await fs.writeFile(destPath, content, 'utf8');
|
|
131
169
|
} else {
|
|
132
170
|
await fs.copyFile(srcPath, destPath);
|