jekyll-theme-zer0 1.24.0 → 1.26.0
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 +124 -0
- data/README.md +4 -4
- data/_data/authors.yml +1 -0
- data/_data/backlog.yml +26 -1
- data/_data/features.yml +73 -45
- data/_data/feedback_types.yml +148 -0
- data/_data/navigation/README.md +16 -6
- data/_data/navigation/main.yml +0 -8
- data/_data/roadmap.yml +1 -0
- data/_includes/README.md +10 -7
- data/_includes/analytics/google-analytics.html +1 -0
- data/_includes/analytics/google-tag-manager-body.html +1 -0
- data/_includes/analytics/google-tag-manager-head.html +1 -0
- data/_includes/analytics/posthog.html +1 -0
- data/_includes/components/README.md +3 -1
- data/_includes/components/admin-links.html +63 -0
- data/_includes/components/admin-tabs.html +1 -0
- data/_includes/components/ai-chat.html +27 -5
- data/_includes/components/author-eeat.html +1 -0
- data/_includes/components/background-customizer.html +1 -0
- data/_includes/components/background-settings.html +36 -37
- data/_includes/components/component-showcase.html +1 -0
- data/_includes/components/cookie-consent.html +1 -0
- data/_includes/components/dev-shortcuts.html +1 -8
- data/_includes/components/env-switcher.html +90 -138
- data/_includes/components/feature-card.html +1 -1
- data/_includes/components/halfmoon.html +22 -41
- data/_includes/components/info-section.html +127 -130
- data/_includes/components/mermaid.html +1 -0
- data/_includes/components/nanobar.html +1 -0
- data/_includes/components/page-feedback.html +252 -0
- data/_includes/components/post-type-badge.html +1 -0
- data/_includes/components/preview-image.html +1 -0
- data/_includes/components/search-modal.html +1 -0
- data/_includes/components/searchbar.html +1 -0
- data/_includes/components/shortcuts-modal.html +1 -0
- data/_includes/components/theme-info.html +21 -30
- data/_includes/components/theme-preview-gallery.html +1 -0
- data/_includes/content/backlinks.html +1 -0
- data/_includes/content/giscus.html +1 -0
- data/_includes/content/intro.html +20 -62
- data/_includes/content/jsonld-faq.html +1 -0
- data/_includes/content/seo.html +1 -0
- data/_includes/content/sitemap.html +1 -0
- data/_includes/content/toc.html +1 -0
- data/_includes/core/color-mode-init.html +1 -0
- data/_includes/core/console-capture.html +89 -0
- data/_includes/core/footer.html +1 -0
- data/_includes/core/head.html +5 -0
- data/_includes/core/header.html +5 -15
- data/_includes/navigation/admin-nav.html +1 -0
- data/_includes/navigation/breadcrumbs.html +1 -0
- data/_includes/navigation/local-graph-fab.html +3 -9
- data/_includes/navigation/local-graph.html +4 -9
- data/_includes/navigation/navbar.html +1 -0
- data/_includes/navigation/sidebar-categories.html +56 -14
- data/_includes/navigation/sidebar-config.html +115 -0
- data/_includes/navigation/sidebar-folders.html +168 -62
- data/_includes/navigation/sidebar-left.html +29 -52
- data/_includes/navigation/sidebar-nav.html +30 -0
- data/_includes/navigation/sidebar-right.html +1 -0
- data/_includes/navigation/toc-fab.html +3 -9
- data/_includes/navigation/unified-drawer.html +7 -14
- data/_includes/obsidian/full-graph.html +1 -0
- data/_includes/setup/wizard.html +1 -0
- data/_includes/stats/stats-categories.html +1 -0
- data/_includes/stats/stats-header.html +1 -0
- data/_includes/stats/stats-metrics.html +1 -0
- data/_includes/stats/stats-overview.html +1 -0
- data/_includes/stats/stats-tags.html +1 -0
- data/_layouts/admin.html +1 -0
- data/_layouts/article.html +1 -0
- data/_layouts/author.html +1 -0
- data/_layouts/authors.html +1 -0
- data/_layouts/collection.html +1 -0
- data/_layouts/default.html +14 -37
- data/_layouts/home.html +1 -0
- data/_layouts/index.html +1 -0
- data/_layouts/landing.html +1 -0
- data/_layouts/news.html +1 -0
- data/_layouts/note.html +1 -0
- data/_layouts/notebook.html +1 -0
- data/_layouts/root.html +6 -2
- data/_layouts/search.html +1 -0
- data/_layouts/section.html +1 -0
- data/_layouts/setup.html +1 -0
- data/_layouts/sitemap-collection.html +1 -0
- data/_layouts/stats.html +1 -0
- data/_layouts/tag.html +1 -0
- data/_layouts/welcome.html +1 -0
- data/_plugins/author_pages_generator.rb +1 -0
- data/_plugins/obsidian_links.rb +1 -0
- data/_plugins/preview_image_generator.rb +1 -0
- data/_plugins/search_and_sitemap_generator.rb +1 -0
- data/_plugins/theme_version.rb +1 -0
- data/_sass/components/_author.scss +12 -1
- data/_sass/components/_footer.scss +22 -0
- data/_sass/components/_page-feedback.scss +276 -0
- data/_sass/components/_ui-enhancements.scss +9 -0
- data/_sass/core/_docs-layout.scss +3 -78
- data/_sass/core/_navbar.scss +10 -27
- data/_sass/core/_obsidian.scss +2 -2
- data/_sass/core/code-copy.scss +10 -0
- data/_sass/custom.scss +1 -0
- data/_sass/notebooks.scss +1 -0
- data/_sass/theme/_backgrounds.scss +7 -2
- data/_sass/tokens/_layers.scss +4 -0
- data/_sass/utilities/_layout.scss +11 -0
- data/assets/css/main.scss +3 -1
- data/assets/js/ai-chat.js +1 -0
- data/assets/js/author-profile.js +1 -0
- data/assets/js/auto-hide-nav.js +1 -0
- data/assets/js/back-to-top.js +1 -0
- data/assets/js/background-customizer.js +1 -0
- data/assets/js/code-copy.js +1 -0
- data/assets/js/halfmoon.js +23 -22
- data/assets/js/modules/navigation/gestures.js +1 -0
- data/assets/js/modules/navigation/keyboard.js +1 -0
- data/assets/js/modules/navigation/scroll-spy.js +1 -0
- data/assets/js/modules/navigation/sidebar-state.js +1 -0
- data/assets/js/modules/navigation/sidebar-visibility.js +1 -0
- data/assets/js/modules/navigation/smooth-scroll.js +1 -0
- data/assets/js/modules/theme/appearance.js +52 -16
- data/assets/js/nanobar-init.js +1 -0
- data/assets/js/navigation.js +1 -0
- data/assets/js/obsidian-graph.js +1 -0
- data/assets/js/obsidian-wiki-links.js +1 -0
- data/assets/js/page-feedback.js +660 -0
- data/assets/js/palette-generator.js +1 -0
- data/assets/js/particles-source.js +1 -0
- data/assets/js/search-modal.js +1 -0
- data/assets/js/setup-wizard.js +1 -0
- data/assets/js/share-actions.js +1 -0
- data/assets/js/skin-editor.js +1 -0
- data/assets/js/table-copy.js +1 -0
- data/assets/js/theme-customizer.js +1 -0
- data/scripts/analyze-commits.sh +1 -0
- data/scripts/bin/giscus-discussions +1 -0
- data/scripts/bin/install +1 -0
- data/scripts/bin/validate +1 -0
- data/scripts/build +1 -0
- data/scripts/content-review.rb +1 -0
- data/scripts/convert-notebooks.sh +4 -3
- data/scripts/fix-markdown-format.sh +1 -0
- data/scripts/generate-preview-images.sh +1 -0
- data/scripts/generate-roadmap.sh +1 -0
- data/scripts/install-preview-generator.sh +1 -0
- data/scripts/release +1 -0
- data/scripts/requirements.txt +11 -0
- data/scripts/setup.sh +1 -0
- data/scripts/tag-features +136 -0
- data/scripts/validate-features.rb +7 -0
- data/scripts/vendor-install.sh +1 -0
- metadata +13 -4
- data/_data/prompts.yml +0 -302
- data/_plugins/admin_page_urls.rb +0 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: af7de9769f05880ab652483a7ff6109e79d04ff6404c71163822ce4cecac3d23
|
|
4
|
+
data.tar.gz: 7c968f45cbba4655ad0eb5aa25a55e7b5f178957d65036d47236ba7809592733
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3ec2a5423346be22b17120fc586396501218877b70373eae7df03395b4b91211e8d03cf45d79ec71ad717344eae248b967dd5e810092cbf045f0d796ffad1c61
|
|
7
|
+
data.tar.gz: 55ec85fa55c7ca9c918413e16c86d3a275301a0282a989039face47fad9b9e3dc27f5fcda6ff7eb5e74faf0a557e8307c43a059e2e2bd1ebf8df011e46e82b9c
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,129 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.26.0](https://github.com/bamr87/zer0-mistakes/compare/v1.25.0...v1.26.0) (2026-07-07)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **feedback:** runtime "Improve this page" capture → GitHub issue (logs + AI triage) ([#286](https://github.com/bamr87/zer0-mistakes/issues/286)) ([f7fb20d](https://github.com/bamr87/zer0-mistakes/commit/f7fb20df74c22df7eb823344121c60617f06c7b6))
|
|
14
|
+
|
|
15
|
+
## [Unreleased]
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- **CI test tiering** — the PR-blocking Playwright gate is now the new
|
|
20
|
+
`critical` project (118 `@critical`-tagged, user-facing tests: navigation,
|
|
21
|
+
search, mobile survival, theming baseline, security) instead of the full
|
|
22
|
+
331-test `smoke` tier; the full smoke tier, the complete shell-suite
|
|
23
|
+
matrix, and the 9-skin pixel snapshots moved to a nightly workflow
|
|
24
|
+
(`nightly-extended.yml`) that files a sticky issue on failure instead of
|
|
25
|
+
blocking PRs. Install/deploy/site-generation shell suites run on PRs only
|
|
26
|
+
when install-related paths change (always nightly).
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- **Weekly agentic UI/UX audit** (`ui-audit.yml`) — a deterministic
|
|
31
|
+
Playwright sweep (`test/ui-audit/sweep.mjs`: screenshots, axe WCAG 2.1 AA,
|
|
32
|
+
console errors, overflow, broken internal links across critical routes ×
|
|
33
|
+
3 viewports) interpreted by a read-only Claude Code agent
|
|
34
|
+
(`.claude/agents/ui-auditor.md`) against the component contract in
|
|
35
|
+
`docs/architecture/ui-components.md`; findings are filed as a
|
|
36
|
+
`source:ui-audit` issue feeding the continuous-evolution loop.
|
|
37
|
+
|
|
38
|
+
## [1.25.0](https://github.com/bamr87/zer0-mistakes/compare/v1.24.0...v1.25.0) (2026-07-03)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
### Features
|
|
42
|
+
|
|
43
|
+
* **features:** reverse-traceability source tags — applied and enforced ([#270](https://github.com/bamr87/zer0-mistakes/issues/270)) ([f2c0c07](https://github.com/bamr87/zer0-mistakes/commit/f2c0c073c08bce62956a56b4b3e77d48a00ba309))
|
|
44
|
+
* **includes:** rebuild settings offcanvas into 3 coherent tabs ([#276](https://github.com/bamr87/zer0-mistakes/issues/276)) ([6d7fa5e](https://github.com/bamr87/zer0-mistakes/commit/6d7fa5e028a540576205462cb37797f6ee11c98a))
|
|
45
|
+
* **navigation:** collection-aware sidebar modes with shared resolver ([#273](https://github.com/bamr87/zer0-mistakes/issues/273)) ([104285f](https://github.com/bamr87/zer0-mistakes/commit/104285fbed2d27646549c9aa956dea5108d91f77))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### Bug Fixes
|
|
49
|
+
|
|
50
|
+
* **features:** stop ZER0-061 card from swallowing every following card ([#268](https://github.com/bamr87/zer0-mistakes/issues/268)) ([46a604d](https://github.com/bamr87/zer0-mistakes/commit/46a604d1bf4331422b382bf895aeecae928fda70))
|
|
51
|
+
* **navigation:** remove redundant entries from navigation menus ([916eca2](https://github.com/bamr87/zer0-mistakes/commit/916eca269726c984c5c0c9dc9533c83d9975f906))
|
|
52
|
+
* **sass:** mobile audit — contain author card, restore consent z-order, grow tap targets ([#275](https://github.com/bamr87/zer0-mistakes/issues/275)) ([8ec9867](https://github.com/bamr87/zer0-mistakes/commit/8ec9867858ff87e9b8a6fcd4a68ec7e50582c3c1))
|
|
53
|
+
|
|
54
|
+
## [Unreleased]
|
|
55
|
+
|
|
56
|
+
### Changed
|
|
57
|
+
|
|
58
|
+
- **Settings panel rebuilt** — the navbar Settings offcanvas (`#info-section`)
|
|
59
|
+
is reorganized from four overlapping tabs (Settings / Environment /
|
|
60
|
+
Developer / Background) into three with one purpose each, guarded by the
|
|
61
|
+
new `test/visual/settings-panel.spec.js` smoke suite
|
|
62
|
+
(evidence: [`test/visual/evidence/settings-panel/`](test/visual/evidence/settings-panel/README.md)
|
|
63
|
+
— 4 tabs → 3, duplicate color-mode controls 6 → 3, dead search box
|
|
64
|
+
removed, admin links 0 → 4):
|
|
65
|
+
- **Appearance** consolidates every look-and-feel control exactly once:
|
|
66
|
+
color mode (one-click segmented control replacing the two-click
|
|
67
|
+
dropdown), theme skin, background toggle + layer opacity with inline
|
|
68
|
+
values, and the primary-color picker — now mounted *inside* the tab
|
|
69
|
+
instead of appended below the tab content where it duplicated the
|
|
70
|
+
color-mode buttons under every tab.
|
|
71
|
+
- **Site** stacks the environment card (copyable page URL via a delegated
|
|
72
|
+
`data-zer0-copy` handler — inline `onclick` handlers removed),
|
|
73
|
+
quick links, deduplicated theme & build info, and Admin quick links.
|
|
74
|
+
- **Developer** keeps page location (rendered only where breadcrumbs
|
|
75
|
+
render — no more empty heading on the homepage), page metadata, and
|
|
76
|
+
source shortcuts (dead never-initialized tooltip attributes dropped).
|
|
77
|
+
- The dead Settings-tab search box (an empty `#searchbox` no JS ever
|
|
78
|
+
bound to) is removed; the search modal remains the one search surface.
|
|
79
|
+
- Mobile tabs keep their text labels (their accessible names) at every
|
|
80
|
+
width and drop the decorative icons instead of the reverse.
|
|
81
|
+
|
|
82
|
+
### Fixed
|
|
83
|
+
|
|
84
|
+
- **Settings panel admin links never rendered** — the
|
|
85
|
+
`_plugins/admin_page_urls.rb` lookup powering them never ran: the
|
|
86
|
+
`github-pages` gem forces safe mode and randomizes `plugins_dir`, so local
|
|
87
|
+
`_plugins` are disabled on GitHub Pages, in CI, and in the Docker dev
|
|
88
|
+
server alike. The plugin is replaced with a pure-Liquid scan in the cached
|
|
89
|
+
`_includes/components/admin-links.html` (jekyll-include-cache is
|
|
90
|
+
whitelisted), so the Admin section now renders its existence-gated links
|
|
91
|
+
(0 → 4 on the demo site).
|
|
92
|
+
|
|
93
|
+
- **Mobile responsive audit** — four defects found by driving every key route
|
|
94
|
+
and component under phone emulation (320–414px), each guarded by the new
|
|
95
|
+
`test/visual/mobile-responsive.spec.js` smoke suite
|
|
96
|
+
(evidence: [`test/visual/evidence/mobile-responsive/`](test/visual/evidence/mobile-responsive/README.md) —
|
|
97
|
+
author-card page overflow 19px → 0 on small phones; consent buttons 0
|
|
98
|
+
tap-blocked; all footer/copy tap targets ≥24px):
|
|
99
|
+
- **Author card**: a long nowrap expertise badge propagated through flexbox
|
|
100
|
+
`min-width: auto` and pushed the whole page past the viewport on ≤340px
|
|
101
|
+
phones, widening the layout viewport so the fixed navbar rendered "cut
|
|
102
|
+
off" and the page panned sideways.
|
|
103
|
+
- **Cookie consent banner**: the `.zer0-bg-body` child-elevation rule
|
|
104
|
+
flattened the banner (and the TOC FAB) to `z-index: 1`, letting the chat
|
|
105
|
+
and local-graph FABs paint over — and steal taps from — the banner's
|
|
106
|
+
Reject All / Accept All buttons on mobile. The rule now excludes
|
|
107
|
+
`.position-fixed`, restoring the `--zer0-layer-*` token order.
|
|
108
|
+
- **Footer tap targets**: text links (~19px) and icon-only social links
|
|
109
|
+
(~16px) now meet the WCAG 2.5.8 24px minimum via block padding and
|
|
110
|
+
minimum boxes — text size and visual design unchanged.
|
|
111
|
+
- **Breadcrumb tap targets**: breadcrumb links (~19px bare text) gain a
|
|
112
|
+
≥24px tap box via block padding + matching negative margin, without
|
|
113
|
+
shifting the visual baseline.
|
|
114
|
+
- **Code-copy buttons**: grown from ~22px to ≥24px tall (32px on
|
|
115
|
+
coarse/touch pointers).
|
|
116
|
+
- **ToC / chat FAB collision**: on mobile, the table-of-contents FAB and
|
|
117
|
+
the AI-chat toggle both claimed the right-edge slot above back-to-top
|
|
118
|
+
and overlapped (ToC painting over the chat button). The chat toggle and
|
|
119
|
+
its panel now step one slot higher on pages that render the ToC FAB,
|
|
120
|
+
and the chat panel is capped to the viewport so it can't poke above
|
|
121
|
+
short tablet/landscape screens.
|
|
122
|
+
|
|
123
|
+
### Added
|
|
124
|
+
|
|
125
|
+
- **Mobile test tier**: `test/visual/mobile-responsive.spec.js` runs the above
|
|
126
|
+
guards plus offcanvas-menu, search-modal, and settings-panel fit/tap checks
|
|
127
|
+
under real Pixel-class emulation in the `smoke` tier; `npm run test:mobile`
|
|
128
|
+
runs just this suite. New `dismissCookieConsent` fixture pre-seeds the
|
|
129
|
+
consent choice for tests that interact with lower-screen chrome.
|
|
130
|
+
|
|
8
131
|
## [1.24.0](https://github.com/bamr87/zer0-mistakes/compare/v1.23.0...v1.24.0) (2026-07-01)
|
|
9
132
|
|
|
10
133
|
|
|
@@ -42,6 +165,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
42
165
|
|
|
43
166
|
### Bug Fixes
|
|
44
167
|
|
|
168
|
+
* **features:** stop a feature card from swallowing every card after it on `/features/` — a raw `<key>` in the ZER0-061 description rendered as a stray HTML element. Fixed the description (`/authors/:key/`), escaped all `description` output on the features page and in `feature-card.html`, and added a registry-gate check that rejects raw `<`/`>` in titles/descriptions. (evidence: [`test/visual/evidence/features-card-escape/`](test/visual/evidence/features-card-escape/README.md))
|
|
45
169
|
* **includes:** existence-guard component-showcase demo links — breadcrumb and list-group items now render as real links when the target page exists in the build (`/docs/`, `/docs/customization/`, `/categories/`, `/tags/`) and as plain text when absent; removes inert `href="#"` / `onclick="return false;"` workaround ([#219](https://github.com/bamr87/zer0-mistakes/issues/219)) (evidence: [`test/visual/evidence/component-showcase/`](test/visual/evidence/component-showcase/README.md))
|
|
46
170
|
|
|
47
171
|
### Tests
|
data/README.md
CHANGED
|
@@ -655,7 +655,7 @@ git commit -m "feat: add new component"
|
|
|
655
655
|
# Docker-specific tests
|
|
656
656
|
./test/test_deployment.sh
|
|
657
657
|
|
|
658
|
-
# Frontend smoke tests (Playwright; starts Jekyll on :
|
|
658
|
+
# Frontend smoke tests (Playwright; starts Jekyll on :4000 unless BASE_URL is set)
|
|
659
659
|
npm run test:smoke
|
|
660
660
|
# Pixel regression (skin homepage screenshots; baselines committed for Linux)
|
|
661
661
|
npm run test:snapshots
|
|
@@ -757,11 +757,11 @@ All workflows live under [`.github/workflows/`](.github/workflows/).
|
|
|
757
757
|
|
|
758
758
|
| # | Workflow | File | Trigger | Purpose |
|
|
759
759
|
|---|----------|------|---------|---------|
|
|
760
|
-
| 1 | **Comprehensive CI Pipeline** | [`ci.yml`](.github/workflows/ci.yml) | push / PR / dispatch | Detect changes →
|
|
761
|
-
| 2 | **TEST (Latest Dependencies)** | [`test-latest.yml`](.github/workflows/test-latest.yml) | daily schedule / push /
|
|
760
|
+
| 1 | **Comprehensive CI Pipeline** | [`ci.yml`](.github/workflows/ci.yml) | push / PR / dispatch | Detect changes → quality control (incl. quick preflight) → matrix test suite → integration tests → build & validate |
|
|
761
|
+
| 2 | **TEST (Latest Dependencies)** | [`test-latest.yml`](.github/workflows/test-latest.yml) | daily schedule / push / dispatch | Zero-pin Docker build with bleeding-edge gems; tests then promotes passing images to Docker Hub |
|
|
762
762
|
| 3 | **Release** | [`release.yml`](.github/workflows/release.yml) | push to `main` | release-please opens a release PR from Conventional Commits; merging it tags `vX.Y.Z` and publishes the gem to [RubyGems](https://rubygems.org/gems/jekyll-theme-zer0) |
|
|
763
763
|
| 4 | **Update Dependencies** | [`update-dependencies.yml`](.github/workflows/update-dependencies.yml) | weekly schedule | Refreshes `Gemfile.lock` to latest compatible versions and opens an automated PR |
|
|
764
|
-
| 5 | **CodeQL Security Scanning** | [`codeql.yml`](.github/workflows/codeql.yml) | push / PR on code paths + weekly | Static security analysis across Ruby, JavaScript/TypeScript, Python,
|
|
764
|
+
| 5 | **CodeQL Security Scanning** | [`codeql.yml`](.github/workflows/codeql.yml) | push / PR on code paths + weekly | Static security analysis across Ruby, JavaScript/TypeScript, Python, and Actions |
|
|
765
765
|
| 6 | **Content & Docs Review** | [`ai-content-review.yml`](.github/workflows/ai-content-review.yml) | PR on docs/content | Deterministic SEO/quality review + optional Claude agent + docs front matter, internal-link, and markdownlint checks |
|
|
766
766
|
| 7 | **Convert Jupyter Notebooks** | [`convert-notebooks.yml`](.github/workflows/convert-notebooks.yml) | push to `pages/_notebooks/**.ipynb` | Auto-converts `.ipynb` → Jekyll-friendly Markdown with extracted images |
|
|
767
767
|
| 8 | **Sync** | [`sync.yml`](.github/workflows/sync.yml) | push affecting `_data/backlog.yml` or `_data/roadmap.yml` | Mirrors the backlog to GitHub Issues and regenerates the README roadmap section |
|
data/_data/authors.yml
CHANGED
data/_data/backlog.yml
CHANGED
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
meta:
|
|
64
64
|
title: "zer0-mistakes Backlog"
|
|
65
65
|
updated: 2026-06-29
|
|
66
|
-
next_id:
|
|
66
|
+
next_id: 34
|
|
67
67
|
|
|
68
68
|
tasks:
|
|
69
69
|
# --- Housekeeping (seeded so the loop has work on day one) ------------------
|
|
@@ -863,3 +863,28 @@ tasks:
|
|
|
863
863
|
links: { issue: 241, pr: 253, roadmap: null }
|
|
864
864
|
created: 2026-06-29
|
|
865
865
|
updated: 2026-06-29
|
|
866
|
+
|
|
867
|
+
- id: T-033
|
|
868
|
+
title: "Retire legacy test_installation.sh after equivalence audit against the installer harness"
|
|
869
|
+
status: open
|
|
870
|
+
priority: P2
|
|
871
|
+
area: tests
|
|
872
|
+
risk: standard
|
|
873
|
+
effort: M
|
|
874
|
+
source: user
|
|
875
|
+
route: test-author
|
|
876
|
+
summary: >-
|
|
877
|
+
test_installation.sh (~1,000 lines, "legacy install.sh CLI args") predates the
|
|
878
|
+
modern test_installer.sh + test_install_*.sh harness and largely overlaps it.
|
|
879
|
+
Audit each of its scenarios against the harness, port anything genuinely
|
|
880
|
+
uncovered into test_install_*.sh, then delete the legacy suite and remove the
|
|
881
|
+
`installation` routing from test_runner.sh, ci.yml, and nightly-extended.yml.
|
|
882
|
+
Until then it runs nightly and on install-path PRs only (2026-07 CI tiering).
|
|
883
|
+
acceptance:
|
|
884
|
+
- "Every test_installation.sh scenario is mapped to a harness equivalent or ported."
|
|
885
|
+
- "test_installation.sh deleted; test_runner.sh no longer routes an `installation` suite."
|
|
886
|
+
- "ci.yml and nightly-extended.yml suite lists updated; docs (test/README.md) updated."
|
|
887
|
+
- "Nightly extended run green after removal."
|
|
888
|
+
links: { issue: null, pr: null, roadmap: null }
|
|
889
|
+
created: 2026-07-06
|
|
890
|
+
updated: 2026-07-06
|
data/_data/features.yml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# zer0-mistakes Theme Features Registry
|
|
2
2
|
# Comprehensive feature tracking for the zer0-mistakes Jekyll theme
|
|
3
|
-
# Version: 1.
|
|
4
|
-
# Last Updated: 2026-
|
|
3
|
+
# Version: 1.25.0
|
|
4
|
+
# Last Updated: 2026-07-03
|
|
5
5
|
|
|
6
6
|
features:
|
|
7
7
|
# ============================================================================
|
|
@@ -23,8 +23,8 @@ features:
|
|
|
23
23
|
commit: "a8426a5"
|
|
24
24
|
issue: null
|
|
25
25
|
tests:
|
|
26
|
-
- "test/visual/component-showcase.spec.js"
|
|
27
|
-
- "test/visual/styling.spec.js"
|
|
26
|
+
- "test/visual/features/component-showcase.spec.js"
|
|
27
|
+
- "test/visual/core/styling.spec.js"
|
|
28
28
|
references:
|
|
29
29
|
layouts: ["_layouts/root.html", "_layouts/default.html"]
|
|
30
30
|
includes: ["_includes/core/head.html"]
|
|
@@ -216,7 +216,7 @@ features:
|
|
|
216
216
|
issue: null
|
|
217
217
|
tests:
|
|
218
218
|
- "test/test_quality.sh"
|
|
219
|
-
- "test/visual/security.spec.js"
|
|
219
|
+
- "test/visual/core/security.spec.js"
|
|
220
220
|
references:
|
|
221
221
|
include: "_includes/analytics/posthog.html"
|
|
222
222
|
config: "_config.yml"
|
|
@@ -277,7 +277,7 @@ features:
|
|
|
277
277
|
commit: "0ea51c6"
|
|
278
278
|
issue: null
|
|
279
279
|
tests:
|
|
280
|
-
- "test/visual/
|
|
280
|
+
- "test/visual/features/sidebar-navigation.spec.js"
|
|
281
281
|
references:
|
|
282
282
|
javascript:
|
|
283
283
|
- "assets/js/modules/navigation/sidebar-state.js"
|
|
@@ -317,8 +317,8 @@ features:
|
|
|
317
317
|
commit: "0ea51c6"
|
|
318
318
|
issue: null
|
|
319
319
|
tests:
|
|
320
|
-
- "test/visual/
|
|
321
|
-
- "test/visual/accessibility.spec.js"
|
|
320
|
+
- "test/visual/features/layouts.spec.js"
|
|
321
|
+
- "test/visual/core/accessibility.spec.js"
|
|
322
322
|
references:
|
|
323
323
|
javascript:
|
|
324
324
|
- "assets/js/modules/navigation/keyboard.js"
|
|
@@ -351,8 +351,7 @@ features:
|
|
|
351
351
|
commit: "0ea51c6"
|
|
352
352
|
issue: null
|
|
353
353
|
tests:
|
|
354
|
-
- "test/visual/
|
|
355
|
-
- "test/visual/ui-refresh.spec.js"
|
|
354
|
+
- "test/visual/features/content-enhancements.spec.js"
|
|
356
355
|
references:
|
|
357
356
|
include: "_includes/navigation/sidebar-right.html"
|
|
358
357
|
styles: "_sass/custom.scss"
|
|
@@ -379,7 +378,7 @@ features:
|
|
|
379
378
|
commit: "0ea51c6"
|
|
380
379
|
issue: null
|
|
381
380
|
tests:
|
|
382
|
-
- "test/visual/accessibility.spec.js"
|
|
381
|
+
- "test/visual/core/accessibility.spec.js"
|
|
383
382
|
references:
|
|
384
383
|
include: "_includes/core/header.html"
|
|
385
384
|
styles: "_sass/custom.scss"
|
|
@@ -621,7 +620,7 @@ features:
|
|
|
621
620
|
commit: "a8426a5"
|
|
622
621
|
issue: null
|
|
623
622
|
tests:
|
|
624
|
-
- "test/visual/layouts.spec.js"
|
|
623
|
+
- "test/visual/features/layouts.spec.js"
|
|
625
624
|
references:
|
|
626
625
|
layouts:
|
|
627
626
|
- "_layouts/root.html"
|
|
@@ -667,7 +666,7 @@ features:
|
|
|
667
666
|
commit: "a8426a5"
|
|
668
667
|
issue: null
|
|
669
668
|
tests:
|
|
670
|
-
- "test/visual/component-showcase.spec.js"
|
|
669
|
+
- "test/visual/features/component-showcase.spec.js"
|
|
671
670
|
references:
|
|
672
671
|
includes:
|
|
673
672
|
- "_includes/core/"
|
|
@@ -932,7 +931,7 @@ features:
|
|
|
932
931
|
commit: "a8426a5"
|
|
933
932
|
issue: null
|
|
934
933
|
tests:
|
|
935
|
-
- "test/visual/
|
|
934
|
+
- "test/visual/features/content-enhancements.spec.js"
|
|
936
935
|
references:
|
|
937
936
|
scripts:
|
|
938
937
|
- "assets/js/back-to-top.js"
|
|
@@ -957,7 +956,7 @@ features:
|
|
|
957
956
|
commit: "a8426a5"
|
|
958
957
|
issue: null
|
|
959
958
|
tests:
|
|
960
|
-
- "test/visual/
|
|
959
|
+
- "test/visual/features/content-enhancements.spec.js"
|
|
961
960
|
references:
|
|
962
961
|
scripts:
|
|
963
962
|
- "assets/js/code-copy.js"
|
|
@@ -983,7 +982,7 @@ features:
|
|
|
983
982
|
commit: "55bee97"
|
|
984
983
|
issue: null
|
|
985
984
|
tests:
|
|
986
|
-
- "test/visual/
|
|
985
|
+
- "test/visual/features/appearance.spec.js"
|
|
987
986
|
references:
|
|
988
987
|
scripts:
|
|
989
988
|
- "assets/js/modules/theme/appearance.js"
|
|
@@ -1015,8 +1014,7 @@ features:
|
|
|
1015
1014
|
commit: "21eb458"
|
|
1016
1015
|
issue: null
|
|
1017
1016
|
tests:
|
|
1018
|
-
- "test/visual/search.spec.js"
|
|
1019
|
-
- "test/visual/search-degradation.spec.js"
|
|
1017
|
+
- "test/visual/features/search.spec.js"
|
|
1020
1018
|
references:
|
|
1021
1019
|
scripts:
|
|
1022
1020
|
- "assets/js/search-modal.js"
|
|
@@ -1048,7 +1046,7 @@ features:
|
|
|
1048
1046
|
commit: "a8426a5"
|
|
1049
1047
|
issue: null
|
|
1050
1048
|
tests:
|
|
1051
|
-
- "test/visual/
|
|
1049
|
+
- "test/visual/features/navbar.spec.js"
|
|
1052
1050
|
references:
|
|
1053
1051
|
scripts:
|
|
1054
1052
|
- "assets/js/auto-hide-nav.js"
|
|
@@ -1073,7 +1071,7 @@ features:
|
|
|
1073
1071
|
commit: "a8426a5"
|
|
1074
1072
|
issue: null
|
|
1075
1073
|
tests:
|
|
1076
|
-
- "test/visual/
|
|
1074
|
+
- "test/visual/features/appearance.spec.js"
|
|
1077
1075
|
references:
|
|
1078
1076
|
scripts:
|
|
1079
1077
|
- "assets/js/particles.js"
|
|
@@ -1105,7 +1103,7 @@ features:
|
|
|
1105
1103
|
commit: "a8426a5"
|
|
1106
1104
|
issue: null
|
|
1107
1105
|
tests:
|
|
1108
|
-
- "test/visual/
|
|
1106
|
+
- "test/visual/features/comments.spec.js"
|
|
1109
1107
|
references:
|
|
1110
1108
|
includes:
|
|
1111
1109
|
- "_includes/content/giscus.html"
|
|
@@ -1140,7 +1138,7 @@ features:
|
|
|
1140
1138
|
commit: "31f827e"
|
|
1141
1139
|
issue: null
|
|
1142
1140
|
tests:
|
|
1143
|
-
- "test/visual/
|
|
1141
|
+
- "test/visual/features/content-enhancements.spec.js"
|
|
1144
1142
|
references:
|
|
1145
1143
|
docs:
|
|
1146
1144
|
- "pages/_docs/features/mathjax-math.md"
|
|
@@ -1165,8 +1163,7 @@ features:
|
|
|
1165
1163
|
commit: "a8426a5"
|
|
1166
1164
|
issue: null
|
|
1167
1165
|
tests:
|
|
1168
|
-
- "test/visual/
|
|
1169
|
-
- "test/visual/ui-refresh.spec.js"
|
|
1166
|
+
- "test/visual/features/content-enhancements.spec.js"
|
|
1170
1167
|
references:
|
|
1171
1168
|
includes:
|
|
1172
1169
|
- "_includes/content/toc.html"
|
|
@@ -1251,8 +1248,8 @@ features:
|
|
|
1251
1248
|
commit: "a8426a5"
|
|
1252
1249
|
issue: null
|
|
1253
1250
|
tests:
|
|
1254
|
-
- "test/visual/layouts.spec.js"
|
|
1255
|
-
- "test/visual/authors
|
|
1251
|
+
- "test/visual/features/layouts.spec.js"
|
|
1252
|
+
- "test/visual/features/authors.spec.js"
|
|
1256
1253
|
references:
|
|
1257
1254
|
includes:
|
|
1258
1255
|
- "_includes/navigation/breadcrumbs.html"
|
|
@@ -1421,7 +1418,7 @@ features:
|
|
|
1421
1418
|
issue: null
|
|
1422
1419
|
tests:
|
|
1423
1420
|
- "test/test_obsidian.sh"
|
|
1424
|
-
- "test/visual/obsidian-callouts.spec.js"
|
|
1421
|
+
- "test/visual/features/obsidian-callouts.spec.js"
|
|
1425
1422
|
references:
|
|
1426
1423
|
includes:
|
|
1427
1424
|
- "_includes/obsidian/full-graph.html"
|
|
@@ -1471,7 +1468,7 @@ features:
|
|
|
1471
1468
|
issue: null
|
|
1472
1469
|
tests:
|
|
1473
1470
|
- "test/test_core.sh"
|
|
1474
|
-
- "test/visual/layouts.spec.js"
|
|
1471
|
+
- "test/visual/features/layouts.spec.js"
|
|
1475
1472
|
references:
|
|
1476
1473
|
page: "404.html"
|
|
1477
1474
|
docs: "pages/_docs/features/smart-404.md"
|
|
@@ -1512,8 +1509,7 @@ features:
|
|
|
1512
1509
|
commit: "a8426a5"
|
|
1513
1510
|
issue: null
|
|
1514
1511
|
tests:
|
|
1515
|
-
- "test/visual/
|
|
1516
|
-
- "test/visual/navbar-responsive.spec.js"
|
|
1512
|
+
- "test/visual/features/navbar.spec.js"
|
|
1517
1513
|
references:
|
|
1518
1514
|
includes:
|
|
1519
1515
|
- "_includes/navigation/navbar.html"
|
|
@@ -1533,8 +1529,7 @@ features:
|
|
|
1533
1529
|
commit: "27550da"
|
|
1534
1530
|
issue: null
|
|
1535
1531
|
tests:
|
|
1536
|
-
- "test/visual/admin
|
|
1537
|
-
- "test/visual/admin-nav.spec.js"
|
|
1532
|
+
- "test/visual/features/admin.spec.js"
|
|
1538
1533
|
references:
|
|
1539
1534
|
layout: "_layouts/admin.html"
|
|
1540
1535
|
includes:
|
|
@@ -1645,8 +1640,7 @@ features:
|
|
|
1645
1640
|
commit: "5533f34"
|
|
1646
1641
|
issue: null
|
|
1647
1642
|
tests:
|
|
1648
|
-
- "test/visual/navbar
|
|
1649
|
-
- "test/visual/ui-refresh.spec.js"
|
|
1643
|
+
- "test/visual/features/navbar.spec.js"
|
|
1650
1644
|
references:
|
|
1651
1645
|
scripts:
|
|
1652
1646
|
- "assets/js/modules/"
|
|
@@ -1753,7 +1747,7 @@ features:
|
|
|
1753
1747
|
commit: "341cc67"
|
|
1754
1748
|
issue: null
|
|
1755
1749
|
tests:
|
|
1756
|
-
- "test/visual/ai-chat.spec.js"
|
|
1750
|
+
- "test/visual/features/ai-chat.spec.js"
|
|
1757
1751
|
references:
|
|
1758
1752
|
includes: ["_includes/components/ai-chat.html"]
|
|
1759
1753
|
layouts: ["_layouts/root.html"]
|
|
@@ -1767,7 +1761,7 @@ features:
|
|
|
1767
1761
|
|
|
1768
1762
|
- id: ZER0-061
|
|
1769
1763
|
title: "Author Profiles System"
|
|
1770
|
-
description: "Auto-generated author profile pages and a searchable author directory from _data/authors.yml — each author gets a /authors
|
|
1764
|
+
description: "Auto-generated author profile pages and a searchable author directory from _data/authors.yml — each author gets a /authors/:key/ hub with bio, stats, and a filterable grid of their content across collections"
|
|
1771
1765
|
implemented: true
|
|
1772
1766
|
version: "1.20.0"
|
|
1773
1767
|
link: "/authors/"
|
|
@@ -1780,7 +1774,7 @@ features:
|
|
|
1780
1774
|
commit: "a6db3042"
|
|
1781
1775
|
issue: null
|
|
1782
1776
|
tests:
|
|
1783
|
-
- "test/visual/authors
|
|
1777
|
+
- "test/visual/features/authors.spec.js"
|
|
1784
1778
|
references:
|
|
1785
1779
|
plugin: "_plugins/author_pages_generator.rb"
|
|
1786
1780
|
layouts:
|
|
@@ -1805,7 +1799,7 @@ features:
|
|
|
1805
1799
|
commit: "53132416"
|
|
1806
1800
|
issue: null
|
|
1807
1801
|
tests:
|
|
1808
|
-
- "test/visual/layouts.spec.js"
|
|
1802
|
+
- "test/visual/features/layouts.spec.js"
|
|
1809
1803
|
references:
|
|
1810
1804
|
layout: "_layouts/news.html"
|
|
1811
1805
|
|
|
@@ -1824,8 +1818,8 @@ features:
|
|
|
1824
1818
|
commit: "06691f93"
|
|
1825
1819
|
issue: null
|
|
1826
1820
|
tests:
|
|
1827
|
-
- "test/visual/
|
|
1828
|
-
- "test/visual/layouts.spec.js"
|
|
1821
|
+
- "test/visual/features/sidebar-navigation.spec.js"
|
|
1822
|
+
- "test/visual/features/layouts.spec.js"
|
|
1829
1823
|
references:
|
|
1830
1824
|
layout: "_layouts/section.html"
|
|
1831
1825
|
|
|
@@ -1844,7 +1838,7 @@ features:
|
|
|
1844
1838
|
commit: "06691f93"
|
|
1845
1839
|
issue: null
|
|
1846
1840
|
tests:
|
|
1847
|
-
- "test/visual/layouts.spec.js"
|
|
1841
|
+
- "test/visual/features/layouts.spec.js"
|
|
1848
1842
|
references:
|
|
1849
1843
|
layout: "_layouts/article.html"
|
|
1850
1844
|
include: "_includes/components/post-type-badge.html"
|
|
@@ -1864,9 +1858,8 @@ features:
|
|
|
1864
1858
|
commit: "27550dac"
|
|
1865
1859
|
issue: null
|
|
1866
1860
|
tests:
|
|
1867
|
-
- "test/visual/
|
|
1868
|
-
- "test/visual/
|
|
1869
|
-
- "test/visual/theme-colors.spec.js"
|
|
1861
|
+
- "test/visual/features/appearance.spec.js"
|
|
1862
|
+
- "test/visual/features/appearance-snapshot.spec.js"
|
|
1870
1863
|
references:
|
|
1871
1864
|
scripts:
|
|
1872
1865
|
- "assets/js/background-customizer.js"
|
|
@@ -1999,7 +1992,7 @@ features:
|
|
|
1999
1992
|
commit: "7ba0f834"
|
|
2000
1993
|
issue: null
|
|
2001
1994
|
tests:
|
|
2002
|
-
- "test/visual/component-showcase.spec.js"
|
|
1995
|
+
- "test/visual/features/component-showcase.spec.js"
|
|
2003
1996
|
references:
|
|
2004
1997
|
include: "_includes/components/component-showcase.html"
|
|
2005
1998
|
|
|
@@ -2109,3 +2102,38 @@ features:
|
|
|
2109
2102
|
- na: "CI security scan — .github/workflows/secret-scan.yml"
|
|
2110
2103
|
references:
|
|
2111
2104
|
workflow: ".github/workflows/secret-scan.yml"
|
|
2105
|
+
|
|
2106
|
+
- id: ZER0-077
|
|
2107
|
+
title: "Unified Settings Panel"
|
|
2108
|
+
description: "Navbar settings offcanvas reorganized into Appearance, Site, and Developer tabs — consolidated color-mode/skin/background controls, delegated copy-to-clipboard, and existence-gated admin quick links computed in cached Liquid"
|
|
2109
|
+
implemented: true
|
|
2110
|
+
version: "1.25.0"
|
|
2111
|
+
link: "/"
|
|
2112
|
+
docs: "/docs/customization/includes/"
|
|
2113
|
+
tags: [ui, navigation, bootstrap, accessibility]
|
|
2114
|
+
date: 2026-07-02
|
|
2115
|
+
provenance:
|
|
2116
|
+
introduced_in: "1.25.0"
|
|
2117
|
+
pr: 276
|
|
2118
|
+
commit: "3b951604"
|
|
2119
|
+
issue: null
|
|
2120
|
+
tests:
|
|
2121
|
+
- "test/visual/features/settings-panel.spec.js"
|
|
2122
|
+
references:
|
|
2123
|
+
includes:
|
|
2124
|
+
- "_includes/components/info-section.html"
|
|
2125
|
+
- "_includes/components/admin-links.html"
|
|
2126
|
+
- "_includes/components/halfmoon.html"
|
|
2127
|
+
- "_includes/components/env-switcher.html"
|
|
2128
|
+
- "_includes/components/theme-info.html"
|
|
2129
|
+
- "_includes/components/background-settings.html"
|
|
2130
|
+
- "_includes/components/dev-shortcuts.html"
|
|
2131
|
+
scripts:
|
|
2132
|
+
- "assets/js/halfmoon.js"
|
|
2133
|
+
- "assets/js/modules/theme/appearance.js"
|
|
2134
|
+
sass:
|
|
2135
|
+
- "_sass/utilities/_layout.scss"
|
|
2136
|
+
features:
|
|
2137
|
+
- "Appearance tab: one-click color mode, 9 theme skins, background layer opacity, primary color"
|
|
2138
|
+
- "Site tab: environment badge, copyable page URL, quick links, theme & build info, admin links"
|
|
2139
|
+
- "Developer tab: breadcrumb page location, page metadata, source-code shortcuts"
|