jekyll-theme-zer0 0.22.5 → 0.22.19

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.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +187 -0
  3. data/README.md +66 -19
  4. data/_data/navigation/admin.yml +53 -0
  5. data/_data/theme_backgrounds.yml +121 -0
  6. data/_includes/components/admin-tabs.html +59 -0
  7. data/_includes/components/analytics-dashboard.html +232 -0
  8. data/_includes/components/background-customizer.html +159 -0
  9. data/_includes/components/background-settings.html +137 -0
  10. data/_includes/components/collection-manager.html +151 -0
  11. data/_includes/components/component-showcase.html +452 -0
  12. data/_includes/components/config-editor.html +207 -0
  13. data/_includes/components/config-viewer.html +479 -0
  14. data/_includes/components/env-dashboard.html +154 -0
  15. data/_includes/components/feature-card.html +94 -0
  16. data/_includes/components/info-section.html +172 -149
  17. data/_includes/components/js-cdn.html +4 -1
  18. data/_includes/components/nav-editor.html +99 -0
  19. data/_includes/components/setup-banner.html +28 -0
  20. data/_includes/components/setup-check.html +53 -0
  21. data/_includes/components/svg-background.html +42 -0
  22. data/_includes/components/theme-customizer.html +46 -0
  23. data/_includes/content/seo.html +68 -135
  24. data/_includes/core/footer.html +1 -1
  25. data/_includes/core/head.html +3 -2
  26. data/_includes/core/header.html +14 -7
  27. data/_includes/landing/landing-install-cards.html +18 -7
  28. data/_includes/navigation/admin-nav.html +95 -0
  29. data/_includes/navigation/navbar.html +43 -5
  30. data/_includes/navigation/sidebar-left.html +1 -1
  31. data/_includes/setup/wizard.html +330 -0
  32. data/_layouts/admin.html +166 -0
  33. data/_layouts/landing.html +1 -1
  34. data/_layouts/root.html +12 -6
  35. data/_layouts/setup.html +73 -0
  36. data/_plugins/preview_image_generator.rb +26 -12
  37. data/_sass/core/_navbar.scss +2 -2
  38. data/_sass/custom.scss +6 -6
  39. data/_sass/theme/_background-mixins.scss +95 -0
  40. data/_sass/theme/_backgrounds.scss +156 -0
  41. data/_sass/theme/_color-modes.scss +2 -1
  42. data/assets/backgrounds/gradients/air.svg +15 -0
  43. data/assets/backgrounds/gradients/aqua.svg +15 -0
  44. data/assets/backgrounds/gradients/contrast.svg +15 -0
  45. data/assets/backgrounds/gradients/dark.svg +15 -0
  46. data/assets/backgrounds/gradients/dirt.svg +15 -0
  47. data/assets/backgrounds/gradients/mint.svg +15 -0
  48. data/assets/backgrounds/gradients/neon.svg +15 -0
  49. data/assets/backgrounds/gradients/plum.svg +15 -0
  50. data/assets/backgrounds/gradients/sunrise.svg +15 -0
  51. data/assets/backgrounds/noise/air.svg +8 -0
  52. data/assets/backgrounds/noise/aqua.svg +8 -0
  53. data/assets/backgrounds/noise/contrast.svg +8 -0
  54. data/assets/backgrounds/noise/dark.svg +8 -0
  55. data/assets/backgrounds/noise/dirt.svg +8 -0
  56. data/assets/backgrounds/noise/mint.svg +8 -0
  57. data/assets/backgrounds/noise/neon.svg +8 -0
  58. data/assets/backgrounds/noise/plum.svg +8 -0
  59. data/assets/backgrounds/noise/sunrise.svg +8 -0
  60. data/assets/backgrounds/patterns/air.svg +7 -0
  61. data/assets/backgrounds/patterns/aqua.svg +7 -0
  62. data/assets/backgrounds/patterns/contrast.svg +4 -0
  63. data/assets/backgrounds/patterns/dark.svg +5 -0
  64. data/assets/backgrounds/patterns/dirt.svg +5 -0
  65. data/assets/backgrounds/patterns/mint.svg +6 -0
  66. data/assets/backgrounds/patterns/neon.svg +6 -0
  67. data/assets/backgrounds/patterns/plum.svg +6 -0
  68. data/assets/backgrounds/patterns/sunrise.svg +5 -0
  69. data/assets/js/background-customizer.js +73 -0
  70. data/assets/js/code-copy.js +18 -47
  71. data/assets/js/config-utility.js +307 -0
  72. data/assets/js/nav-editor.js +39 -0
  73. data/assets/js/palette-generator.js +415 -0
  74. data/assets/js/search-modal.js +31 -11
  75. data/assets/js/setup-wizard.js +306 -0
  76. data/assets/js/skin-editor.js +645 -0
  77. data/assets/js/theme-customizer.js +102 -0
  78. data/assets/js/ui-enhancements.js +2 -24
  79. data/assets/vendor/bootstrap/css/bootstrap.min.css +1 -0
  80. data/assets/vendor/bootstrap/js/bootstrap.bundle.min.js +1 -0
  81. data/scripts/README.md +45 -0
  82. data/scripts/features/generate-preview-images +297 -7
  83. data/scripts/features/install-preview-generator +51 -33
  84. data/scripts/fork-cleanup.sh +92 -19
  85. data/scripts/github-setup.sh +284 -0
  86. data/scripts/init_setup.sh +0 -1
  87. data/scripts/lib/frontmatter.sh +543 -0
  88. data/scripts/lib/migrate.sh +265 -0
  89. data/scripts/lib/preview_generator.py +607 -32
  90. data/scripts/lint-pages +505 -0
  91. data/scripts/migrate.sh +201 -0
  92. data/scripts/platform/setup-linux.sh +244 -0
  93. data/scripts/platform/setup-macos.sh +187 -0
  94. data/scripts/platform/setup-wsl.sh +196 -0
  95. metadata +71 -6
@@ -0,0 +1,207 @@
1
+ <!--
2
+ ===================================================================
3
+ CONFIG EDITOR — Form-based configuration builder
4
+ ===================================================================
5
+
6
+ File: config-editor.html
7
+ Path: _includes/components/config-editor.html
8
+ Purpose: Form UI to edit key configuration values with a live
9
+ YAML preview panel, plus download / copy actions.
10
+
11
+ Dependencies: Bootstrap 5.3, assets/js/config-utility.js
12
+ Data source: site.* variables pre-populate fields
13
+ ===================================================================
14
+ -->
15
+
16
+ <div id="configEditor">
17
+ <div class="row">
18
+
19
+ <!-- ── Left: Form ────────────────────────────────────────────────── -->
20
+ <div class="col-lg-6 mb-4 mb-lg-0">
21
+
22
+ <!-- Site Identity -->
23
+ <div class="card mb-3">
24
+ <div class="card-header">
25
+ <i class="bi bi-person-badge me-1"></i> Site Identity
26
+ </div>
27
+ <div class="card-body">
28
+ <div class="mb-3">
29
+ <label for="edit-title" class="form-label">Site Title</label>
30
+ <input type="text" class="form-control form-control-sm edit-field" id="edit-title"
31
+ data-key="title" value="{{ site.title | escape }}">
32
+ </div>
33
+ <div class="row">
34
+ <div class="col-md-6 mb-3">
35
+ <label for="edit-founder" class="form-label">Founder / Owner</label>
36
+ <input type="text" class="form-control form-control-sm edit-field" id="edit-founder"
37
+ data-key="founder" value="{{ site.founder | escape }}">
38
+ </div>
39
+ <div class="col-md-6 mb-3">
40
+ <label for="edit-email" class="form-label">Email</label>
41
+ <input type="email" class="form-control form-control-sm edit-field" id="edit-email"
42
+ data-key="email" value="{{ site.email | escape }}">
43
+ </div>
44
+ </div>
45
+ <div class="mb-0">
46
+ <label for="edit-description" class="form-label">Description <small class="text-muted">(≤ 160 chars)</small></label>
47
+ <textarea class="form-control form-control-sm edit-field" id="edit-description" rows="2"
48
+ maxlength="160" data-key="description"
49
+ data-char-counter="edit-desc-count"
50
+ aria-describedby="edit-desc-help">{{ site.description | strip_html | escape }}</textarea>
51
+ <div class="form-text" id="edit-desc-help"><span id="edit-desc-count">0</span>/160 characters</div>
52
+ </div>
53
+ </div>
54
+ </div>
55
+
56
+ <!-- GitHub -->
57
+ <div class="card mb-3">
58
+ <div class="card-header">
59
+ <i class="bi bi-github me-1"></i> GitHub
60
+ </div>
61
+ <div class="card-body">
62
+ <div class="row">
63
+ <div class="col-md-6 mb-3">
64
+ <label for="edit-github-user" class="form-label">GitHub Username</label>
65
+ <input type="text" class="form-control form-control-sm edit-field" id="edit-github-user"
66
+ data-key="github_user" value="{{ site.github_user | escape }}">
67
+ </div>
68
+ <div class="col-md-6 mb-3">
69
+ <label for="edit-repo-name" class="form-label">Repository Name</label>
70
+ <input type="text" class="form-control form-control-sm edit-field" id="edit-repo-name"
71
+ data-key="repository_name" value="{{ site.repository_name | escape }}">
72
+ </div>
73
+ </div>
74
+ <div class="mb-0">
75
+ <label for="edit-branch" class="form-label">Branch</label>
76
+ <input type="text" class="form-control form-control-sm edit-field" id="edit-branch"
77
+ data-key="branch" value="{{ site.branch | default: 'main' | escape }}">
78
+ </div>
79
+ </div>
80
+ </div>
81
+
82
+ <!-- URLs & Deployment -->
83
+ <div class="card mb-3">
84
+ <div class="card-header">
85
+ <i class="bi bi-link-45deg me-1"></i> URLs &amp; Deployment
86
+ </div>
87
+ <div class="card-body">
88
+ <div class="mb-3">
89
+ <label for="edit-url" class="form-label">Site URL</label>
90
+ <input type="url" class="form-control form-control-sm edit-field" id="edit-url"
91
+ data-key="url" value="{{ site.url | escape }}" placeholder="https://yourdomain.com">
92
+ <div class="form-text">Production URL. For GitHub Pages: <code>https://USERNAME.github.io</code></div>
93
+ </div>
94
+ <div class="row">
95
+ <div class="col-md-6 mb-3">
96
+ <label for="edit-baseurl" class="form-label">Base URL</label>
97
+ <input type="text" class="form-control form-control-sm edit-field" id="edit-baseurl"
98
+ data-key="baseurl" value="{{ site.baseurl | escape }}">
99
+ <div class="form-text">Leave empty for apex domains</div>
100
+ </div>
101
+ <div class="col-md-6 mb-3">
102
+ <label for="edit-port" class="form-label">Dev Port</label>
103
+ <input type="number" class="form-control form-control-sm edit-field" id="edit-port"
104
+ data-key="port" value="{{ site.port | default: 4000 }}">
105
+ </div>
106
+ </div>
107
+ <div class="mb-3">
108
+ <label for="edit-remote-theme" class="form-label">Remote Theme</label>
109
+ <input type="text" class="form-control form-control-sm edit-field" id="edit-remote-theme"
110
+ data-key="remote_theme" value="{{ site.remote_theme | escape }}">
111
+ </div>
112
+ <div class="mb-0">
113
+ <label for="edit-permalink" class="form-label">Permalink Style</label>
114
+ <select class="form-select form-select-sm edit-field" id="edit-permalink" data-key="permalink">
115
+ <option value="pretty" {% if site.permalink == "pretty" %}selected{% endif %}>Pretty (/:categories/:year/:month/:day/:title/)</option>
116
+ <option value="/:categories/:title/" {% if site.permalink == "/:categories/:title/" %}selected{% endif %}>/:categories/:title/</option>
117
+ <option value="/blog/:year/:month/:day/:title/" {% if site.permalink == "/blog/:year/:month/:day/:title/" %}selected{% endif %}>Date-based</option>
118
+ <option value="/:title/" {% if site.permalink == "/:title/" %}selected{% endif %}>Title only</option>
119
+ </select>
120
+ </div>
121
+ </div>
122
+ </div>
123
+
124
+ <!-- Personalization -->
125
+ <div class="card mb-3">
126
+ <div class="card-header">
127
+ <i class="bi bi-palette me-1"></i> Personalization
128
+ </div>
129
+ <div class="card-body">
130
+ <div class="row">
131
+ <div class="col-md-6 mb-3">
132
+ <label for="edit-locale" class="form-label">Locale</label>
133
+ <input type="text" class="form-control form-control-sm edit-field" id="edit-locale"
134
+ data-key="locale" value="{{ site.locale | default: 'en-US' | escape }}">
135
+ </div>
136
+ <div class="col-md-6 mb-3">
137
+ <label for="edit-theme-skin" class="form-label">Theme Skin</label>
138
+ <select class="form-select form-select-sm edit-field" id="edit-theme-skin" data-key="theme_skin">
139
+ {% assign skins = "air,aqua,contrast,dark,dirt,neon,mint,plum,sunrise" | split: "," %}
140
+ {% for skin in skins %}
141
+ <option value="{{ skin }}" {% if site.theme_skin == skin %}selected{% endif %}>{{ skin | capitalize }}</option>
142
+ {% endfor %}
143
+ </select>
144
+ </div>
145
+ </div>
146
+ <div class="mb-0">
147
+ <label for="edit-logo" class="form-label">Logo Path</label>
148
+ <input type="text" class="form-control form-control-sm edit-field" id="edit-logo"
149
+ data-key="logo" value="{{ site.logo | escape }}" placeholder="/assets/images/logo.png">
150
+ </div>
151
+ </div>
152
+ </div>
153
+
154
+ <!-- Analytics -->
155
+ <div class="card mb-3">
156
+ <div class="card-header">
157
+ <i class="bi bi-graph-up me-1"></i> Analytics
158
+ </div>
159
+ <div class="card-body">
160
+ <div class="mb-3">
161
+ <label for="edit-ga" class="form-label">Google Analytics ID</label>
162
+ <input type="text" class="form-control form-control-sm edit-field" id="edit-ga"
163
+ data-key="google_analytics" value="{{ site.google_analytics | escape }}" placeholder="G-XXXXXXXXXX">
164
+ </div>
165
+ <div class="form-check form-switch mb-2">
166
+ <input class="form-check-input edit-field" type="checkbox" id="edit-posthog-enabled"
167
+ data-key="posthog.enabled" {% if site.posthog.enabled %}checked{% endif %}>
168
+ <label class="form-check-label" for="edit-posthog-enabled">Enable PostHog</label>
169
+ </div>
170
+ <div class="mb-0">
171
+ <input type="text" class="form-control form-control-sm edit-field" id="edit-posthog-key"
172
+ data-key="posthog.api_key" value="{{ site.posthog.api_key | escape }}" placeholder="phc_your_key">
173
+ </div>
174
+ </div>
175
+ </div>
176
+
177
+ </div><!-- /col form -->
178
+
179
+ <!-- ── Right: Live YAML Preview ──────────────────────────────────── -->
180
+ <div class="col-lg-6">
181
+ <div class="sticky-top" style="top:80px">
182
+ <div class="card">
183
+ <div class="card-header d-flex justify-content-between align-items-center">
184
+ <span><i class="bi bi-file-earmark-code me-1"></i> Live Preview</span>
185
+ <div class="btn-group btn-group-sm">
186
+ <button class="btn btn-outline-secondary" id="editor-copy" title="Copy YAML">
187
+ <i class="bi bi-clipboard"></i> Copy
188
+ </button>
189
+ <button class="btn btn-outline-primary" id="editor-download" title="Download _config.yml">
190
+ <i class="bi bi-download"></i> Download
191
+ </button>
192
+ </div>
193
+ </div>
194
+ <div class="card-body p-0">
195
+ <pre class="bg-dark text-light p-3 mb-0 rounded-bottom" style="max-height:600px;overflow:auto;font-size:.8rem"><code id="editor-yaml-preview">Loading…</code></pre>
196
+ </div>
197
+ </div>
198
+
199
+ <div class="alert alert-info mt-3 small" role="alert">
200
+ <i class="bi bi-info-circle me-1"></i>
201
+ <strong>Tip:</strong> Changes are reflected instantly in the preview. Download the file and replace your project's <code>_config.yml</code>, then restart your dev server.
202
+ </div>
203
+ </div>
204
+ </div><!-- /col preview -->
205
+
206
+ </div><!-- /row -->
207
+ </div>