jekyll-theme-zer0 1.28.0 → 1.30.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.
Files changed (191) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1143 -13
  3. data/_data/README.md +2 -0
  4. data/_data/ai.yml +5 -3
  5. data/_data/ai_pricing.yml +36 -0
  6. data/_data/backlog.yml +507 -2
  7. data/_data/consumers.yml +157 -9
  8. data/_data/features.yml +303 -20
  9. data/_data/feedback_types.yml +17 -12
  10. data/_data/i18n/fr.yml +12 -7
  11. data/_data/i18n/manifest.yml +39 -12
  12. data/_data/ingredient_densities.yml +122 -0
  13. data/_data/landing.yml +5 -2
  14. data/_data/navigation/main.yml +16 -0
  15. data/_data/navigation/quickstart.yml +4 -0
  16. data/_data/recipe_courses.yml +64 -0
  17. data/_data/site_builder.yml +874 -0
  18. data/_data/theme-manifest.yml +160 -124
  19. data/_data/ui-text.yml +26 -0
  20. data/_includes/README.md +26 -2
  21. data/_includes/analytics/posthog.html +2 -2
  22. data/_includes/components/admin-links.html +2 -2
  23. data/_includes/components/admin-tabs.html +2 -2
  24. data/_includes/components/ai-chat.html +14 -11
  25. data/_includes/components/analytics-dashboard.html +8 -8
  26. data/_includes/components/author-bio.html +1 -1
  27. data/_includes/components/author-card.html +10 -2
  28. data/_includes/components/author-eeat.html +4 -4
  29. data/_includes/components/background-customizer.html +10 -10
  30. data/_includes/components/background-image.html +114 -0
  31. data/_includes/components/background-settings.html +28 -15
  32. data/_includes/components/collection-manager.html +5 -5
  33. data/_includes/components/component-showcase.html +13 -13
  34. data/_includes/components/config-editor.html +12 -12
  35. data/_includes/components/config-viewer.html +8 -8
  36. data/_includes/components/cookie-consent.html +15 -15
  37. data/_includes/components/cta-button.html +7 -2
  38. data/_includes/components/dev-shortcuts.html +7 -7
  39. data/_includes/components/env-dashboard.html +8 -8
  40. data/_includes/components/env-switcher.html +9 -9
  41. data/_includes/components/feature-card.html +2 -2
  42. data/_includes/components/halfmoon.html +2 -2
  43. data/_includes/components/info-section.html +42 -37
  44. data/_includes/components/js-cdn.html +15 -15
  45. data/_includes/components/language-toggle.html +168 -21
  46. data/_includes/components/mermaid.html +72 -435
  47. data/_includes/components/nanobar.html +5 -5
  48. data/_includes/components/nav-editor.html +2 -2
  49. data/_includes/components/nav-export.html +2 -2
  50. data/_includes/components/nav-overview.html +2 -2
  51. data/_includes/components/page-feedback.html +45 -30
  52. data/_includes/components/page-views-init.html +55 -0
  53. data/_includes/components/page-views.html +33 -0
  54. data/_includes/components/post-card.html +22 -22
  55. data/_includes/components/post-type-badge.html +2 -2
  56. data/_includes/components/powered-by.html +2 -2
  57. data/_includes/components/preview-image.html +6 -0
  58. data/_includes/components/quick-index.html +2 -2
  59. data/_includes/components/recipe-card.html +67 -0
  60. data/_includes/components/recipe-duration.html +50 -0
  61. data/_includes/components/recipe-grams.html +58 -0
  62. data/_includes/components/recipe-index.html +96 -0
  63. data/_includes/components/recipe-ingredients.html +90 -0
  64. data/_includes/components/recipe-meta.html +96 -0
  65. data/_includes/components/recipe-nutrition.html +57 -0
  66. data/_includes/components/recipe-qty.html +73 -0
  67. data/_includes/components/recipe-ratio.html +151 -0
  68. data/_includes/components/recipe-scaler.html +73 -0
  69. data/_includes/components/recipe-steps.html +86 -0
  70. data/_includes/components/recipe-temp.html +45 -0
  71. data/_includes/components/search-modal.html +29 -4
  72. data/_includes/components/searchbar.html +2 -2
  73. data/_includes/components/shortcuts-modal.html +3 -0
  74. data/_includes/components/svg-background.html +2 -2
  75. data/_includes/components/theme-customizer.html +2 -2
  76. data/_includes/components/theme-info.html +14 -7
  77. data/_includes/components/theme-preview-gallery.html +22 -22
  78. data/_includes/content/giscus.html +2 -2
  79. data/_includes/content/intro.html +8 -8
  80. data/_includes/content/jsonld-faq.html +2 -2
  81. data/_includes/content/jsonld-software.html +24 -5
  82. data/_includes/content/seo.html +4 -4
  83. data/_includes/content/sitemap.html +27 -27
  84. data/_includes/content/toc.html +183 -183
  85. data/_includes/core/branding.html +6 -6
  86. data/_includes/core/console-capture.html +32 -74
  87. data/_includes/core/favicon.html +49 -7
  88. data/_includes/core/footer-fabs.html +17 -3
  89. data/_includes/core/footer.html +49 -34
  90. data/_includes/core/head.html +110 -86
  91. data/_includes/core/header.html +76 -54
  92. data/_includes/docs/bootstrap-docs.html +8 -8
  93. data/_includes/landing/landing-install-cards.html +2 -2
  94. data/_includes/landing/landing-quick-links.html +1 -1
  95. data/_includes/navigation/admin-nav.html +2 -2
  96. data/_includes/navigation/nav-tree.html +8 -8
  97. data/_includes/navigation/navbar.html +12 -12
  98. data/_includes/navigation/section-sidebar.html +109 -27
  99. data/_includes/navigation/sidebar-config.html +36 -2
  100. data/_includes/navigation/sidebar-left.html +17 -16
  101. data/_includes/navigation/sidebar-right.html +8 -7
  102. data/_includes/obsidian/full-graph.html +2 -2
  103. data/_includes/setup/claude-session.html +72 -0
  104. data/_includes/setup/prereq-checklist.html +90 -0
  105. data/_includes/setup/wizard.html +924 -222
  106. data/_includes/stats/stats-categories.html +8 -8
  107. data/_includes/stats/stats-header.html +14 -14
  108. data/_includes/stats/stats-metrics.html +14 -14
  109. data/_includes/stats/stats-no-data.html +12 -12
  110. data/_includes/stats/stats-overview.html +6 -6
  111. data/_includes/stats/stats-tags.html +8 -8
  112. data/_layouts/404.html +38 -24
  113. data/_layouts/README.md +2 -0
  114. data/_layouts/admin.html +24 -24
  115. data/_layouts/article.html +43 -33
  116. data/_layouts/author.html +20 -20
  117. data/_layouts/authors.html +2 -2
  118. data/_layouts/book-abc.html +12 -12
  119. data/_layouts/book-story.html +15 -15
  120. data/_layouts/book.html +12 -12
  121. data/_layouts/collection.html +33 -33
  122. data/_layouts/cookbook.html +88 -0
  123. data/_layouts/default.html +31 -28
  124. data/_layouts/home.html +23 -23
  125. data/_layouts/index.html +10 -10
  126. data/_layouts/landing.html +17 -17
  127. data/_layouts/news.html +44 -44
  128. data/_layouts/note.html +38 -38
  129. data/_layouts/notebook.html +34 -34
  130. data/_layouts/recipe.html +274 -0
  131. data/_layouts/root.html +92 -55
  132. data/_layouts/section.html +62 -33
  133. data/_layouts/setup.html +3 -3
  134. data/_layouts/sitemap-collection.html +49 -49
  135. data/_layouts/stats.html +40 -40
  136. data/_layouts/tag.html +12 -12
  137. data/_layouts/welcome.html +21 -21
  138. data/_sass/components/_callout.scss +1 -1
  139. data/_sass/components/_footer.scss +37 -1
  140. data/_sass/components/_mermaid.scss +375 -0
  141. data/_sass/components/_page-views.scss +36 -0
  142. data/_sass/components/_recipe.scss +506 -0
  143. data/_sass/components/_setup-wizard.scss +764 -0
  144. data/_sass/components/_ui-enhancements.scss +6 -6
  145. data/_sass/core/_navbar.scss +261 -46
  146. data/_sass/layouts/_landing.scss +2 -2
  147. data/_sass/layouts/_navbar-extras.scss +14 -4
  148. data/_sass/tokens/_color.scss +6 -0
  149. data/_sass/tokens/_index.scss +2 -0
  150. data/_sass/tokens/_radius.scss +21 -0
  151. data/_sass/tokens/_typography.scss +4 -0
  152. data/_sass/utilities/_focus.scss +14 -0
  153. data/assets/css/main.scss +4 -0
  154. data/assets/js/ai-chat.js +47 -5
  155. data/assets/js/fleet-feedback-capture.js +124 -0
  156. data/assets/js/fleet-feedback.js +853 -0
  157. data/assets/js/mermaid-diagrams.js +1267 -0
  158. data/assets/js/modules/navigation/config.js +9 -6
  159. data/assets/js/modules/navigation/navbar.js +55 -0
  160. data/assets/js/modules/navigation/scroll-spy.js +315 -80
  161. data/assets/js/modules/theme/appearance.js +8 -2
  162. data/assets/js/obsidian-wiki-links.js +8 -3
  163. data/assets/js/page-feedback.js +125 -192
  164. data/assets/js/page-views.js +372 -0
  165. data/assets/js/recipe-scaler.js +501 -0
  166. data/assets/js/search-modal.js +36 -0
  167. data/assets/js/setup-wizard.js +2279 -226
  168. data/assets/js/site-builder.js +1834 -0
  169. data/assets/js/ui-enhancements.js +11 -3
  170. data/scripts/README.md +44 -0
  171. data/scripts/ai/README.md +38 -0
  172. data/scripts/ai/api_call.rb +124 -0
  173. data/scripts/ai/usage.rb +314 -0
  174. data/scripts/ai/usage_report.rb +225 -0
  175. data/scripts/bin/audit-consumer +39 -7
  176. data/scripts/bin/giscus-discussions +213 -14
  177. data/scripts/bin/manifest +35 -12
  178. data/scripts/ci/agent_review_result.py +164 -0
  179. data/scripts/ci/test_agent_review_result.py +172 -0
  180. data/scripts/ci/test_visual_evidence_autogen.py +341 -0
  181. data/scripts/ci/visual_evidence_autogen.py +1060 -0
  182. data/scripts/content-review.rb +20 -1
  183. data/scripts/design-system-check.rb +170 -0
  184. data/scripts/lib/audit.sh +42 -2
  185. data/scripts/lint-liquid-raw.rb +137 -0
  186. data/scripts/test/integration/mermaid +22 -8
  187. data/scripts/test/lib/run_tests.sh +3 -1
  188. data/scripts/test/lib/test_agent_review_result.sh +27 -0
  189. data/scripts/test/lib/test_visual_evidence_autogen.sh +24 -0
  190. data/scripts/translate.rb +94 -16
  191. metadata +48 -2
@@ -1,4 +1,4 @@
1
- <!--
1
+ {% comment %}
2
2
  ===================================================================
3
3
  CONFIG EDITOR — Form-based configuration builder
4
4
  ===================================================================
@@ -11,15 +11,15 @@
11
11
  Dependencies: Bootstrap 5.3, assets/js/config-utility.js
12
12
  Data source: site.* variables pre-populate fields
13
13
  ===================================================================
14
- -->
14
+ {% endcomment %}
15
15
 
16
16
  <div id="configEditor">
17
17
  <div class="row">
18
18
 
19
- <!-- ── Left: Form ────────────────────────────────────────────────── -->
19
+ {% comment %} ── Left: Form ────────────────────────────────────────────────── {% endcomment %}
20
20
  <div class="col-lg-6 mb-4 mb-lg-0">
21
21
 
22
- <!-- Site Identity -->
22
+ {% comment %} Site Identity {% endcomment %}
23
23
  <div class="card mb-3">
24
24
  <div class="card-header">
25
25
  <i class="bi bi-person-badge me-1"></i> Site Identity
@@ -53,7 +53,7 @@
53
53
  </div>
54
54
  </div>
55
55
 
56
- <!-- GitHub -->
56
+ {% comment %} GitHub {% endcomment %}
57
57
  <div class="card mb-3">
58
58
  <div class="card-header">
59
59
  <i class="bi bi-github me-1"></i> GitHub
@@ -79,7 +79,7 @@
79
79
  </div>
80
80
  </div>
81
81
 
82
- <!-- URLs & Deployment -->
82
+ {% comment %} URLs & Deployment {% endcomment %}
83
83
  <div class="card mb-3">
84
84
  <div class="card-header">
85
85
  <i class="bi bi-link-45deg me-1"></i> URLs &amp; Deployment
@@ -121,7 +121,7 @@
121
121
  </div>
122
122
  </div>
123
123
 
124
- <!-- Personalization -->
124
+ {% comment %} Personalization {% endcomment %}
125
125
  <div class="card mb-3">
126
126
  <div class="card-header">
127
127
  <i class="bi bi-palette me-1"></i> Personalization
@@ -151,7 +151,7 @@
151
151
  </div>
152
152
  </div>
153
153
 
154
- <!-- Analytics -->
154
+ {% comment %} Analytics {% endcomment %}
155
155
  <div class="card mb-3">
156
156
  <div class="card-header">
157
157
  <i class="bi bi-graph-up me-1"></i> Analytics
@@ -174,9 +174,9 @@
174
174
  </div>
175
175
  </div>
176
176
 
177
- </div><!-- /col form -->
177
+ </div>{% comment %} /col form {% endcomment %}
178
178
 
179
- <!-- ── Right: Live YAML Preview ──────────────────────────────────── -->
179
+ {% comment %} ── Right: Live YAML Preview ──────────────────────────────────── {% endcomment %}
180
180
  <div class="col-lg-6">
181
181
  <div class="sticky-top" style="top:80px">
182
182
  <div class="card">
@@ -201,7 +201,7 @@
201
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
202
  </div>
203
203
  </div>
204
- </div><!-- /col preview -->
204
+ </div>{% comment %} /col preview {% endcomment %}
205
205
 
206
- </div><!-- /row -->
206
+ </div>{% comment %} /row {% endcomment %}
207
207
  </div>
@@ -1,4 +1,4 @@
1
- <!--
1
+ {% comment %}
2
2
  ===================================================================
3
3
  CONFIG VIEWER — Accordion-based live configuration browser
4
4
  ===================================================================
@@ -12,9 +12,9 @@
12
12
  Dependencies: Bootstrap 5.3, assets/js/config-utility.js
13
13
  Data source: site.* variables (Liquid at build time)
14
14
  ===================================================================
15
- -->
15
+ {% endcomment %}
16
16
 
17
- <!-- ── Search bar ─────────────────────────────────────────────────── -->
17
+ {% comment %} ── Search bar ─────────────────────────────────────────────────── {% endcomment %}
18
18
  <div class="input-group mb-3">
19
19
  <span class="input-group-text"><i class="bi bi-search"></i></span>
20
20
  <input type="text" class="form-control" id="cfg-search"
@@ -24,7 +24,7 @@
24
24
  </button>
25
25
  </div>
26
26
 
27
- <!-- ── Toolbar ─────────────────────────────────────────────────────── -->
27
+ {% comment %} ── Toolbar ─────────────────────────────────────────────────────── {% endcomment %}
28
28
  <div class="d-flex justify-content-between align-items-center mb-3">
29
29
  <div class="btn-group btn-group-sm" role="group">
30
30
  <button class="btn btn-outline-secondary" id="cfg-expand-all" title="Expand all sections">
@@ -39,7 +39,7 @@
39
39
  </button>
40
40
  </div>
41
41
 
42
- <!-- ── Accordion ───────────────────────────────────────────────────── -->
42
+ {% comment %} ── Accordion ───────────────────────────────────────────────────── {% endcomment %}
43
43
  <div class="accordion" id="configAccordion">
44
44
 
45
45
  {% comment %} ──────────── Section: Site Identity ──────────── {% endcomment %}
@@ -473,7 +473,7 @@
473
473
  </div>
474
474
  {% endif %}
475
475
 
476
- </div><!-- /configAccordion -->
476
+ </div>{% comment %} /configAccordion {% endcomment %}
477
477
 
478
- <!-- ── Hidden full YAML for copy-all (populated by parent page) ──── -->
479
- <!-- The parent page must render: <pre id="cfg-full-yaml" class="d-none">…</pre> -->
478
+ {% comment %} ── Hidden full YAML for copy-all (populated by parent page) ──── {% endcomment %}
479
+ {% comment %} The parent page must render: <pre id="cfg-full-yaml" class="d-none">…</pre> {% endcomment %}
@@ -1,5 +1,5 @@
1
1
  {% comment %} Feature: ZER0-007 {% endcomment %}
2
- <!--
2
+ {% comment %}
3
3
  ===================================================================
4
4
  COOKIE CONSENT - GDPR/CCPA Compliant Privacy Management
5
5
  ===================================================================
@@ -33,7 +33,7 @@
33
33
  - High contrast design for visibility
34
34
  - Semantic HTML structure
35
35
  ===================================================================
36
- -->
36
+ {% endcomment %}
37
37
 
38
38
  {% comment %}
39
39
  Cookie Consent Banner for Zer0-Mistakes Jekyll Theme
@@ -84,15 +84,15 @@ Configuration: Uses site.posthog settings from _config.yml
84
84
  </div>
85
85
  </div>
86
86
 
87
- <!-- Cookie Settings Modal -->
87
+ {% comment %} Cookie Settings Modal {% endcomment %}
88
88
  <div class="modal fade" id="cookieSettingsModal" tabindex="-1" aria-labelledby="cookieSettingsModalLabel" aria-hidden="true">
89
89
  <div class="modal-dialog modal-lg">
90
90
  <div class="modal-content">
91
91
  <div class="modal-header">
92
- <h5 class="modal-title" id="cookieSettingsModalLabel">
92
+ <h2 class="modal-title h5" id="cookieSettingsModalLabel">
93
93
  <i class="bi bi-shield-check me-2"></i>
94
94
  Cookie Preferences
95
- </h5>
95
+ </h2>
96
96
  <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
97
97
  </div>
98
98
  <div class="modal-body">
@@ -102,10 +102,10 @@ Configuration: Uses site.posthog settings from _config.yml
102
102
 
103
103
  <div class="cookie-category mb-4">
104
104
  <div class="d-flex justify-content-between align-items-center mb-2">
105
- <h6 class="mb-0">
105
+ <h3 class="h6 mb-0">
106
106
  <i class="bi bi-shield-fill-check text-success me-2"></i>
107
107
  Essential Cookies
108
- </h6>
108
+ </h3>
109
109
  <span class="badge bg-success">Always Active</span>
110
110
  </div>
111
111
  <p class="small text-muted mb-0">
@@ -115,10 +115,10 @@ Configuration: Uses site.posthog settings from _config.yml
115
115
 
116
116
  <div class="cookie-category mb-4">
117
117
  <div class="d-flex justify-content-between align-items-center mb-2">
118
- <h6 class="mb-0">
118
+ <h3 class="h6 mb-0">
119
119
  <i class="bi bi-graph-up me-2"></i>
120
120
  Analytics Cookies
121
- </h6>
121
+ </h3>
122
122
  <div class="form-check form-switch">
123
123
  <input class="form-check-input" type="checkbox" id="analyticsCookies" checked>
124
124
  <label class="form-check-label" for="analyticsCookies">Enable</label>
@@ -138,10 +138,10 @@ Configuration: Uses site.posthog settings from _config.yml
138
138
 
139
139
  <div class="cookie-category mb-4">
140
140
  <div class="d-flex justify-content-between align-items-center mb-2">
141
- <h6 class="mb-0">
141
+ <h3 class="h6 mb-0">
142
142
  <i class="bi bi-megaphone me-2"></i>
143
143
  Marketing Cookies
144
- </h6>
144
+ </h3>
145
145
  <div class="form-check form-switch">
146
146
  <input class="form-check-input" type="checkbox" id="marketingCookies">
147
147
  <label class="form-check-label" for="marketingCookies">Enable</label>
@@ -156,11 +156,11 @@ Configuration: Uses site.posthog settings from _config.yml
156
156
  </div>
157
157
 
158
158
  <div class="bg-body p-3 rounded">
159
- <h6 class="text-body mb-2">
159
+ <h3 class="h6 text-body mb-2">
160
160
  <i class="bi bi-info-circle me-2"></i>
161
161
  Your Privacy Rights
162
- </h6>
163
- <ul class="small text-dark mb-0 ps-3">
162
+ </h3>
163
+ <ul class="small text-body mb-0 ps-3">
164
164
  <li>You can withdraw consent at any time by updating your cookie preferences</li>
165
165
  <li>Essential cookies cannot be disabled as they are necessary for site functionality</li>
166
166
  <li>Disabling analytics cookies will prevent us from improving your experience</li>
@@ -381,7 +381,7 @@ Configuration: Uses site.posthog settings from _config.yml
381
381
  }
382
382
 
383
383
  .cookie-category {
384
- border: 1px solid #dee2e6;
384
+ border: 1px solid var(--bs-border-color);
385
385
  border-radius: 8px;
386
386
  padding: 1rem;
387
387
  }
@@ -8,7 +8,11 @@
8
8
  Parameters
9
9
  include.label (string) — visible button text (required)
10
10
  include.url (string) — destination URL (required)
11
- include.variant (string) — `primary` | `secondary` | `outline` | `light` (default: `primary`)
11
+ include.variant (string) — `primary` | `secondary` | `outline` | `outline-light`
12
+ | `light` (default: `primary`). `outline` is an
13
+ outlined PRIMARY button, readable on the normal
14
+ page background; use `outline-light` only on a
15
+ dark/inverse surface, where white-on-dark works.
12
16
  include.size (string) — `sm` | `md` (default) | `lg`
13
17
  include.icon (string) — Bootstrap Icon class (optional)
14
18
  include.external (bool) — opens in new tab with rel=noopener (default: false)
@@ -24,7 +28,8 @@
24
28
  {%- case variant -%}
25
29
  {%- when "primary" -%}{%- assign btn_class = "btn-primary" -%}
26
30
  {%- when "secondary" -%}{%- assign btn_class = "btn-secondary" -%}
27
- {%- when "outline" -%}{%- assign btn_class = "btn-outline-light" -%}
31
+ {%- when "outline" -%}{%- assign btn_class = "btn-outline-primary" -%}
32
+ {%- when "outline-light" -%}{%- assign btn_class = "btn-outline-light" -%}
28
33
  {%- when "light" -%}{%- assign btn_class = "btn-light" -%}
29
34
  {%- else -%}{%- assign btn_class = "btn-primary" -%}
30
35
  {%- endcase -%}
@@ -1,5 +1,5 @@
1
1
  {% comment %} Feature: ZER0-077 {% endcomment %}
2
- <!--
2
+ {% comment %}
3
3
  ===================================================================
4
4
  DEV SHORTCUTS - Source Code Quick Access Links
5
5
  ===================================================================
@@ -13,7 +13,7 @@
13
13
  - page.collection, page.path
14
14
  - is_production (from env-detect.html in info-section.html) — vscode:// link only when not production
15
15
  ===================================================================
16
- -->
16
+ {% endcomment %}
17
17
 
18
18
  {% comment %} Determine page directory for collections (same segments as GitHub blob links) {% endcomment %}
19
19
  {% if page.collection %}
@@ -39,10 +39,10 @@
39
39
  https://github.com//blob//path → 404). {% endcomment %}
40
40
  {% if site.repository and site.branch %}
41
41
 
42
- <!-- Button Group (section title is the parent h6 in info-section.html) -->
42
+ {% comment %} Button Group (section title is the parent h6 in info-section.html) {% endcomment %}
43
43
  <div class="btn-group-vertical" role="group" aria-label="Source code shortcuts">
44
44
 
45
- <!-- View on GitHub -->
45
+ {% comment %} View on GitHub {% endcomment %}
46
46
  <a href="https://github.com/{{ site.repository }}/blob/{{ site.branch }}/{{ rel_site_path }}"
47
47
  target="_blank"
48
48
  rel="noopener"
@@ -55,7 +55,7 @@
55
55
  <i class="bi bi-box-arrow-up-right text-body-secondary small"></i>
56
56
  </a>
57
57
 
58
- <!-- Edit in GitHub.dev -->
58
+ {% comment %} Edit in GitHub.dev {% endcomment %}
59
59
  <a href="https://github.dev/{{ site.repository }}/blob/{{ site.branch }}/{{ rel_site_path }}"
60
60
  target="_blank"
61
61
  rel="noopener"
@@ -85,14 +85,14 @@
85
85
 
86
86
  </div>
87
87
 
88
- <!-- Config Links -->
88
+ {% comment %} Config Links {% endcomment %}
89
89
  <small class="text-body-secondary fw-medium text-uppercase mt-2">
90
90
  <i class="bi bi-sliders me-1"></i>Configuration
91
91
  </small>
92
92
 
93
93
  <div class="btn-group-vertical" role="group" aria-label="Configuration shortcuts">
94
94
 
95
- <!-- Site Config -->
95
+ {% comment %} Site Config {% endcomment %}
96
96
  <a href="https://github.com/{{ site.repository }}/blob/{{ site.branch }}/_config.yml"
97
97
  target="_blank"
98
98
  rel="noopener"
@@ -1,4 +1,4 @@
1
- <!--
1
+ {% comment %}
2
2
  ===================================================================
3
3
  ENV DASHBOARD — Full environment and build information
4
4
  ===================================================================
@@ -12,9 +12,9 @@
12
12
  Dependencies: Bootstrap 5 card/table, Jekyll variables
13
13
  Used by: pages/_about/settings/environment.md
14
14
  ===================================================================
15
- -->
15
+ {% endcomment %}
16
16
 
17
- <!-- Environment Overview Cards -->
17
+ {% comment %} Environment Overview Cards {% endcomment %}
18
18
  <div class="row g-3 mb-4">
19
19
  <div class="col-6 col-lg-3">
20
20
  <div class="card text-center h-100 border-primary">
@@ -56,7 +56,7 @@
56
56
 
57
57
  <div class="row g-4">
58
58
 
59
- <!-- Site Configuration -->
59
+ {% comment %} Site Configuration {% endcomment %}
60
60
  <div class="col-lg-6">
61
61
  <div class="card h-100">
62
62
  <div class="card-header"><i class="bi bi-globe me-1"></i> Site Configuration</div>
@@ -76,7 +76,7 @@
76
76
  </div>
77
77
  </div>
78
78
 
79
- <!-- Theme & Repository Info -->
79
+ {% comment %} Theme & Repository Info {% endcomment %}
80
80
  <div class="col-lg-6">
81
81
  <div class="card h-100">
82
82
  <div class="card-header"><i class="bi bi-palette me-1"></i> Theme & Repository</div>
@@ -105,7 +105,7 @@
105
105
  </div>
106
106
  </div>
107
107
 
108
- <!-- Plugins List -->
108
+ {% comment %} Plugins List {% endcomment %}
109
109
  <h5 class="mt-4 mb-3"><i class="bi bi-plug me-1"></i> Active Plugins</h5>
110
110
  {% if site.plugins %}
111
111
  <div class="row g-2">
@@ -124,7 +124,7 @@
124
124
  <p class="text-body-secondary">No plugins configured.</p>
125
125
  {% endif %}
126
126
 
127
- <!-- URL Comparison (Dev vs Production) -->
127
+ {% comment %} URL Comparison (Dev vs Production) {% endcomment %}
128
128
  <h5 class="mt-4 mb-3"><i class="bi bi-link-45deg me-1"></i> URL Configuration</h5>
129
129
  <div class="table-responsive">
130
130
  <table class="table table-sm">
@@ -143,7 +143,7 @@
143
143
  </table>
144
144
  </div>
145
145
 
146
- <!-- Quick links back to admin -->
146
+ {% comment %} Quick links back to admin {% endcomment %}
147
147
  <div class="mt-4">
148
148
  <a href="{{ '/about/config/' | relative_url }}" class="btn btn-outline-secondary btn-sm me-2">
149
149
  <i class="bi bi-gear me-1"></i> Full Configuration
@@ -1,5 +1,5 @@
1
1
  {% comment %} Feature: ZER0-077 {% endcomment %}
2
- <!--
2
+ {% comment %}
3
3
  ===================================================================
4
4
  ENVIRONMENT SWITCHER - Dev/Prod URL Display and Toggle
5
5
  ===================================================================
@@ -25,7 +25,7 @@
25
25
  Build time / Jekyll version live in theme-info.html (Theme & Build
26
26
  section) — not duplicated here.
27
27
  ===================================================================
28
- -->
28
+ {% endcomment %}
29
29
 
30
30
  {% assign dev_port = site.port | default: 4000 %}
31
31
  {% comment %}Prod links must not use site.url during serve (Jekyll sets it to 0.0.0.0:4000 etc.){% endcomment %}
@@ -39,7 +39,7 @@
39
39
  {% assign prod_url = canonical_prod_origin | append: site.baseurl %}
40
40
  {% assign dev_url = "http://localhost:" | append: dev_port | append: site.baseurl %}
41
41
 
42
- <!-- Environment Status Card -->
42
+ {% comment %} Environment Status Card {% endcomment %}
43
43
  <div class="card mb-3 {% if is_production %}border-success{% else %}border-warning{% endif %}">
44
44
  <div class="card-header d-flex align-items-center justify-content-between py-2 {% if is_production %}bg-success{% else %}bg-warning{% endif %} bg-opacity-10">
45
45
  <span class="fw-semibold">
@@ -57,7 +57,7 @@
57
57
  {% endif %}
58
58
  </div>
59
59
  <div class="card-body">
60
- <!-- Active URL Display -->
60
+ {% comment %} Active URL Display {% endcomment %}
61
61
  <label class="form-label small text-body-secondary mb-1" for="currentUrlInput">
62
62
  <i class="bi bi-link-45deg me-1" aria-hidden="true"></i>Current Page URL
63
63
  </label>
@@ -79,7 +79,7 @@
79
79
  </button>
80
80
  </div>
81
81
 
82
- <!-- Build context -->
82
+ {% comment %} Build context {% endcomment %}
83
83
  <p class="small text-body-secondary mb-0 mt-3">
84
84
  Built with <code>JEKYLL_ENV={{ build_env }}</code>.
85
85
  {% if is_production %}
@@ -93,7 +93,7 @@
93
93
  </div>
94
94
  </div>
95
95
 
96
- <!-- Quick URL Links -->
96
+ {% comment %} Quick URL Links {% endcomment %}
97
97
  <div class="card border-secondary">
98
98
  <div class="card-header py-2 bg-body-tertiary">
99
99
  <span class="fw-semibold small">
@@ -101,7 +101,7 @@
101
101
  </span>
102
102
  </div>
103
103
  <ul class="list-group list-group-flush">
104
- <!-- Production URL -->
104
+ {% comment %} Production URL {% endcomment %}
105
105
  <li class="list-group-item d-flex justify-content-between align-items-center gap-2">
106
106
  <div class="d-flex align-items-center min-w-0">
107
107
  <span class="badge bg-success me-2">Prod</span>
@@ -133,7 +133,7 @@
133
133
  </li>
134
134
 
135
135
  {% unless is_production %}
136
- <!-- Development URL (dev builds only — never leak localhost into production HTML) -->
136
+ {% comment %} Development URL (dev builds only — never leak localhost into production HTML) {% endcomment %}
137
137
  <li class="list-group-item d-flex justify-content-between align-items-center gap-2">
138
138
  <div class="d-flex align-items-center min-w-0">
139
139
  <span class="badge bg-warning text-dark me-2">Dev</span>
@@ -166,7 +166,7 @@
166
166
  {% endunless %}
167
167
 
168
168
  {% if site.repository %}
169
- <!-- GitHub Source -->
169
+ {% comment %} GitHub Source {% endcomment %}
170
170
  <li class="list-group-item d-flex justify-content-between align-items-center gap-2">
171
171
  <div class="d-flex align-items-center min-w-0">
172
172
  <span class="badge bg-dark me-2">Source</span>
@@ -1,4 +1,4 @@
1
- <!--
1
+ {% comment %}
2
2
  ===================================================================
3
3
  FEATURE CARD - Data-driven feature display from features.yml
4
4
  ===================================================================
@@ -28,7 +28,7 @@
28
28
  {% assign f = site.data.features.features | where: "id", "ZER0-001" | first %}
29
29
  {% include components/feature-card.html feature=f style="primary" icon="bi-bootstrap" icon_color="text-primary" %}
30
30
  ===================================================================
31
- -->
31
+ {% endcomment %}
32
32
  {% assign f = include.feature %}
33
33
  {% assign border = include.style %}
34
34
  {% assign icon = include.icon | default: "bi-check-circle-fill" %}
@@ -1,5 +1,5 @@
1
1
  {% comment %} Feature: ZER0-077 {% endcomment %}
2
- <!--
2
+ {% comment %}
3
3
  file: halfmoon.html
4
4
  path: _includes/components/halfmoon.html
5
5
  description: Dark / light / auto color-mode switcher (segmented control).
@@ -12,7 +12,7 @@
12
12
  config: site.color_mode_lock: true removes the control entirely — the
13
13
  site pins one mode and visitor switching is disabled
14
14
  (halfmoon.js + core/color-mode-init.html enforce the same).
15
- -->
15
+ {% endcomment %}
16
16
  {% unless site.color_mode_lock %}
17
17
  <div class="btn-group bd-theme-switch {{ include.class | default: '' }}" role="group" aria-label="Color mode">
18
18
  <button type="button" class="btn btn-outline-secondary btn-sm d-flex align-items-center justify-content-center gap-1" data-bs-theme-value="light" aria-pressed="false">