jekyll-theme-zer0 1.2.0 → 1.2.1
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 +40 -0
- data/README.md +4 -4
- data/_includes/components/cookie-consent.html +5 -1
- data/_includes/components/dev-shortcuts.html +13 -0
- data/_includes/components/info-section.html +18 -2
- data/_includes/core/footer.html +35 -9
- data/_layouts/welcome.html +2 -2
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 492ac103c8adea1b4edaf2cf925f5a5e02d661e522907dec95cbf08ec0ab0ef6
|
|
4
|
+
data.tar.gz: 5efc803b2288fb9036165becc816e2b1f78cfa2e5aa62368049463e4eb7891c4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 015f1f284b8129ae2788be7be74386818bdcd965b84d24aa4ba600fde13a91e4de2c211c068a28a69a959d30b18946b39cd4677fc21b1e8b2a44f59adf061edb
|
|
7
|
+
data.tar.gz: 06525dbbc0bea7d545293865e69b7c2f95352e213b3eee20db2a966f81f217d2ad88b02587f15f48b8e3d6f7a0adafb57978c5455638fd1a29fe79b980ca15ce
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.2.1] - 2026-04-22
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- Version bump: patch release
|
|
7
|
+
|
|
8
|
+
### Commits in this release
|
|
9
|
+
- 5c04e62 fix(footer,welcome,info): eliminate broken links on bare-minimum sites
|
|
10
|
+
|
|
11
|
+
|
|
3
12
|
## [1.2.0] - 2026-04-22
|
|
4
13
|
|
|
5
14
|
### Changed
|
|
@@ -37,6 +46,37 @@
|
|
|
37
46
|
`Your Site Title`, `My Awesome Site`, `Welcome`, `Untitled`, or empty).
|
|
38
47
|
|
|
39
48
|
### Fixed
|
|
49
|
+
- **Footer Quick Links no longer 404 on bare-minimum sites.**
|
|
50
|
+
`_includes/core/footer.html` previously hard-coded links to
|
|
51
|
+
`/about/`, `/services/`, `/news/`, `/contact/`, `/privacy-policy`, and
|
|
52
|
+
`/terms-of-service` — none of which exist in a 3-file remote-theme
|
|
53
|
+
consumer. Quick Links are now resolved in this order:
|
|
54
|
+
1. `site.footer_quick_links` (array of `{label, url}`) — explicit override
|
|
55
|
+
2. Auto-detection: each candidate link only renders if the target page
|
|
56
|
+
exists in `site.html_pages`
|
|
57
|
+
3. Fallback to `Home` + `Sitemap (XML)` only.
|
|
58
|
+
Privacy Policy / Terms of Service links use the same existence check and
|
|
59
|
+
optionally read from `site.privacy_policy_url` / `site.terms_of_service_url`.
|
|
60
|
+
- **Welcome layout external links now point to existing README anchors.**
|
|
61
|
+
The "Next steps" cards in `_layouts/welcome.html` linked to
|
|
62
|
+
`#content-creation` and `#customisation`, which don't exist in the theme
|
|
63
|
+
README. They now point to `README.md#-quick-start` and
|
|
64
|
+
`README.md#-key-features` respectively.
|
|
65
|
+
- **Theme info admin links are conditional.**
|
|
66
|
+
`_includes/components/info-section.html` previously rendered Admin
|
|
67
|
+
Dashboard links to `/about/config/`, `/about/settings/theme/`,
|
|
68
|
+
`/about/settings/navigation/`, and `/about/settings/environment/`
|
|
69
|
+
unconditionally — guaranteed 404s on bare-minimum sites. The links and
|
|
70
|
+
surrounding section now only render when the corresponding page exists.
|
|
71
|
+
- **Source Code shortcuts skip GitHub buttons when repository is unknown.**
|
|
72
|
+
`_includes/components/dev-shortcuts.html` rendered `https://github.com//blob//`
|
|
73
|
+
URLs when `site.repository` and `site.branch` were empty (typical on bare
|
|
74
|
+
consumer sites). It now hides the GitHub-based buttons and shows a hint
|
|
75
|
+
to set `repository: USER/REPO` in `_config.yml`.
|
|
76
|
+
- **Cookie-consent privacy link is conditional.** The "Learn more in our
|
|
77
|
+
Privacy Policy" anchor in `_includes/components/cookie-consent.html` only
|
|
78
|
+
renders if a `/privacy-policy/` page exists or `site.privacy_policy_url` is
|
|
79
|
+
configured.
|
|
40
80
|
- **Setup banner link.** `_includes/components/setup-banner.html` no longer
|
|
41
81
|
points at the non-existent `/404.html`; it now links to
|
|
42
82
|
`/#setup-wizard`, which is provided by the new welcome layout.
|
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: zer0-mistakes
|
|
3
3
|
sub-title: AI-Native Jekyll Theme
|
|
4
4
|
description: AI-native Jekyll theme for GitHub Pages — Docker-first development, AI-powered installation, multi-agent integration (Copilot, Codex, Cursor, Claude), AI preview-image generation, and AIEO content optimization with Bootstrap 5.3.
|
|
5
|
-
version: 1.2.
|
|
5
|
+
version: 1.2.1
|
|
6
6
|
layout: landing
|
|
7
7
|
tags:
|
|
8
8
|
- jekyll
|
|
@@ -20,7 +20,7 @@ categories:
|
|
|
20
20
|
- bootstrap
|
|
21
21
|
- ai-tooling
|
|
22
22
|
created: 2024-02-10T23:51:11.480Z
|
|
23
|
-
lastmod: 2026-04-
|
|
23
|
+
lastmod: 2026-04-22T03:05:26.000Z
|
|
24
24
|
draft: false
|
|
25
25
|
permalink: /
|
|
26
26
|
slug: zer0
|
|
@@ -1114,7 +1114,7 @@ git push origin feature/awesome-feature
|
|
|
1114
1114
|
|
|
1115
1115
|
| Metric | Value |
|
|
1116
1116
|
|--------|-------|
|
|
1117
|
-
| **Current Version** | 1.2.
|
|
1117
|
+
| **Current Version** | 1.2.1 ([RubyGems](https://rubygems.org/gems/jekyll-theme-zer0), [CHANGELOG](/CHANGELOG)) |
|
|
1118
1118
|
| **Documented Features** | 43 ([Feature Registry](https://github.com/bamr87/zer0-mistakes/blob/main/_data/features.yml)) |
|
|
1119
1119
|
| **Setup Time** | 2-5 minutes ([install.sh benchmarks](https://github.com/bamr87/zer0-mistakes/blob/main/install.sh)) |
|
|
1120
1120
|
| **Documentation Pages** | 70+ ([browse docs](/pages/)) |
|
|
@@ -1165,6 +1165,6 @@ And these AI partners that make zer0-mistakes truly AI-native:
|
|
|
1165
1165
|
|
|
1166
1166
|
**Built with ❤️ — and a little help from our AI partners — for the Jekyll community**
|
|
1167
1167
|
|
|
1168
|
-
**v1.2.
|
|
1168
|
+
**v1.2.1** • [Changelog](CHANGELOG.md) • [License](LICENSE) • [Contributing](CONTRIBUTING.md) • [AI Agent Guide](AGENTS.md)
|
|
1169
1169
|
|
|
1170
1170
|
|
|
@@ -59,7 +59,11 @@ Configuration: Uses site.posthog settings from _config.yml
|
|
|
59
59
|
</p>
|
|
60
60
|
<p class="mb-2 mb-lg-0 small text-white-50">
|
|
61
61
|
This website uses cookies and similar technologies to enhance your browsing experience, analyze traffic, and provide personalized content.
|
|
62
|
-
|
|
62
|
+
{% assign _pp = site.html_pages | where: "url", "/privacy-policy/" | first %}
|
|
63
|
+
{% unless _pp %}{% assign _pp = site.html_pages | where: "url", "/privacy-policy" | first %}{% endunless %}
|
|
64
|
+
{% if _pp or site.privacy_policy_url %}
|
|
65
|
+
<a href="{{ site.privacy_policy_url | default: '/privacy-policy/' | relative_url }}" class="text-white text-decoration-underline">Learn more in our Privacy Policy</a>.
|
|
66
|
+
{% endif %}
|
|
63
67
|
</p>
|
|
64
68
|
</div>
|
|
65
69
|
<div class="col-12 col-lg-4">
|
|
@@ -33,6 +33,11 @@
|
|
|
33
33
|
<div class="dev-shortcuts">
|
|
34
34
|
<div class="d-flex flex-column gap-2">
|
|
35
35
|
|
|
36
|
+
{% comment %} Skip all GitHub-based shortcuts on bare/unconfigured sites where
|
|
37
|
+
site.repository or site.branch are empty (otherwise we render
|
|
38
|
+
https://github.com//blob//path → 404). {% endcomment %}
|
|
39
|
+
{% if site.repository and site.branch %}
|
|
40
|
+
|
|
36
41
|
<!-- Button Group (section title is the parent h6 in info-section.html) -->
|
|
37
42
|
<div class="btn-group-vertical" role="group" aria-label="Source code shortcuts">
|
|
38
43
|
|
|
@@ -109,5 +114,13 @@
|
|
|
109
114
|
|
|
110
115
|
</div>
|
|
111
116
|
|
|
117
|
+
{% else %}
|
|
118
|
+
<p class="small text-body-secondary mb-0">
|
|
119
|
+
<i class="bi bi-info-circle me-1"></i>
|
|
120
|
+
Set <code>repository: USER/REPO</code> in your <code>_config.yml</code>
|
|
121
|
+
to enable source-code shortcuts.
|
|
122
|
+
</p>
|
|
123
|
+
{% endif %}
|
|
124
|
+
|
|
112
125
|
</div>
|
|
113
126
|
</div>
|
|
@@ -108,35 +108,51 @@
|
|
|
108
108
|
</div>
|
|
109
109
|
</div>
|
|
110
110
|
|
|
111
|
-
<!-- Admin Quick Links
|
|
111
|
+
<!-- Admin Quick Links — only render links to pages that actually exist
|
|
112
|
+
in the build (prevents 404s on bare-minimum / remote-theme sites
|
|
113
|
+
that haven't created the admin pages). -->
|
|
114
|
+
{% assign _cfg_page = site.html_pages | where: "url", "/about/config/" | first %}
|
|
115
|
+
{% assign _theme_page = site.html_pages | where: "url", "/about/settings/theme/" | first %}
|
|
116
|
+
{% assign _nav_page = site.html_pages | where: "url", "/about/settings/navigation/" | first %}
|
|
117
|
+
{% if _cfg_page or _theme_page or _nav_page %}
|
|
112
118
|
<div class="mb-3">
|
|
113
119
|
<h6 class="text-body-secondary small text-uppercase fw-semibold mb-2">
|
|
114
120
|
<i class="bi bi-speedometer2 me-1"></i>Admin Dashboard
|
|
115
121
|
</h6>
|
|
116
122
|
<div class="list-group list-group-flush small">
|
|
123
|
+
{% if _cfg_page %}
|
|
117
124
|
<a href="{{ '/about/config/' | relative_url }}" class="list-group-item list-group-item-action d-flex align-items-center px-0">
|
|
118
125
|
<i class="bi bi-gear me-2 text-body-secondary"></i>Configuration
|
|
119
126
|
</a>
|
|
127
|
+
{% endif %}
|
|
128
|
+
{% if _theme_page %}
|
|
120
129
|
<a href="{{ '/about/settings/theme/' | relative_url }}" class="list-group-item list-group-item-action d-flex align-items-center px-0">
|
|
121
130
|
<i class="bi bi-palette me-2 text-body-secondary"></i>Theme Customizer
|
|
122
131
|
</a>
|
|
132
|
+
{% endif %}
|
|
133
|
+
{% if _nav_page %}
|
|
123
134
|
<a href="{{ '/about/settings/navigation/' | relative_url }}" class="list-group-item list-group-item-action d-flex align-items-center px-0">
|
|
124
135
|
<i class="bi bi-signpost-2 me-2 text-body-secondary"></i>Navigation Editor
|
|
125
136
|
</a>
|
|
137
|
+
{% endif %}
|
|
126
138
|
</div>
|
|
127
139
|
</div>
|
|
140
|
+
{% endif %}
|
|
128
141
|
</div>
|
|
129
142
|
|
|
130
143
|
<!-- Environment Tab -->
|
|
131
144
|
<div class="tab-pane fade" id="environment-pane" role="tabpanel" aria-labelledby="environment-tab" tabindex="0">
|
|
132
145
|
{% include components/env-switcher.html %}
|
|
133
146
|
|
|
134
|
-
<!-- Admin Link -->
|
|
147
|
+
<!-- Admin Link — only when target page exists -->
|
|
148
|
+
{% assign _env_page = site.html_pages | where: "url", "/about/settings/environment/" | first %}
|
|
149
|
+
{% if _env_page %}
|
|
135
150
|
<div class="mt-4 pt-3 border-top">
|
|
136
151
|
<a href="{{ '/about/settings/environment/' | relative_url }}" class="btn btn-outline-secondary btn-sm w-100">
|
|
137
152
|
<i class="bi bi-box-arrow-up-right me-1"></i>Full Environment & Build Info
|
|
138
153
|
</a>
|
|
139
154
|
</div>
|
|
155
|
+
{% endif %}
|
|
140
156
|
</div>
|
|
141
157
|
|
|
142
158
|
<!-- Developer Tab -->
|
data/_includes/core/footer.html
CHANGED
|
@@ -80,16 +80,33 @@
|
|
|
80
80
|
{% if site.email %}<p class="mb-0"><a href="mailto:{{ site.email }}" class="text-light text-decoration-none">{{ site.email }}</a></p>{% endif %}
|
|
81
81
|
</div>
|
|
82
82
|
|
|
83
|
-
<!-- Quick Links
|
|
83
|
+
<!-- Quick Links
|
|
84
|
+
Resolution order:
|
|
85
|
+
1. site.footer_quick_links (array of {label, url}) — explicit override
|
|
86
|
+
2. Auto-detection: only render links whose target pages
|
|
87
|
+
actually exist in the build. Prevents 404s on bare-minimum
|
|
88
|
+
sites that haven't created /about/, /services/, etc. -->
|
|
84
89
|
<div class="col-12 col-md-6 col-lg-3 mb-3">
|
|
85
90
|
<h5 class="text-uppercase mb-3">Quick Links</h5>
|
|
86
91
|
<ul class="list-unstyled" aria-label="Footer quick links">
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
{% if site.footer_quick_links %}
|
|
93
|
+
{% for link in site.footer_quick_links %}
|
|
94
|
+
<li><a href="{{ link.url | relative_url }}" class="text-light text-decoration-none">{{ link.label }}</a></li>
|
|
95
|
+
{% endfor %}
|
|
96
|
+
{% else %}
|
|
97
|
+
<li><a href="{{ '/' | relative_url }}" class="text-light text-decoration-none">Home</a></li>
|
|
98
|
+
{% assign _candidate_links = "About,/about/|Services,/services/|News,/news/|Contact,/contact/" | split: "|" %}
|
|
99
|
+
{% for entry in _candidate_links %}
|
|
100
|
+
{% assign _parts = entry | split: "," %}
|
|
101
|
+
{% assign _label = _parts[0] %}
|
|
102
|
+
{% assign _url = _parts[1] %}
|
|
103
|
+
{% assign _page = site.html_pages | where: "url", _url | first %}
|
|
104
|
+
{% if _page %}
|
|
105
|
+
<li><a href="{{ _url | relative_url }}" class="text-light text-decoration-none">{{ _label }}</a></li>
|
|
106
|
+
{% endif %}
|
|
107
|
+
{% endfor %}
|
|
108
|
+
<li><a href="{{ '/sitemap.xml' | relative_url }}" class="text-light text-decoration-none">Sitemap (XML)</a></li>
|
|
109
|
+
{% endif %}
|
|
93
110
|
</ul>
|
|
94
111
|
</div>
|
|
95
112
|
|
|
@@ -151,8 +168,17 @@
|
|
|
151
168
|
</div>
|
|
152
169
|
<div class="col-md-4 text-md-end">
|
|
153
170
|
<ul class="list-inline mb-0">
|
|
154
|
-
|
|
155
|
-
|
|
171
|
+
{% comment %} Only render policy links whose pages exist (or that are explicitly configured). {% endcomment %}
|
|
172
|
+
{% assign _privacy = site.html_pages | where: "url", "/privacy-policy/" | first %}
|
|
173
|
+
{% unless _privacy %}{% assign _privacy = site.html_pages | where: "url", "/privacy-policy" | first %}{% endunless %}
|
|
174
|
+
{% if _privacy or site.privacy_policy_url %}
|
|
175
|
+
<li class="list-inline-item"><a href="{{ site.privacy_policy_url | default: '/privacy-policy' | relative_url }}" class="text-light text-decoration-none">Privacy Policy</a></li>
|
|
176
|
+
{% endif %}
|
|
177
|
+
{% assign _terms = site.html_pages | where: "url", "/terms-of-service/" | first %}
|
|
178
|
+
{% unless _terms %}{% assign _terms = site.html_pages | where: "url", "/terms-of-service" | first %}{% endunless %}
|
|
179
|
+
{% if _terms or site.terms_of_service_url %}
|
|
180
|
+
<li class="list-inline-item"><a href="{{ site.terms_of_service_url | default: '/terms-of-service' | relative_url }}" class="text-light text-decoration-none">Terms of Service</a></li>
|
|
181
|
+
{% endif %}
|
|
156
182
|
<li class="list-inline-item">
|
|
157
183
|
<a href="#" class="text-light text-decoration-none" data-bs-toggle="modal" data-bs-target="#cookieSettingsModal">
|
|
158
184
|
Cookie Preferences
|
data/_layouts/welcome.html
CHANGED
|
@@ -272,7 +272,7 @@ is set in `_config.yml`.
|
|
|
272
272
|
<code>_about/</code>. Enable them in <code>_config.yml</code>.
|
|
273
273
|
</p>
|
|
274
274
|
<a class="btn btn-sm btn-outline-primary"
|
|
275
|
-
href="https://github.com/bamr87/zer0-mistakes
|
|
275
|
+
href="https://github.com/bamr87/zer0-mistakes/blob/main/README.md#-quick-start"
|
|
276
276
|
target="_blank" rel="noopener">
|
|
277
277
|
Content guide <i class="bi bi-box-arrow-up-right"></i>
|
|
278
278
|
</a>
|
|
@@ -290,7 +290,7 @@ is set in `_config.yml`.
|
|
|
290
290
|
your repo to override theme styles without forking.
|
|
291
291
|
</p>
|
|
292
292
|
<a class="btn btn-sm btn-outline-success"
|
|
293
|
-
href="https://github.com/bamr87/zer0-mistakes
|
|
293
|
+
href="https://github.com/bamr87/zer0-mistakes/blob/main/README.md#-key-features"
|
|
294
294
|
target="_blank" rel="noopener">
|
|
295
295
|
Customisation <i class="bi bi-box-arrow-up-right"></i>
|
|
296
296
|
</a>
|