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
@@ -16,11 +16,16 @@
16
16
  # group section header in the selector ("This page" | "The site")
17
17
  # scope page | site — targets this page, or the theme as a whole
18
18
  # description one-line helper shown under the label
19
- # labels GitHub labels applied to the issue. MUST already exist in the
20
- # repo: GitHub SILENTLY DROPS unknown labels from a prefilled URL
21
- # (this was the old feature's `labels=ai-agent` bug). Verify with
22
- # `gh label list`. The marker label from
23
- # site.page_feedback.default_labels is added on top of these.
19
+ # labels GitHub labels applied to the issue. Drawn from the FLEET
20
+ # ISSUE-PIPELINE label set (bamr87/bamr87 _data/fleet.yml
21
+ # issue_pipeline.labels.types: bug feature docs chore ci refactor
22
+ # test security question) plus optional area:*, so an issue filed
23
+ # from this widget is pipeline-eligible on the next scan instead
24
+ # of carrying labels only this repo understands.
25
+ # Every one MUST already exist in the repo: GitHub SILENTLY DROPS
26
+ # unknown labels from a prefilled URL (this was the old feature's
27
+ # `labels=ai-agent` bug). Verify with `gh label list`. The marker
28
+ # label from site.page_feedback.default_labels is added on top.
24
29
  # agent true → assign @copilot and attach `directive` for autonomous work
25
30
  # false → human triage only (no assignee, no directive)
26
31
  # directive compact agent instruction. Kept SHORT on purpose — it rides in
@@ -50,7 +55,7 @@
50
55
  group: This page
51
56
  scope: page
52
57
  description: Polish the copy, structure, or presentation
53
- labels: [enhancement, "area:docs"]
58
+ labels: [docs]
54
59
  agent: true
55
60
  directive: >-
56
61
  Act as a content editor for the page in Page Context. Tighten copy, fix
@@ -64,7 +69,7 @@
64
69
  group: This page
65
70
  scope: page
66
71
  description: Add depth, examples, or a section a reader would expect
67
- labels: [enhancement, "area:docs"]
72
+ labels: [docs]
68
73
  agent: true
69
74
  directive: >-
70
75
  Expand the page in Page Context with concrete examples, prerequisites, and
@@ -77,7 +82,7 @@
77
82
  group: This page
78
83
  scope: page
79
84
  description: Stale versions, dead links, or old screenshots
80
- labels: [documentation, "area:docs"]
85
+ labels: [docs]
81
86
  agent: true
82
87
  directive: >-
83
88
  Audit the page in Page Context for stale versions, dead links, and outdated
@@ -90,7 +95,7 @@
90
95
  group: This page
91
96
  scope: page
92
97
  description: Contrast, keyboard, screen-reader, or focus problems
93
- labels: ["area:a11y"]
98
+ labels: [bug, "area:a11y"]
94
99
  agent: true
95
100
  directive: >-
96
101
  Audit the page in Page Context against WCAG 2.1 AA for the reported barrier
@@ -105,7 +110,7 @@
105
110
  group: The site
106
111
  scope: site
107
112
  description: A design or usability refinement for the theme
108
- labels: [enhancement, "area:feat"]
113
+ labels: [feature]
109
114
  agent: true
110
115
  directive: >-
111
116
  Propose a Bootstrap-first UI/UX refinement, using the page in Page Context
@@ -118,7 +123,7 @@
118
123
  group: The site
119
124
  scope: site
120
125
  description: Slow load, layout shift, or heavy assets
121
- labels: ["area:perf"]
126
+ labels: [bug, "area:perf"]
122
127
  agent: true
123
128
  directive: >-
124
129
  Profile the page in Page Context (LCP, CLS, INP), identify the bottleneck,
@@ -131,7 +136,7 @@
131
136
  group: The site
132
137
  scope: site
133
138
  description: Propose a new site-wide capability
134
- labels: [enhancement, "area:feat"]
139
+ labels: [feature]
135
140
  agent: false
136
141
  directive: ""
137
142
  placeholder: What should it do, and who benefits?
data/_data/i18n/fr.yml CHANGED
@@ -4,7 +4,7 @@
4
4
  # scripts/translate.rb from _data/ui-text.yml (en). Regenerate via
5
5
  # the Translate workflow or: ruby scripts/translate.rb --langs fr
6
6
  # ================================================================
7
- skip_links: Liens d'évitement
7
+ skip_links: Liens d'accès rapide
8
8
  skip_primary_nav: Aller à la navigation principale
9
9
  skip_content: Aller au contenu
10
10
  skip_main_content: Aller au contenu principal
@@ -14,8 +14,8 @@ pagination_previous: Précédent
14
14
  pagination_next: Suivant
15
15
  breadcrumb_home_label: Accueil
16
16
  breadcrumb_separator: "/"
17
- menu_label: Afficher/masquer le menu
18
- search_label: Afficher/masquer la recherche
17
+ menu_label: Basculer le menu
18
+ search_label: Basculer la recherche
19
19
  toc_label: Sur cette page
20
20
  ext_link_label: Lien direct
21
21
  less_than: moins de
@@ -28,7 +28,7 @@ author_label: 'Auteur :'
28
28
  comments_label: Laisser un commentaire
29
29
  comments_title: Commentaires
30
30
  more_label: En savoir plus
31
- related_label: Vous aimerez peut-être aussi
31
+ related_label: Vous pourriez aussi aimer
32
32
  follow_label: 'Suivre :'
33
33
  feed_label: Flux
34
34
  powered_by: Propulsé par
@@ -47,8 +47,8 @@ comment_btn_submit: Envoyer le commentaire
47
47
  comment_btn_submitted: Envoyé
48
48
  comment_success_msg: Merci pour votre commentaire ! Il apparaîtra sur le site une
49
49
  fois approuvé.
50
- comment_error_msg: Désolé, une erreur s'est produite lors de l'envoi. Veuillez vérifier
51
- que tous les champs obligatoires sont remplis et réessayer.
50
+ comment_error_msg: Désolé, une erreur s'est produite lors de l'envoi. Veuillez vous
51
+ assurer que tous les champs obligatoires sont remplis et réessayez.
52
52
  loading_label: Chargement...
53
53
  search_label_text: Saisissez votre terme de recherche...
54
54
  search_placeholder_text: Saisissez votre terme de recherche...
@@ -62,7 +62,7 @@ stats_tags: Étiquettes
62
62
  stats_last_updated: Dernière mise à jour
63
63
  stats_overview: Aperçu
64
64
  stats_content_breakdown: Répartition du contenu
65
- theme_toggle: Changer de thème
65
+ theme_toggle: Basculer le thème
66
66
  dark_mode: Mode sombre
67
67
  light_mode: Mode clair
68
68
  view_source: Voir la source
@@ -80,6 +80,7 @@ shortcuts_show_help: Afficher cette aide
80
80
  home_label: Accueil
81
81
  main_nav_label: Navigation principale
82
82
  search_button_label: Rechercher
83
+ search_button_title: Rechercher — appuyez sur / ou Ctrl+K
83
84
  settings_button_label: Paramètres
84
85
  toc_title: Table des matières
85
86
  published_label: Publié
@@ -93,6 +94,10 @@ edit_on_github: Modifier sur GitHub
93
94
  lang_toggle_label: Langue
94
95
  lang_toggle_aria: Changer de langue
95
96
  lang_not_available: Pas encore traduit
97
+ lang_machine_translated: auto
98
+ lang_machine_translated_title: Traduction générée automatiquement
99
+ lang_untranslated_note: Les langues marquées ne sont pas encore traduites — ces liens
100
+ ouvrent la version originale.
96
101
  machine_translation_notice: Cette page a été traduite automatiquement à partir de
97
102
  l'original en anglais.
98
103
  machine_translation_view_source: Voir l'original
@@ -240,6 +240,15 @@ pages:
240
240
  sha: aa231d65673848a7b52a9f8341f56482d844c1c98d24e7f44903ad6f8eb496be
241
241
  translated_at: '2026-08-05T04:42:58Z'
242
242
  prompt_version: 1
243
+ "/design/":
244
+ source: pages/_about/design.md
245
+ sha: 1603b6e4656c1116919a6a8064c332044c4ba95abdcd85f848913b4c80dd4955
246
+ fr:
247
+ url: "/fr/design/"
248
+ path: fr/about/design.md
249
+ sha: 1603b6e4656c1116919a6a8064c332044c4ba95abdcd85f848913b4c80dd4955
250
+ translated_at: '2026-08-15T02:30:28Z'
251
+ prompt_version: 1
243
252
  "/docs/":
244
253
  source: pages/_docs/index.md
245
254
  sha: d43825e9ed60cdfb2a02bb0e4e59a51f16d6474f3f6e09f4506fa4764f75c484
@@ -618,6 +627,15 @@ pages:
618
627
  sha: 42ea6fdec8a04f27516f5a49f93c53671bf98ea06058945b39495657863a27d6
619
628
  translated_at: '2026-08-05T03:25:32Z'
620
629
  prompt_version: 1
630
+ "/docs/features/cookbook-collection/":
631
+ source: pages/_docs/features/cookbook-collection.md
632
+ sha: c36a4d6c97f36473e4742a0461ae17bc40978bf85f924c78b7f43b0c38d6bffa
633
+ fr:
634
+ url: "/fr/docs/features/cookbook-collection/"
635
+ path: fr/docs/features/cookbook-collection.md
636
+ sha: c36a4d6c97f36473e4742a0461ae17bc40978bf85f924c78b7f43b0c38d6bffa
637
+ translated_at: '2026-09-01T21:28:41Z'
638
+ prompt_version: 1
621
639
  "/docs/features/cookie-consent/":
622
640
  source: pages/_docs/features/cookie-consent.md
623
641
  sha: a7054fb3fcc62ff925ae9d257d441afac2b49123608801bea9caa43bf0edcb07
@@ -656,12 +674,12 @@ pages:
656
674
  prompt_version: 1
657
675
  "/docs/features/giscus-comments/":
658
676
  source: pages/_docs/features/giscus-comments.md
659
- sha: 52efdd3386dcf88f48f187e9b85c00dbd4503217fedaafab1788d89fe6d60c01
677
+ sha: b2fb5564968e8b895f93d0292a3150e7ff6d46cf59c0a7363b77adad4a302074
660
678
  fr:
661
679
  url: "/fr/docs/features/giscus-comments/"
662
680
  path: fr/docs/features/giscus-comments.md
663
- sha: 52efdd3386dcf88f48f187e9b85c00dbd4503217fedaafab1788d89fe6d60c01
664
- translated_at: '2026-08-05T03:27:46Z'
681
+ sha: b2fb5564968e8b895f93d0292a3150e7ff6d46cf59c0a7363b77adad4a302074
682
+ translated_at: '2026-08-15T02:30:10Z'
665
683
  prompt_version: 1
666
684
  "/docs/features/jupyter-notebooks/":
667
685
  source: pages/_docs/features/jupyter-notebooks.md
@@ -773,12 +791,12 @@ pages:
773
791
  prompt_version: 1
774
792
  "/docs/features/skip-to-content/":
775
793
  source: pages/_docs/features/skip-to-content.md
776
- sha: 4389fc104c0562973ff51ff65061fb637fa1e4635abbeccf3e028eea6e7fda29
794
+ sha: 10f5ccd2de04d743b6b2fea50d6f0a72b7e958c1e081c47ecf15ce85abd0602b
777
795
  fr:
778
796
  url: "/fr/docs/features/skip-to-content/"
779
797
  path: fr/docs/features/skip-to-content.md
780
- sha: 4389fc104c0562973ff51ff65061fb637fa1e4635abbeccf3e028eea6e7fda29
781
- translated_at: '2026-08-05T03:33:58Z'
798
+ sha: 10f5ccd2de04d743b6b2fea50d6f0a72b7e958c1e081c47ecf15ce85abd0602b
799
+ translated_at: '2026-09-01T21:29:15Z'
782
800
  prompt_version: 1
783
801
  "/docs/features/smart-404/":
784
802
  source: pages/_docs/features/smart-404.md
@@ -1241,12 +1259,12 @@ pages:
1241
1259
  prompt_version: 1
1242
1260
  "/posts/2025/01/21/remote-work-revolution/":
1243
1261
  source: pages/_posts/world/2025-01-21-remote-work-revolution.md
1244
- sha: c1af2e3b7a1e5e980b0b8751ed1e03474b5f4f7c5b89493af803b5fadb76fe6c
1262
+ sha: eca7d4a2c77752faba20fd092f86ad2c9748aaf2994332deaeb564583fdd61e1
1245
1263
  fr:
1246
1264
  url: "/fr/posts/2025/01/21/remote-work-revolution/"
1247
1265
  path: fr/posts/world/2025-01-21-remote-work-revolution.md
1248
- sha: c1af2e3b7a1e5e980b0b8751ed1e03474b5f4f7c5b89493af803b5fadb76fe6c
1249
- translated_at: '2026-07-23T17:07:41Z'
1266
+ sha: eca7d4a2c77752faba20fd092f86ad2c9748aaf2994332deaeb564583fdd61e1
1267
+ translated_at: '2026-09-01T21:27:46Z'
1250
1268
  prompt_version: 1
1251
1269
  "/posts/2025/01/22/git-workflow-best-practices/":
1252
1270
  source: pages/_posts/development/2025-01-22-git-workflow-best-practices.md
@@ -1446,6 +1464,15 @@ pages:
1446
1464
  sha: 74a066845c5f18d5e97f4ae523fc0cba8ded6a96a2b8c28d9ac874de4b4e5212
1447
1465
  translated_at: '2026-07-23T16:56:33Z'
1448
1466
  prompt_version: 1
1467
+ "/posts/2026/08/15/jekyll-preview-server-from-an-old-pc/":
1468
+ source: pages/_posts/tutorial/2026-08-15-jekyll-preview-server-from-an-old-pc.md
1469
+ sha: 22764b20a0e99bce17af697918e95d38793649977d01833311f71a7714ad93ca
1470
+ fr:
1471
+ url: "/fr/posts/2026/08/15/jekyll-preview-server-from-an-old-pc/"
1472
+ path: fr/posts/tutorial/2026-08-15-jekyll-preview-server-from-an-old-pc.md
1473
+ sha: 22764b20a0e99bce17af697918e95d38793649977d01833311f71a7714ad93ca
1474
+ translated_at: '2026-09-01T21:27:18Z'
1475
+ prompt_version: 1
1449
1476
  "/quickstart/":
1450
1477
  source: pages/_quickstart/index.md
1451
1478
  sha: 2555308eac40feb9be440ee8287840ef6ed93fed5e8df08a135cecbc0479611b
@@ -1493,10 +1520,10 @@ pages:
1493
1520
  prompt_version: 1
1494
1521
  ui_text:
1495
1522
  fr:
1496
- sha: 20ae0d4de9677f6a111dea02c95dec46599acc4a4d3d54a06ea8553004710361
1497
- translated_at: '2026-08-07T04:27:46Z'
1523
+ sha: 648882b32870f5d536540e4b6e61d925c3bf7e550b3a6dd471ab8166cc36b351
1524
+ translated_at: '2026-09-01T21:29:35Z'
1498
1525
  prompt_version: 1
1499
1526
  source_lang: en
1500
1527
  languages:
1501
1528
  - fr
1502
- updated_at: '2026-08-07T04:27:47Z'
1529
+ updated_at: '2026-09-01T21:29:35Z'
@@ -0,0 +1,122 @@
1
+ # Feature: ZER0-084
2
+ # ─────────────────────────────────────────────────────────────────────────────
3
+ # Ingredient densities — GRAMS PER US CUP (236.588 ml).
4
+ #
5
+ # Used by components/recipe-ingredients.html: when a recipe lists an ingredient
6
+ # by volume (cup / tbsp / tsp / fl oz …), the component looks this table up by
7
+ # the slugified ingredient name and emits `data-grams-per-cup`, which lets
8
+ # assets/js/recipe-scaler.js convert that volume to a weight in metric mode —
9
+ # and a weight back to volume in US mode.
10
+ #
11
+ # Lookup order (first match wins):
12
+ # 1. the ingredient's own `grams_per_cup:` front matter
13
+ # 2. this table, keyed by the ingredient name slugified
14
+ # ("Bread flour" → "bread-flour", "All-Purpose Flour" → "all-purpose-flour")
15
+ # 3. no density — volumes stay volumes (ml), weights stay weights (g)
16
+ #
17
+ # Set `weigh: false` on an ingredient to opt it out of volume→weight entirely.
18
+ # A consuming site can override this whole file with its own copy.
19
+ #
20
+ # Values are common US test-kitchen averages; flours in particular vary with
21
+ # scooping method, so treat them as a good default rather than a lab constant.
22
+ # ─────────────────────────────────────────────────────────────────────────────
23
+
24
+ ## Flours & dry goods ---------------------------------------------------------
25
+ all-purpose-flour: 125
26
+ plain-flour: 125
27
+ bread-flour: 127
28
+ whole-wheat-flour: 120
29
+ whole-meal-flour: 120
30
+ cake-flour: 114
31
+ semolina: 167
32
+ rye-flour: 102
33
+ almond-flour: 96
34
+ cornmeal: 122
35
+ cornstarch: 128
36
+ corn-flour: 128
37
+ rolled-oats: 90
38
+ breadcrumbs: 108
39
+ panko: 60
40
+ rice: 185
41
+ white-rice: 185
42
+ arborio-rice: 200
43
+ couscous: 173
44
+ quinoa: 170
45
+
46
+ ## Sugars & sweeteners --------------------------------------------------------
47
+ granulated-sugar: 200
48
+ caster-sugar: 200
49
+ sugar: 200
50
+ brown-sugar: 213
51
+ light-brown-sugar: 213
52
+ dark-brown-sugar: 213
53
+ powdered-sugar: 120
54
+ confectioners-sugar: 120
55
+ icing-sugar: 120
56
+ honey: 340
57
+ maple-syrup: 322
58
+ molasses: 337
59
+ corn-syrup: 328
60
+
61
+ ## Liquids & dairy ------------------------------------------------------------
62
+ water: 236
63
+ milk: 244
64
+ whole-milk: 244
65
+ buttermilk: 245
66
+ heavy-cream: 238
67
+ double-cream: 238
68
+ sour-cream: 230
69
+ yogurt: 245
70
+ greek-yogurt: 245
71
+ stock: 240
72
+ chicken-stock: 240
73
+ vegetable-stock: 240
74
+ wine: 235
75
+ white-wine: 235
76
+ red-wine: 235
77
+ vinegar: 239
78
+ soy-sauce: 255
79
+ lemon-juice: 244
80
+ lime-juice: 244
81
+
82
+ ## Fats -----------------------------------------------------------------------
83
+ butter: 227
84
+ unsalted-butter: 227
85
+ salted-butter: 227
86
+ melted-butter: 227
87
+ olive-oil: 216
88
+ extra-virgin-olive-oil: 216
89
+ vegetable-oil: 218
90
+ canola-oil: 218
91
+ sesame-oil: 218
92
+ shortening: 205
93
+
94
+ ## Seasonings & leaveners (small quantities — precision matters) --------------
95
+ table-salt: 292
96
+ fine-sea-salt: 288
97
+ sea-salt: 256
98
+ kosher-salt: 145 # Diamond Crystal; Morton is ~241 g/cup
99
+ salt: 292
100
+ baking-powder: 192
101
+ baking-soda: 220
102
+ active-dry-yeast: 150
103
+ instant-yeast: 150
104
+ ground-cinnamon: 132
105
+ ground-black-pepper: 138
106
+
107
+ ## Chocolate, nuts & extras ---------------------------------------------------
108
+ cocoa-powder: 85
109
+ chocolate-chips: 170
110
+ semisweet-chocolate-chips: 170
111
+ dark-chocolate: 170
112
+ vanilla-extract: 208
113
+ peanut-butter: 258
114
+ tahini: 240
115
+ tomato-paste: 262
116
+ tomato-passata: 245
117
+ crushed-tomatoes: 245
118
+ grated-parmesan: 100
119
+ almonds: 143
120
+ walnuts: 117
121
+ pecans: 109
122
+ raisins: 145
data/_data/landing.yml CHANGED
@@ -22,12 +22,15 @@ hero:
22
22
  label: "Features"
23
23
  url: "/features/"
24
24
  icon: "bi-list-check"
25
- variant: "outline"
25
+ # This hero is `bg-primary text-white`, so its outlined buttons need the
26
+ # light variant. Plain `outline` is an outlined PRIMARY button, for the
27
+ # normal page background — see components/cta-button.html.
28
+ variant: "outline-light"
26
29
  cta_tertiary:
27
30
  label: "GitHub"
28
31
  url: "" # falls back to site.resources.github_repo
29
32
  icon: "bi-github"
30
- variant: "outline"
33
+ variant: "outline-light"
31
34
  external: true
32
35
 
33
36
  # Features section ------------------------------------------------------------
@@ -1,3 +1,4 @@
1
+ # Feature: ZER0-082
1
2
  # Main Navigation Configuration
2
3
  # Used by: _includes/navigation/navbar.html
3
4
  # Purpose: Primary site navigation with dropdown children
@@ -45,6 +46,19 @@
45
46
  - title: Test Notebook
46
47
  url: /notebooks/test-notebook/
47
48
 
49
+ - title: Recipes
50
+ icon: bi-egg-fried
51
+ url: /recipes/
52
+ children:
53
+ - title: No-Knead Focaccia
54
+ url: /recipes/no-knead-focaccia/
55
+ - title: Brown Butter Cookies
56
+ url: /recipes/brown-butter-chocolate-chip-cookies/
57
+ - title: Tomato Butter Pasta
58
+ url: /recipes/weeknight-tomato-butter-pasta/
59
+ - title: How Recipes Work
60
+ url: /docs/features/cookbook-collection/
61
+
48
62
  - title: Docs
49
63
  icon: bi-journal-bookmark
50
64
  url: /docs/
@@ -72,6 +86,8 @@
72
86
  children:
73
87
  - title: Features
74
88
  url: /features/
89
+ - title: Design System
90
+ url: /design/
75
91
  - title: Authors
76
92
  url: /authors/
77
93
  - title: Statistics
@@ -9,6 +9,10 @@
9
9
  url: /quickstart/
10
10
  expanded: true
11
11
  children:
12
+ - title: "Site Builder (guided)"
13
+ url: /quickstart/site-builder/
14
+ icon: bi-magic
15
+ description: "Let Claude walk you from prerequisites to a running site"
12
16
  - title: "1. Machine Setup"
13
17
  url: /quickstart/machine-setup/
14
18
  icon: bi-laptop
@@ -0,0 +1,64 @@
1
+ # Feature: ZER0-084
2
+ # ─────────────────────────────────────────────────────────────────────────────
3
+ # Default courses / shelves for the zer0-mistakes `recipes` collection.
4
+ #
5
+ # The recipe index (components/recipe-index.html) groups recipes into sections
6
+ # by each recipe's `course:` front matter and reads the display metadata below
7
+ # as `site.data.recipe_courses[recipe.course]`. A consuming site can override
8
+ # this file with its own `_data/recipe_courses.yml`; a recipe with no `course`
9
+ # falls under `uncategorized`.
10
+ #
11
+ # Keys: title (heading), tagline (sub-heading), icon (Bootstrap Icons class),
12
+ # order (advisory rank for consumers that sort on it).
13
+ #
14
+ # Sections render in the order the courses appear IN THIS FILE — same rule as
15
+ # _data/series.yml — with any course used by a recipe but not declared here
16
+ # appended afterwards. To re-order the cookbook, move the blocks below.
17
+ # ─────────────────────────────────────────────────────────────────────────────
18
+ breakfast:
19
+ title: "Breakfast"
20
+ tagline: "The first thing you cook, and the hardest to get wrong twice."
21
+ icon: "bi-egg-fried"
22
+ order: 1
23
+
24
+ breads:
25
+ title: "Breads & Doughs"
26
+ tagline: "Flour, water, salt, time — ratio cooking at its purest."
27
+ icon: "bi-basket"
28
+ order: 2
29
+
30
+ mains:
31
+ title: "Mains"
32
+ tagline: "Dinner, scaled to whoever showed up."
33
+ icon: "bi-egg-fried"
34
+ order: 3
35
+
36
+ sides:
37
+ title: "Sides & Salads"
38
+ tagline: "The supporting cast that people actually remember."
39
+ icon: "bi-flower1"
40
+ order: 4
41
+
42
+ sauces:
43
+ title: "Sauces & Basics"
44
+ tagline: "Mother sauces, doughs, stocks — the building blocks."
45
+ icon: "bi-droplet-half"
46
+ order: 5
47
+
48
+ desserts:
49
+ title: "Desserts & Baking"
50
+ tagline: "Where measuring by weight stops being optional."
51
+ icon: "bi-cake2"
52
+ order: 6
53
+
54
+ drinks:
55
+ title: "Drinks"
56
+ tagline: "Scale by the glass or by the pitcher."
57
+ icon: "bi-cup-straw"
58
+ order: 7
59
+
60
+ uncategorized:
61
+ title: "More Recipes"
62
+ tagline: "Everything that has not found a shelf yet."
63
+ icon: "bi-journal-bookmark"
64
+ order: 99