jekyll-theme-zer0 0.22.0 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +236 -0
- data/README.md +66 -19
- data/_data/navigation/admin.yml +53 -0
- data/_data/theme_backgrounds.yml +121 -0
- data/_includes/components/admin-tabs.html +59 -0
- data/_includes/components/analytics-dashboard.html +232 -0
- data/_includes/components/background-customizer.html +159 -0
- data/_includes/components/background-settings.html +137 -0
- data/_includes/components/collection-manager.html +151 -0
- data/_includes/components/component-showcase.html +452 -0
- data/_includes/components/config-editor.html +207 -0
- data/_includes/components/config-viewer.html +479 -0
- data/_includes/components/env-dashboard.html +154 -0
- data/_includes/components/feature-card.html +94 -0
- data/_includes/components/info-section.html +172 -149
- data/_includes/components/js-cdn.html +4 -1
- data/_includes/components/nav-editor.html +99 -0
- data/_includes/components/setup-banner.html +28 -0
- data/_includes/components/setup-check.html +53 -0
- data/_includes/components/svg-background.html +42 -0
- data/_includes/components/theme-customizer.html +46 -0
- data/_includes/content/seo.html +68 -135
- data/_includes/core/footer.html +1 -1
- data/_includes/core/head.html +3 -2
- data/_includes/core/header.html +14 -7
- data/_includes/landing/landing-install-cards.html +18 -7
- data/_includes/navigation/admin-nav.html +95 -0
- data/_includes/navigation/navbar.html +43 -5
- data/_includes/navigation/sidebar-left.html +1 -1
- data/_includes/setup/wizard.html +330 -0
- data/_layouts/admin.html +166 -0
- data/_layouts/landing.html +23 -9
- data/_layouts/root.html +12 -6
- data/_layouts/setup.html +73 -0
- data/_plugins/preview_image_generator.rb +26 -12
- data/_sass/core/_navbar.scss +2 -2
- data/_sass/custom.scss +28 -6
- data/_sass/theme/_background-mixins.scss +95 -0
- data/_sass/theme/_backgrounds.scss +156 -0
- data/_sass/theme/_color-modes.scss +2 -1
- data/assets/backgrounds/gradients/air.svg +15 -0
- data/assets/backgrounds/gradients/aqua.svg +15 -0
- data/assets/backgrounds/gradients/contrast.svg +15 -0
- data/assets/backgrounds/gradients/dark.svg +15 -0
- data/assets/backgrounds/gradients/dirt.svg +15 -0
- data/assets/backgrounds/gradients/mint.svg +15 -0
- data/assets/backgrounds/gradients/neon.svg +15 -0
- data/assets/backgrounds/gradients/plum.svg +15 -0
- data/assets/backgrounds/gradients/sunrise.svg +15 -0
- data/assets/backgrounds/noise/air.svg +8 -0
- data/assets/backgrounds/noise/aqua.svg +8 -0
- data/assets/backgrounds/noise/contrast.svg +8 -0
- data/assets/backgrounds/noise/dark.svg +8 -0
- data/assets/backgrounds/noise/dirt.svg +8 -0
- data/assets/backgrounds/noise/mint.svg +8 -0
- data/assets/backgrounds/noise/neon.svg +8 -0
- data/assets/backgrounds/noise/plum.svg +8 -0
- data/assets/backgrounds/noise/sunrise.svg +8 -0
- data/assets/backgrounds/patterns/air.svg +7 -0
- data/assets/backgrounds/patterns/aqua.svg +7 -0
- data/assets/backgrounds/patterns/contrast.svg +4 -0
- data/assets/backgrounds/patterns/dark.svg +5 -0
- data/assets/backgrounds/patterns/dirt.svg +5 -0
- data/assets/backgrounds/patterns/mint.svg +6 -0
- data/assets/backgrounds/patterns/neon.svg +6 -0
- data/assets/backgrounds/patterns/plum.svg +6 -0
- data/assets/backgrounds/patterns/sunrise.svg +5 -0
- data/assets/js/background-customizer.js +73 -0
- data/assets/js/code-copy.js +18 -47
- data/assets/js/config-utility.js +307 -0
- data/assets/js/nav-editor.js +39 -0
- data/assets/js/palette-generator.js +415 -0
- data/assets/js/search-modal.js +31 -11
- data/assets/js/setup-wizard.js +306 -0
- data/assets/js/skin-editor.js +645 -0
- data/assets/js/theme-customizer.js +102 -0
- data/assets/js/ui-enhancements.js +15 -24
- data/assets/vendor/bootstrap/css/bootstrap.min.css +1 -0
- data/assets/vendor/bootstrap/js/bootstrap.bundle.min.js +1 -0
- data/scripts/README.md +45 -0
- data/scripts/features/generate-preview-images +297 -7
- data/scripts/features/install-preview-generator +51 -33
- data/scripts/fork-cleanup.sh +92 -19
- data/scripts/github-setup.sh +284 -0
- data/scripts/init_setup.sh +0 -1
- data/scripts/lib/frontmatter.sh +543 -0
- data/scripts/lib/migrate.sh +265 -0
- data/scripts/lib/preview_generator.py +607 -32
- data/scripts/lint-pages +505 -0
- data/scripts/migrate.sh +201 -0
- data/scripts/platform/setup-linux.sh +244 -0
- data/scripts/platform/setup-macos.sh +187 -0
- data/scripts/platform/setup-wsl.sh +196 -0
- metadata +71 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ba91ba02a96ff1b026fe82adedbebd79b476a48bc3534ff7b1799ebbf9e593d7
|
|
4
|
+
data.tar.gz: 4d1470d33ae3e6d41def0fbd22e05c07bf9597efa9f5c5e655f3dd61088896a4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f643278addd297e92c075dc79f9802daf61bc9ca2bb4c5cde4dec6842da25895e0c9ea75f597cdc718fbc5dcc4b078f752f3e32ae310b3ca884d9fd82fc1c1d9
|
|
7
|
+
data.tar.gz: e2318d7d03c184b9a053d59c2130b818486d1cb20ce6938ec38e88e0b2459bee62108abfa223941857e4707f32313b5fefa5bef01682c4800f3a9c25f112159f
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,241 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.22.19] - 2026-04-18
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- Version bump: patch release
|
|
7
|
+
|
|
8
|
+
### Commits in this release
|
|
9
|
+
- 1b3993e docs(fork): add fork-to-deploy workflow and user site guidance (#56)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## [Unreleased]
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- **Docs**: `docs/FORKING.md` — progressive fork → configure → personalize workflow for the `username.github.io` user-site pattern
|
|
16
|
+
- **Tests**: `test/test_fork_cleanup.sh` — 32-assertion suite covering CLI parsing, dry-run, real cleanup, YAML anchor preservation, and idempotency
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- **Landing page**: `_includes/landing/landing-install-cards.html` — “Fork & Deploy” card now guides users to fork into `<username>.github.io` and run `scripts/fork-cleanup.sh`; safer `github_fork` URL handling
|
|
20
|
+
- **README**: `README.md` — Method 3 (Fork & Customize) reframed as “Fork & Deploy as Your Site” with a 4-step path; deployment section updated for user-site flow
|
|
21
|
+
- **Docs**: `pages/_quickstart/github-setup.md`, `pages/_quickstart/index.md`, `pages/_docs/getting-started/quick-start.md`, `pages/_docs/deployment/github-pages.md`, `docs/configuration/url-configuration-guide.md` — aligned with the user-site fork pattern (`baseurl: ""`)
|
|
22
|
+
- **Templates**: `templates/cleanup/reset-fields.yml` — annotated `baseurl` reasoning; clarified user-site vs. project-site behavior
|
|
23
|
+
- **Templates**: `templates/config/install.conf` — minor consistency tweaks
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
- **Fork cleanup**: `scripts/fork-cleanup.sh` — `get_reset_field_value()` now uses `YAML.safe_load_file(..., aliases: true)` so anchors in `reset-fields.yml` no longer break parsing under newer Ruby
|
|
27
|
+
- **Fork cleanup**: `scripts/fork-cleanup.sh` — repository name derivation now strips `.git` suffix and falls back gracefully when `origin` is missing (no `set -euo pipefail` aborts)
|
|
28
|
+
- **Fork cleanup**: `scripts/fork-cleanup.sh` — `posthog`/`giscus` blocks reset only within their own YAML range (no stray matches in unrelated blocks)
|
|
29
|
+
- **Welcome post**: `templates/pages/welcome-post.md.template` and embedded fallback in `scripts/fork-cleanup.sh` — corrected `layout: journals` → `layout: article` so the generated welcome post builds without “Layout does not exist” warnings on a freshly cleaned fork
|
|
30
|
+
|
|
31
|
+
## [0.22.18] - 2026-04-18
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
- Version bump: patch release
|
|
35
|
+
|
|
36
|
+
### Commits in this release
|
|
37
|
+
- 02d0295 feat(setup): add site configuration detection and smart 404 page (#58)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## [0.22.17] - 2026-04-18
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
- Version bump: patch release
|
|
44
|
+
|
|
45
|
+
### Commits in this release
|
|
46
|
+
- 10ba722 Add config-driven frontmatter validation system with review fixes (#34)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## [0.22.16] - 2026-04-18
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
- Version bump: patch release
|
|
53
|
+
|
|
54
|
+
### Commits in this release
|
|
55
|
+
- bc41b0d Add AGENTS.md and refresh stale agent instructions (#70)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## [0.22.15] - 2026-04-18
|
|
59
|
+
|
|
60
|
+
### Changed
|
|
61
|
+
- Version bump: patch release
|
|
62
|
+
|
|
63
|
+
### Commits in this release
|
|
64
|
+
- 939af77 feat(nav): dynamic collection-based navigation fallback for zero-config sites (#64)
|
|
65
|
+
- ca7da2e docs: align project documentation with v0.22.13 (#66)
|
|
66
|
+
- 9b23b63 chore(deps-dev): bump dompurify from 3.3.3 to 3.4.0 (#68)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
## [0.22.14] - 2026-04-18
|
|
70
|
+
|
|
71
|
+
### Changed
|
|
72
|
+
- Version bump: patch release
|
|
73
|
+
|
|
74
|
+
### Commits in this release
|
|
75
|
+
- f0a1cac fix: correct comments for clarity in SEO-related files
|
|
76
|
+
- d1998ff chore(deps): update Ruby gem dependencies (#67)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
## [0.22.13] - 2026-04-10
|
|
80
|
+
|
|
81
|
+
### Changed
|
|
82
|
+
- Version bump: patch release
|
|
83
|
+
|
|
84
|
+
### Commits in this release
|
|
85
|
+
- 3c00a3d refactor: remove duplicate code — use standard libraries and existing plugins (#59)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
## [0.22.12] - 2026-04-10
|
|
89
|
+
|
|
90
|
+
### Changed
|
|
91
|
+
- Version bump: patch release
|
|
92
|
+
|
|
93
|
+
### Commits in this release
|
|
94
|
+
- 7ba0f83 feat(news): add data-driven feature showcase & live Bootstrap components to news index (#54)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
## [0.22.11] - 2026-04-09
|
|
98
|
+
|
|
99
|
+
### Changed
|
|
100
|
+
- Version bump: patch release
|
|
101
|
+
|
|
102
|
+
### Commits in this release
|
|
103
|
+
- 8e83a51 Create SECURITY.md for security policy and reporting
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## [0.22.10] - 2026-04-06
|
|
107
|
+
|
|
108
|
+
### Changed
|
|
109
|
+
- Version bump: patch release
|
|
110
|
+
|
|
111
|
+
### Commits in this release
|
|
112
|
+
- 27550da feat(admin): add admin layout and configuration dashboards (#57)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
## [0.22.9] - 2026-04-05
|
|
116
|
+
|
|
117
|
+
### Added
|
|
118
|
+
- **Skin Editor**: New colorffy-inspired skin editor (`assets/js/skin-editor.js`) for creating and customizing theme skins from the browser
|
|
119
|
+
- Edit all 9 built-in skin gradient colors with live color pickers
|
|
120
|
+
- Auto-generated palettes: primary tints, surface, tonal surface, semantic colors (success/warning/danger/info)
|
|
121
|
+
- WCAG contrast ratio badges on all palette swatches
|
|
122
|
+
- Random skin generation, save/load custom skins to localStorage
|
|
123
|
+
- Export SVGs and copy CSS custom properties to clipboard
|
|
124
|
+
- Advanced SVG filter controls (turbulence, octaves, seed, scale, overlay opacity)
|
|
125
|
+
- **Palette Generator**: New standalone palette generator (`assets/js/palette-generator.js`) with chroma.js-powered color mixing and live CSS variable editor
|
|
126
|
+
- **Playwright Tests**: 12 new visual regression test specs (skins, backgrounds, accessibility, admin layout, config editor/viewer, env dashboard, security, theme colors)
|
|
127
|
+
|
|
128
|
+
### Fixed
|
|
129
|
+
- **Skin Rendering**: Added `.zer0-bg-hero` class to landing layout to prevent Bootstrap `.bg-primary` from overriding skin background gradients
|
|
130
|
+
- **CSS Scoping**: Added `.bg-primary:not(.zer0-bg-hero)` in custom SCSS to isolate skin backgrounds from Bootstrap utility classes
|
|
131
|
+
|
|
132
|
+
### Changed
|
|
133
|
+
- **Theme Customizer**: Expanded to 6 tabs — added Skin Editor between Skins and Palette Generator
|
|
134
|
+
- **Admin Navigation**: Minor layout adjustment
|
|
135
|
+
- **Environment Dashboard**: Minor component update
|
|
136
|
+
|
|
137
|
+
## [0.22.8] - 2026-04-04
|
|
138
|
+
|
|
139
|
+
### Changed
|
|
140
|
+
- Version bump: patch release
|
|
141
|
+
|
|
142
|
+
### Commits in this release
|
|
143
|
+
- e0b4f13 fix: cross-platform installation compatibility — Gemfile platform sections, fork mode tests, portable sed replacements (#55)
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
## [0.22.7] - 2026-04-03
|
|
147
|
+
|
|
148
|
+
### Changed
|
|
149
|
+
- Version bump: patch release
|
|
150
|
+
|
|
151
|
+
### Commits in this release
|
|
152
|
+
- a70ae8a chore: consolidate configuration, dependencies, and installation (PRs #48, #51, #52, #53) (#51)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
## [Unreleased] — Universal Installer
|
|
156
|
+
|
|
157
|
+
### Added
|
|
158
|
+
- **Installer**: New `--remote` install mode — forks repo and creates an orphan `gh-pages` branch with only the bare minimum files needed to render via `remote_theme` (no local theme source)
|
|
159
|
+
- **Installer**: New `--github` install mode — interactive fork via `gh` CLI with automatic platform detection and setup
|
|
160
|
+
- **Installer**: New `--codespaces` flag — adds `.devcontainer/devcontainer.json` for GitHub Codespaces support (auto-included in remote mode, opt-in for full/minimal)
|
|
161
|
+
- **Installer**: Cross-platform setup scripts: `scripts/platform/setup-macos.sh`, `setup-linux.sh`, `setup-wsl.sh`
|
|
162
|
+
- **Installer**: GitHub CLI fork/clone helper: `scripts/github-setup.sh`
|
|
163
|
+
- **Installer**: Platform auto-detection (`detect_platform()`) for macOS, Linux, and WSL
|
|
164
|
+
- **Templates**: `_config.remote.yml.template` — minimal config for remote-theme consumer sites
|
|
165
|
+
- **Templates**: `_config.starter.yml.template` — heavily annotated full starter config
|
|
166
|
+
- **Templates**: `Gemfile.remote.template` — minimal Gemfile (github-pages + jekyll-remote-theme)
|
|
167
|
+
- **Templates**: `devcontainer.json.template` — lightweight devcontainer for consumer sites
|
|
168
|
+
- **Templates**: `theming.md.template` — Bootstrap 5 customization guide (dark mode, typography, layouts)
|
|
169
|
+
- **Templates**: `setup.html.template` — dev-only setup wizard page
|
|
170
|
+
- **Wizard**: Interactive browser-based config wizard (`pages/setup.html`, `_includes/setup/wizard.html`, `assets/js/setup-wizard.js`) for generating `_config.yml` via a 5-step Bootstrap form
|
|
171
|
+
- **CI**: `.github/workflows/setup-template.yml` — auto-detects non-upstream repos and creates PR with prefilled config
|
|
172
|
+
|
|
173
|
+
### Changed
|
|
174
|
+
- **Installer**: `install.sh` — added `--remote`, `--github`, `--codespaces` flags and corresponding mode dispatchers
|
|
175
|
+
- **Installer**: `render_template()` now substitutes `REPOSITORY_NAME`, `RAW_GITHUB_URL`, `FORK_GITHUB_USER` variables
|
|
176
|
+
- **Installer**: `install.conf` — added `remote` and `github` to `VALID_INSTALL_MODES`, platform detection vars, wizard config, expanded `TEMPLATE_VARS`
|
|
177
|
+
- **Templates**: `quickstart.md.template` — enhanced with Bootstrap pill tabs for macOS/Linux/WSL/GitHub Fork platform-specific instructions
|
|
178
|
+
- **Templates**: `configuration.md.template` — comprehensive rewrite with URL tables, all config sections, cookie consent, dev config
|
|
179
|
+
- **Templates**: `welcome-post.md.template` — enhanced Day 1 tutorial with folder structure diagram, commands table, feature checklist
|
|
180
|
+
|
|
181
|
+
## [0.22.6] - 2026-04-03
|
|
182
|
+
|
|
183
|
+
### Changed
|
|
184
|
+
- Version bump: patch release
|
|
185
|
+
|
|
186
|
+
### Commits in this release
|
|
187
|
+
- 0117620 chore(ci): streamline CI workflows with path-based change detection - Bump version to 0.22.5
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
## [0.22.5] - 2026-04-03
|
|
191
|
+
|
|
192
|
+
### Changed
|
|
193
|
+
- **CI**: Streamlined `ci.yml` — added path-based change detection to skip heavy jobs on docs-only PRs, removed scheduled cron runs and `comprehensive` test scope
|
|
194
|
+
- **CI**: Simplified `codeql.yml` workflow
|
|
195
|
+
- **CI**: Added `test-latest.yml` for latest dependency testing
|
|
196
|
+
- **CI**: Removed redundant summary job from `release.yml`
|
|
197
|
+
- **CI**: Simplified `version-bump.yml`
|
|
198
|
+
- **Docs**: Updated `.github/workflows/README.md` and `.github/actions/README.md`
|
|
199
|
+
|
|
200
|
+
### Removed
|
|
201
|
+
- **CI**: Removed `.github/actions/prepare-release/action.yml` composite action
|
|
202
|
+
|
|
203
|
+
## [0.22.4] - 2026-04-03
|
|
204
|
+
|
|
205
|
+
### Changed
|
|
206
|
+
- Version bump: patch release
|
|
207
|
+
|
|
208
|
+
### Commits in this release
|
|
209
|
+
- 9c56fe0 Review article: fix front matter and expand content for wizard-topples post (#47)
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
## [0.22.3] - 2026-04-02
|
|
213
|
+
|
|
214
|
+
### Changed
|
|
215
|
+
- Version bump: patch release
|
|
216
|
+
|
|
217
|
+
### Commits in this release
|
|
218
|
+
- 059244d fix(landing): stabilize hero layout and scroll animations (#44)
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
## [0.22.2] - 2026-04-02
|
|
222
|
+
|
|
223
|
+
### Changed
|
|
224
|
+
- Version bump: patch release
|
|
225
|
+
|
|
226
|
+
### Commits in this release
|
|
227
|
+
- a9b8daf docs(prompts): update commit-publish workflow with PR branching and CI fix guidance
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
## [0.22.1] - 2026-04-02
|
|
231
|
+
|
|
232
|
+
### Changed
|
|
233
|
+
- Version bump: patch release
|
|
234
|
+
|
|
235
|
+
### Commits in this release
|
|
236
|
+
- a82f670 chore(ci): update Gemfile.lock to v0.22.0 and upgrade actions/checkout to v5
|
|
237
|
+
|
|
238
|
+
|
|
3
239
|
## [0.22.0] - 2026-04-01
|
|
4
240
|
|
|
5
241
|
### Added
|
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: zer0-mistakes
|
|
3
3
|
sub-title: Jekyll Theme
|
|
4
4
|
description: GitHub Pages compatible Jekyll theme with Bootstrap 5.3, featuring automated installation and comprehensive documentation.
|
|
5
|
-
version: 0.
|
|
5
|
+
version: 0.22.19
|
|
6
6
|
layout: landing
|
|
7
7
|
tags:
|
|
8
8
|
- jekyll
|
|
@@ -14,7 +14,7 @@ categories:
|
|
|
14
14
|
- docker
|
|
15
15
|
- bootstrap
|
|
16
16
|
created: 2024-02-10T23:51:11.480Z
|
|
17
|
-
lastmod: 2026-
|
|
17
|
+
lastmod: 2026-04-18T21:22:34.000Z
|
|
18
18
|
draft: false
|
|
19
19
|
permalink: /
|
|
20
20
|
slug: zer0
|
|
@@ -402,14 +402,26 @@ plugins:
|
|
|
402
402
|
- jekyll-remote-theme
|
|
403
403
|
```
|
|
404
404
|
|
|
405
|
-
### Method 3: Fork &
|
|
405
|
+
### Method 3: Fork & Deploy as Your Site
|
|
406
|
+
|
|
407
|
+
Fork into `<your-username>.github.io` for a working site in minutes:
|
|
408
|
+
|
|
409
|
+
1. Go to [bamr87/zer0-mistakes](https://github.com/bamr87/zer0-mistakes) → **Fork**
|
|
410
|
+
2. Set repository name to **`<your-username>.github.io`**
|
|
411
|
+
3. Enable **Settings → Pages → Deploy from branch: `main`**
|
|
412
|
+
4. Visit `https://<your-username>.github.io`
|
|
413
|
+
|
|
414
|
+
Then personalize locally:
|
|
406
415
|
|
|
407
416
|
```bash
|
|
408
|
-
|
|
409
|
-
cd
|
|
417
|
+
git clone https://github.com/<your-username>/<your-username>.github.io.git
|
|
418
|
+
cd <your-username>.github.io
|
|
419
|
+
./scripts/fork-cleanup.sh # interactive config wizard
|
|
410
420
|
docker-compose up
|
|
411
421
|
```
|
|
412
422
|
|
|
423
|
+
See [docs/FORKING.md](docs/FORKING.md) for the full progressive workflow.
|
|
424
|
+
|
|
413
425
|
### Method 4: Ruby Gem
|
|
414
426
|
|
|
415
427
|
```ruby
|
|
@@ -460,13 +472,47 @@ graph TD
|
|
|
460
472
|
| `_includes/` | Reusable components | `core/`, `components/`, `analytics/`, `navigation/` |
|
|
461
473
|
| `_sass/` | Stylesheets | `custom.scss`, `notebooks.scss`, `core/` (`_variables`, `_docs-layout`, …), `theme/` (`_css-variables`, `_wizard-mode`) |
|
|
462
474
|
| `assets/` | Static files | `css/`, `js/`, `images/`, **`vendor/`** (Bootstrap, jQuery, MathJax, Mermaid, … — committed for GitHub Pages) |
|
|
463
|
-
| `scripts/` | Automation | `release`, `build`, `vendor-install.sh`, `convert-notebooks.sh` |
|
|
475
|
+
| `scripts/` | Automation | `release`, `build`, `migrate.sh`, `vendor-install.sh`, `convert-notebooks.sh` |
|
|
476
|
+
| `templates/` | Installable templates | `pages/admin/` (6 admin page templates), `config/install.conf` |
|
|
464
477
|
| `docs/` | Technical docs | `SIDEBAR_IMPROVEMENTS.md`, `JUPYTER_NOTEBOOKS.md` |
|
|
465
478
|
| `pages/` | Content pages | `privacy-policy.md`, `terms-of-service.md` |
|
|
466
479
|
|
|
467
480
|
---
|
|
468
481
|
|
|
469
|
-
##
|
|
482
|
+
## �️ Migration Utility
|
|
483
|
+
|
|
484
|
+
Add the admin settings UI to an existing consumer site using the migration script:
|
|
485
|
+
|
|
486
|
+
```bash
|
|
487
|
+
# From the zer0-mistakes repo — install into another site
|
|
488
|
+
./scripts/migrate.sh /path/to/your-site
|
|
489
|
+
|
|
490
|
+
# Preview without making changes
|
|
491
|
+
./scripts/migrate.sh --dry-run /path/to/your-site
|
|
492
|
+
|
|
493
|
+
# Overwrite existing admin pages
|
|
494
|
+
./scripts/migrate.sh --force /path/to/your-site
|
|
495
|
+
|
|
496
|
+
# Verify an existing installation
|
|
497
|
+
./scripts/migrate.sh --verify /path/to/your-site
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
This installs 6 admin pages to `pages/_about/settings/`:
|
|
501
|
+
|
|
502
|
+
| Page | URL | Description |
|
|
503
|
+
|------|-----|-------------|
|
|
504
|
+
| Theme Customizer | `/about/settings/theme/` | Skins, palette generator, skin editor, live preview, color editing, YAML export |
|
|
505
|
+
| Configuration | `/about/config/` | View/edit `_config.yml`, quick actions, environment info |
|
|
506
|
+
| Navigation Editor | `/about/settings/navigation/` | Edit header/footer/sidebar menus, export YAML |
|
|
507
|
+
| Collection Manager | `/about/settings/collections/` | Browse and manage Jekyll collections |
|
|
508
|
+
| Analytics | `/about/settings/analytics/` | Site analytics and performance metrics |
|
|
509
|
+
| Environment | `/about/settings/environment/` | Jekyll build info and environment details |
|
|
510
|
+
|
|
511
|
+
> **Note:** Admin pages require theme version ≥ 0.22.10 for the `admin` layout and component includes.
|
|
512
|
+
|
|
513
|
+
---
|
|
514
|
+
|
|
515
|
+
## �🔄 Development Workflow
|
|
470
516
|
|
|
471
517
|
```mermaid
|
|
472
518
|
gitGraph
|
|
@@ -528,26 +574,27 @@ npm run vendor:install # manifest downloads (+ Mermaid copy when node_modules
|
|
|
528
574
|
|
|
529
575
|
## 🚀 Deployment
|
|
530
576
|
|
|
531
|
-
### GitHub Pages (
|
|
577
|
+
### GitHub Pages (User Site — Recommended)
|
|
578
|
+
|
|
579
|
+
Fork the repo as `<your-username>.github.io` and enable GitHub Pages:
|
|
580
|
+
|
|
581
|
+
1. Push to `main` branch
|
|
582
|
+
2. GitHub Pages builds automatically
|
|
583
|
+
3. Site deploys to `https://<your-username>.github.io`
|
|
584
|
+
|
|
585
|
+
No workflows or `baseurl` configuration needed. See [docs/FORKING.md](docs/FORKING.md) for details.
|
|
532
586
|
|
|
533
587
|
```mermaid
|
|
534
588
|
sequenceDiagram
|
|
535
589
|
participant Dev as Developer
|
|
536
590
|
participant GH as GitHub
|
|
537
|
-
participant Actions as GitHub Actions
|
|
538
591
|
participant Pages as GitHub Pages
|
|
539
592
|
|
|
540
593
|
Dev->>GH: git push main
|
|
541
|
-
GH->>
|
|
542
|
-
|
|
543
|
-
Actions->>Pages: Deploy _site/
|
|
544
|
-
Pages-->>Dev: 🌐 Site live!
|
|
594
|
+
GH->>Pages: Auto-build Jekyll
|
|
595
|
+
Pages-->>Dev: 🌐 Site live at username.github.io
|
|
545
596
|
```
|
|
546
597
|
|
|
547
|
-
1. Push to `main` branch
|
|
548
|
-
2. GitHub Actions builds automatically
|
|
549
|
-
3. Site deploys to GitHub Pages
|
|
550
|
-
|
|
551
598
|
### Docker Production
|
|
552
599
|
|
|
553
600
|
```bash
|
|
@@ -742,7 +789,7 @@ git push origin feature/awesome-feature
|
|
|
742
789
|
|
|
743
790
|
| Metric | Value |
|
|
744
791
|
|--------|-------|
|
|
745
|
-
| **Current Version** | 0.
|
|
792
|
+
| **Current Version** | 0.22.19 ([RubyGems](https://rubygems.org/gems/jekyll-theme-zer0), [CHANGELOG](/CHANGELOG)) |
|
|
746
793
|
| **Documented Features** | 43 ([Feature Registry](https://github.com/bamr87/zer0-mistakes/blob/main/_data/features.yml)) |
|
|
747
794
|
| **Setup Time** | 2-5 minutes ([install.sh benchmarks](https://github.com/bamr87/zer0-mistakes/blob/main/install.sh)) |
|
|
748
795
|
| **Documentation Pages** | 70+ ([browse docs](/pages/)) |
|
|
@@ -785,6 +832,6 @@ Built with these amazing technologies:
|
|
|
785
832
|
|
|
786
833
|
**Built with ❤️ for the Jekyll community**
|
|
787
834
|
|
|
788
|
-
**v0.
|
|
835
|
+
**v0.22.19** • [Changelog](CHANGELOG.md) • [License](LICENSE) • [Contributing](CONTRIBUTING.md)
|
|
789
836
|
|
|
790
837
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Admin Navigation Configuration
|
|
2
|
+
# Used by: _includes/navigation/admin-nav.html
|
|
3
|
+
# Purpose: Data-driven sidebar navigation for admin/settings pages
|
|
4
|
+
# Schema: title, url, icon, description, badge (optional), external (optional)
|
|
5
|
+
|
|
6
|
+
# ── Admin Pages ──────────────────────────────────────────────────
|
|
7
|
+
|
|
8
|
+
- title: Configuration
|
|
9
|
+
url: /about/config/
|
|
10
|
+
icon: bi-gear
|
|
11
|
+
description: View and export site configuration
|
|
12
|
+
|
|
13
|
+
- title: Statistics
|
|
14
|
+
url: /about/stats/
|
|
15
|
+
icon: bi-bar-chart-line
|
|
16
|
+
description: Content analytics and metrics
|
|
17
|
+
|
|
18
|
+
- title: Theme Customizer
|
|
19
|
+
url: /about/settings/theme/
|
|
20
|
+
icon: bi-palette
|
|
21
|
+
description: Skin, colors, and typography
|
|
22
|
+
|
|
23
|
+
- title: Navigation Editor
|
|
24
|
+
url: /about/settings/navigation/
|
|
25
|
+
icon: bi-signpost-2
|
|
26
|
+
description: Menu structure and links
|
|
27
|
+
|
|
28
|
+
- title: Collection Manager
|
|
29
|
+
url: /about/settings/collections/
|
|
30
|
+
icon: bi-collection
|
|
31
|
+
description: Jekyll collections overview
|
|
32
|
+
|
|
33
|
+
- title: Analytics Dashboard
|
|
34
|
+
url: /about/settings/analytics/
|
|
35
|
+
icon: bi-graph-up
|
|
36
|
+
description: PostHog and tracking settings
|
|
37
|
+
|
|
38
|
+
- title: Environment & Build
|
|
39
|
+
url: /about/settings/environment/
|
|
40
|
+
icon: bi-hdd-network
|
|
41
|
+
description: Jekyll, Ruby, and build info
|
|
42
|
+
|
|
43
|
+
# ── External Links ───────────────────────────────────────────────
|
|
44
|
+
|
|
45
|
+
- title: Repository
|
|
46
|
+
url: https://github.com/{github_user}/{repository_name}
|
|
47
|
+
icon: bi-github
|
|
48
|
+
external: true
|
|
49
|
+
|
|
50
|
+
- title: Jekyll Docs
|
|
51
|
+
url: https://jekyllrb.com/docs/configuration/
|
|
52
|
+
icon: bi-book
|
|
53
|
+
external: true
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Theme Background Presets
|
|
2
|
+
# Maps each skin to gradient, pattern, and noise texture assets.
|
|
3
|
+
# Generated using fffuel.co tools: ffflux (gradients), rrrepeat (patterns), nnnoise (noise).
|
|
4
|
+
# See: https://www.fffuel.co
|
|
5
|
+
#
|
|
6
|
+
# Zones define where backgrounds are applied:
|
|
7
|
+
# hero — header/hero banner area
|
|
8
|
+
# body — page body subtle texture overlay
|
|
9
|
+
# surface — cards, sidebars, panels
|
|
10
|
+
# footer — footer area
|
|
11
|
+
|
|
12
|
+
defaults:
|
|
13
|
+
texture_opacity: 0.04
|
|
14
|
+
blend_mode: overlay
|
|
15
|
+
gradient_opacity: 0.6
|
|
16
|
+
pattern_opacity: 0.08
|
|
17
|
+
|
|
18
|
+
zones:
|
|
19
|
+
hero:
|
|
20
|
+
layer: gradient
|
|
21
|
+
fallback_color: var(--bs-body-bg)
|
|
22
|
+
body:
|
|
23
|
+
layer: noise
|
|
24
|
+
fallback_color: var(--bs-body-bg)
|
|
25
|
+
surface:
|
|
26
|
+
layer: pattern
|
|
27
|
+
fallback_color: var(--bs-tertiary-bg)
|
|
28
|
+
footer:
|
|
29
|
+
layer: noise
|
|
30
|
+
fallback_color: var(--bs-body-bg)
|
|
31
|
+
|
|
32
|
+
skins:
|
|
33
|
+
air:
|
|
34
|
+
label: "Air"
|
|
35
|
+
colors:
|
|
36
|
+
primary: "#e8f4f8"
|
|
37
|
+
secondary: "#b8d4e3"
|
|
38
|
+
accent: "#6fa8dc"
|
|
39
|
+
gradient: "assets/backgrounds/gradients/air.svg"
|
|
40
|
+
pattern: "assets/backgrounds/patterns/air.svg"
|
|
41
|
+
noise: "assets/backgrounds/noise/air.svg"
|
|
42
|
+
|
|
43
|
+
aqua:
|
|
44
|
+
label: "Aqua"
|
|
45
|
+
colors:
|
|
46
|
+
primary: "#0077b6"
|
|
47
|
+
secondary: "#00b4d8"
|
|
48
|
+
accent: "#90e0ef"
|
|
49
|
+
gradient: "assets/backgrounds/gradients/aqua.svg"
|
|
50
|
+
pattern: "assets/backgrounds/patterns/aqua.svg"
|
|
51
|
+
noise: "assets/backgrounds/noise/aqua.svg"
|
|
52
|
+
|
|
53
|
+
contrast:
|
|
54
|
+
label: "Contrast"
|
|
55
|
+
colors:
|
|
56
|
+
primary: "#000000"
|
|
57
|
+
secondary: "#ffffff"
|
|
58
|
+
accent: "#ffcc00"
|
|
59
|
+
gradient: "assets/backgrounds/gradients/contrast.svg"
|
|
60
|
+
pattern: "assets/backgrounds/patterns/contrast.svg"
|
|
61
|
+
noise: "assets/backgrounds/noise/contrast.svg"
|
|
62
|
+
|
|
63
|
+
dark:
|
|
64
|
+
label: "Dark"
|
|
65
|
+
colors:
|
|
66
|
+
primary: "#1a1a2e"
|
|
67
|
+
secondary: "#16213e"
|
|
68
|
+
accent: "#0f3460"
|
|
69
|
+
gradient: "assets/backgrounds/gradients/dark.svg"
|
|
70
|
+
pattern: "assets/backgrounds/patterns/dark.svg"
|
|
71
|
+
noise: "assets/backgrounds/noise/dark.svg"
|
|
72
|
+
|
|
73
|
+
dirt:
|
|
74
|
+
label: "Dirt"
|
|
75
|
+
colors:
|
|
76
|
+
primary: "#5c4033"
|
|
77
|
+
secondary: "#8b6914"
|
|
78
|
+
accent: "#d4a574"
|
|
79
|
+
gradient: "assets/backgrounds/gradients/dirt.svg"
|
|
80
|
+
pattern: "assets/backgrounds/patterns/dirt.svg"
|
|
81
|
+
noise: "assets/backgrounds/noise/dirt.svg"
|
|
82
|
+
|
|
83
|
+
neon:
|
|
84
|
+
label: "Neon"
|
|
85
|
+
colors:
|
|
86
|
+
primary: "#ff006e"
|
|
87
|
+
secondary: "#8338ec"
|
|
88
|
+
accent: "#3a86ff"
|
|
89
|
+
gradient: "assets/backgrounds/gradients/neon.svg"
|
|
90
|
+
pattern: "assets/backgrounds/patterns/neon.svg"
|
|
91
|
+
noise: "assets/backgrounds/noise/neon.svg"
|
|
92
|
+
|
|
93
|
+
mint:
|
|
94
|
+
label: "Mint"
|
|
95
|
+
colors:
|
|
96
|
+
primary: "#2d6a4f"
|
|
97
|
+
secondary: "#52b788"
|
|
98
|
+
accent: "#95d5b2"
|
|
99
|
+
gradient: "assets/backgrounds/gradients/mint.svg"
|
|
100
|
+
pattern: "assets/backgrounds/patterns/mint.svg"
|
|
101
|
+
noise: "assets/backgrounds/noise/mint.svg"
|
|
102
|
+
|
|
103
|
+
plum:
|
|
104
|
+
label: "Plum"
|
|
105
|
+
colors:
|
|
106
|
+
primary: "#4a0e4e"
|
|
107
|
+
secondary: "#812f85"
|
|
108
|
+
accent: "#c77dff"
|
|
109
|
+
gradient: "assets/backgrounds/gradients/plum.svg"
|
|
110
|
+
pattern: "assets/backgrounds/patterns/plum.svg"
|
|
111
|
+
noise: "assets/backgrounds/noise/plum.svg"
|
|
112
|
+
|
|
113
|
+
sunrise:
|
|
114
|
+
label: "Sunrise"
|
|
115
|
+
colors:
|
|
116
|
+
primary: "#ff6b35"
|
|
117
|
+
secondary: "#f7c59f"
|
|
118
|
+
accent: "#efefd0"
|
|
119
|
+
gradient: "assets/backgrounds/gradients/sunrise.svg"
|
|
120
|
+
pattern: "assets/backgrounds/patterns/sunrise.svg"
|
|
121
|
+
noise: "assets/backgrounds/noise/sunrise.svg"
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
===================================================================
|
|
3
|
+
ADMIN TABS — Reusable tabbed interface for admin pages
|
|
4
|
+
===================================================================
|
|
5
|
+
|
|
6
|
+
File: admin-tabs.html
|
|
7
|
+
Path: _includes/components/admin-tabs.html
|
|
8
|
+
Purpose: Renders a Bootstrap 5 tabbed interface from structured
|
|
9
|
+
parameters. Each admin page can define its own tabs via
|
|
10
|
+
the include parameter or front matter.
|
|
11
|
+
|
|
12
|
+
Parameters (via include):
|
|
13
|
+
tabs - A string of tab definitions, pipe-separated:
|
|
14
|
+
"id:label:icon:active" per tab
|
|
15
|
+
e.g., "view:View Config:bi-eye:true|edit:Edit:bi-pencil:false"
|
|
16
|
+
id - Unique prefix for this tab group (default: "admin")
|
|
17
|
+
|
|
18
|
+
Usage:
|
|
19
|
+
{% include components/admin-tabs.html
|
|
20
|
+
id="config"
|
|
21
|
+
tabs="view:View Config:bi-eye:true|edit:Edit & Export:bi-pencil-square:false|raw:Raw YAML:bi-file-earmark-code:false"
|
|
22
|
+
%}
|
|
23
|
+
<div class="tab-content pt-4" id="configTabContent">
|
|
24
|
+
<div class="tab-pane fade show active" id="pane-view" role="tabpanel">
|
|
25
|
+
... content ...
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
Dependencies: Bootstrap 5 tab/nav components, Bootstrap Icons
|
|
30
|
+
Used by: Admin pages (config.md, theme.md, navigation.md, etc.)
|
|
31
|
+
===================================================================
|
|
32
|
+
-->
|
|
33
|
+
|
|
34
|
+
{% assign tab_prefix = include.id | default: "admin" %}
|
|
35
|
+
{% assign tab_list = include.tabs | split: "|" %}
|
|
36
|
+
|
|
37
|
+
<ul class="nav nav-tabs" id="{{ tab_prefix }}Tabs" role="tablist">
|
|
38
|
+
{% for tab_def in tab_list %}
|
|
39
|
+
{% assign parts = tab_def | split: ":" %}
|
|
40
|
+
{% assign tab_id = parts[0] %}
|
|
41
|
+
{% assign tab_label = parts[1] %}
|
|
42
|
+
{% assign tab_icon = parts[2] %}
|
|
43
|
+
{% assign tab_active = parts[3] %}
|
|
44
|
+
|
|
45
|
+
<li class="nav-item" role="presentation">
|
|
46
|
+
<button class="nav-link{% if tab_active == 'true' %} active{% endif %}"
|
|
47
|
+
id="tab-{{ tab_id }}"
|
|
48
|
+
data-bs-toggle="tab"
|
|
49
|
+
data-bs-target="#pane-{{ tab_id }}"
|
|
50
|
+
type="button"
|
|
51
|
+
role="tab"
|
|
52
|
+
aria-controls="pane-{{ tab_id }}"
|
|
53
|
+
aria-selected="{{ tab_active | default: 'false' }}">
|
|
54
|
+
{% if tab_icon %}<i class="{{ tab_icon }} me-1"></i>{% endif %}
|
|
55
|
+
{{ tab_label }}
|
|
56
|
+
</button>
|
|
57
|
+
</li>
|
|
58
|
+
{% endfor %}
|
|
59
|
+
</ul>
|