jekyll-theme-zer0 1.27.0 → 1.29.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 +812 -13
- data/_data/backlog.yml +356 -2
- data/_data/consumers.yml +252 -0
- data/_data/features.yml +234 -5
- data/_data/i18n/fr.yml +103 -0
- data/_data/i18n/manifest.yml +1529 -0
- data/_data/ingredient_densities.yml +122 -0
- data/_data/navigation/docs.yml +2 -0
- data/_data/navigation/main.yml +22 -0
- data/_data/recipe_courses.yml +64 -0
- data/_data/series.yml +19 -0
- data/_data/theme-manifest.yml +387 -277
- data/_data/ui-text.yml +8 -0
- data/_includes/README.md +36 -3
- data/_includes/analytics/google-tag-manager-body.html +11 -2
- data/_includes/analytics/google-tag-manager-head.html +16 -6
- data/_includes/analytics/posthog.html +33 -4
- data/_includes/components/abc-letter.html +43 -0
- data/_includes/components/background-customizer.html +2 -2
- data/_includes/components/book-card.html +42 -0
- data/_includes/components/book-nav.html +80 -0
- data/_includes/components/book-plate.html +31 -0
- data/_includes/components/book-toc.html +47 -0
- data/_includes/components/bookshelf.html +68 -0
- data/_includes/components/card-grid.html +60 -0
- data/_includes/components/cookie-consent.html +4 -4
- data/_includes/components/data-card.html +95 -0
- data/_includes/components/halfmoon.html +5 -1
- data/_includes/components/info-section.html +8 -3
- data/_includes/components/language-toggle.html +168 -21
- data/_includes/components/page-feedback.html +65 -2
- data/_includes/components/page-views-init.html +55 -0
- data/_includes/components/page-views.html +33 -0
- data/_includes/components/recipe-card.html +67 -0
- data/_includes/components/recipe-duration.html +50 -0
- data/_includes/components/recipe-grams.html +58 -0
- data/_includes/components/recipe-index.html +96 -0
- data/_includes/components/recipe-ingredients.html +90 -0
- data/_includes/components/recipe-meta.html +96 -0
- data/_includes/components/recipe-nutrition.html +57 -0
- data/_includes/components/recipe-qty.html +73 -0
- data/_includes/components/recipe-ratio.html +151 -0
- data/_includes/components/recipe-scaler.html +73 -0
- data/_includes/components/recipe-steps.html +86 -0
- data/_includes/components/recipe-temp.html +45 -0
- data/_includes/components/search-modal.html +2 -2
- data/_includes/components/shortcuts-modal.html +3 -0
- data/_includes/components/theme-controls-bar.html +10 -2
- data/_includes/components/theme-customizer.html +8 -2
- data/_includes/components/theme-info.html +8 -1
- data/_includes/content/jsonld-software.html +22 -3
- data/_includes/content/seo.html +9 -3
- data/_includes/core/color-mode-init.html +13 -4
- data/_includes/core/favicon.html +46 -0
- data/_includes/core/footer.html +18 -16
- data/_includes/core/head.html +21 -0
- data/_includes/core/header.html +7 -4
- data/_includes/custom/body-end.html +18 -0
- data/_includes/custom/body-start.html +17 -0
- data/_includes/custom/footer.html +18 -0
- data/_includes/custom/head.html +18 -0
- data/_includes/navigation/local-graph.html +28 -2
- data/_includes/navigation/nav-tree.html +3 -3
- data/_includes/navigation/section-sidebar.html +93 -11
- data/_includes/navigation/sidebar-config.html +21 -0
- data/_includes/navigation/sidebar-left.html +2 -1
- data/_includes/navigation/sidebar-nav.html +4 -0
- data/_includes/navigation/sidebar-pagetree.html +150 -0
- data/_includes/navigation/sidebar-right.html +2 -1
- data/_includes/navigation/unified-drawer.html +8 -2
- data/_includes/obsidian/full-graph.html +165 -136
- data/_includes/setup/wizard.html +173 -86
- data/_includes/stats/stats-metrics.html +2 -2
- data/_layouts/404.html +260 -0
- data/_layouts/README.md +4 -0
- data/_layouts/admin.html +2 -2
- data/_layouts/article.html +5 -0
- data/_layouts/book-abc.html +106 -0
- data/_layouts/book-story.html +91 -0
- data/_layouts/book.html +113 -0
- data/_layouts/collection.html +17 -5
- data/_layouts/cookbook.html +88 -0
- data/_layouts/default.html +4 -4
- data/_layouts/home.html +5 -2
- data/_layouts/landing.html +9 -0
- data/_layouts/news.html +155 -31
- data/_layouts/recipe.html +274 -0
- data/_layouts/root.html +38 -5
- data/_layouts/section.html +96 -25
- data/_sass/components/_book.scss +423 -0
- data/_sass/components/_callout.scss +1 -1
- data/_sass/components/_footer.scss +37 -1
- data/_sass/components/_page-views.scss +36 -0
- data/_sass/components/_recipe.scss +506 -0
- data/_sass/components/_setup-wizard.scss +235 -0
- data/_sass/components/_ui-enhancements.scss +6 -6
- data/_sass/core/_navbar.scss +263 -15
- data/_sass/core/_obsidian.scss +286 -6
- data/_sass/layouts/_landing.scss +2 -2
- data/_sass/theme/_backgrounds.scss +21 -8
- data/_sass/tokens/_color.scss +6 -0
- data/_sass/tokens/_index.scss +2 -0
- data/_sass/tokens/_radius.scss +21 -0
- data/_sass/tokens/_typography.scss +4 -0
- data/_sass/utilities/_focus.scss +14 -0
- data/assets/css/main.scss +4 -0
- data/assets/js/auto-hide-nav.js +5 -1
- data/assets/js/halfmoon.js +26 -0
- data/assets/js/modules/navigation/navbar.js +55 -0
- data/assets/js/obsidian-graph.js +702 -264
- data/assets/js/obsidian-local-graph.js +161 -54
- data/assets/js/page-views.js +372 -0
- data/assets/js/recipe-scaler.js +501 -0
- data/assets/js/search-modal.js +14 -1
- data/assets/js/setup-wizard.js +322 -20
- data/scripts/README.md +29 -0
- data/scripts/bin/audit-consumer +39 -7
- data/scripts/bin/giscus-discussions +213 -14
- data/scripts/bin/manifest +66 -16
- data/scripts/bin/validate +5 -1
- data/scripts/ci/agent_review_result.py +164 -0
- data/scripts/ci/test_agent_review_result.py +172 -0
- data/scripts/design-system-check.rb +170 -0
- data/scripts/install/README.md +47 -6
- data/scripts/install/ai/client.sh +302 -93
- data/scripts/install/ai/prompts/spec.schema.json +1 -1
- data/scripts/install/ai/wizard.sh +10 -5
- data/scripts/install/apply.sh +7 -3
- data/scripts/install/cli.sh +54 -4
- data/scripts/install/config.sh +167 -0
- data/scripts/install/doctor.sh +38 -0
- data/scripts/install/plan.sh +10 -0
- data/scripts/install/spec.sh +15 -7
- data/scripts/install/template.sh +4 -0
- data/scripts/lib/audit.sh +42 -2
- data/scripts/lint-liquid-raw.rb +137 -0
- data/scripts/propagate.rb +277 -0
- data/scripts/test/lib/run_tests.sh +2 -1
- data/scripts/test/lib/test_agent_review_result.sh +27 -0
- data/scripts/translate.rb +161 -15
- metadata +56 -2
data/_data/features.yml
CHANGED
|
@@ -1037,6 +1037,7 @@ features:
|
|
|
1037
1037
|
- "Client-side JSON search index"
|
|
1038
1038
|
- "Bootstrap modal interface"
|
|
1039
1039
|
- "Keyboard shortcut (/) activation"
|
|
1040
|
+
- "Cmd/Ctrl+K shortcut with visible navbar affordance — a / kbd chip on the search button (design-system navbar pattern), hover titles with platform-aware Cmd-K/Ctrl+K, aria-keyshortcuts, and shortcut hints on the sidebar (b) and TOC (t) toggles"
|
|
1040
1041
|
- "Real-time search results"
|
|
1041
1042
|
- "Accessible search input"
|
|
1042
1043
|
- "No external dependency (Algolia removed v1.5.1)"
|
|
@@ -1413,14 +1414,14 @@ features:
|
|
|
1413
1414
|
- "Optional Ruby plugin for self-builds"
|
|
1414
1415
|
|
|
1415
1416
|
- id: ZER0-045
|
|
1416
|
-
title: "Obsidian
|
|
1417
|
-
description: "
|
|
1417
|
+
title: "Obsidian Graph Views (Full + Local)"
|
|
1418
|
+
description: "Obsidian-desktop-style graph views: a full site graph with a Filters/Display/Forces settings panel, collection legend-filters, tag:/path: search, zoom + fullscreen controls and hover previews, plus a per-page local graph panel with depth and direction controls"
|
|
1418
1419
|
implemented: true
|
|
1419
|
-
version: "1.
|
|
1420
|
+
version: "1.28.0"
|
|
1420
1421
|
link: "/docs/obsidian/graph/"
|
|
1421
1422
|
docs: "/docs/obsidian/graph/"
|
|
1422
1423
|
tags: [obsidian, graph, visualization, navigation]
|
|
1423
|
-
date: 2026-
|
|
1424
|
+
date: 2026-08-08
|
|
1424
1425
|
provenance:
|
|
1425
1426
|
introduced_in: "1.4.0"
|
|
1426
1427
|
pr: 77
|
|
@@ -1428,13 +1429,22 @@ features:
|
|
|
1428
1429
|
issue: null
|
|
1429
1430
|
tests:
|
|
1430
1431
|
- "test/test_obsidian.sh"
|
|
1431
|
-
- "test/visual/features/obsidian-
|
|
1432
|
+
- "test/visual/features/obsidian-graph.spec.js"
|
|
1432
1433
|
references:
|
|
1433
1434
|
includes:
|
|
1434
1435
|
- "_includes/obsidian/full-graph.html"
|
|
1435
1436
|
- "_includes/navigation/local-graph.html"
|
|
1436
1437
|
scripts:
|
|
1437
1438
|
- "assets/js/obsidian-graph.js"
|
|
1439
|
+
- "assets/js/obsidian-local-graph.js"
|
|
1440
|
+
styles:
|
|
1441
|
+
- "_sass/core/_obsidian.scss"
|
|
1442
|
+
features:
|
|
1443
|
+
- "Filters: search with tag:/path: operators, per-collection toggles generated from the wiki-index (count + color swatch = legend), show-orphans, show-unresolved"
|
|
1444
|
+
- "Display: link arrows, node size, link thickness, label fade threshold — applied live"
|
|
1445
|
+
- "Forces: repel force + link distance sliders with animated re-layout; settings persist to localStorage"
|
|
1446
|
+
- "Hover preview card, zoom/fit/fullscreen stack, live dark-mode restyling"
|
|
1447
|
+
- "Local graph: depth selector (1-3) + outgoing/incoming switches, re-rendered in place"
|
|
1438
1448
|
|
|
1439
1449
|
# ============================================================================
|
|
1440
1450
|
# SETUP, NAVIGATION & DEVELOPER UX (v0.20+)
|
|
@@ -2184,3 +2194,222 @@ features:
|
|
|
2184
2194
|
- "Manifest-driven SHA change detection, pruning of deleted sources, and generated /fr<en-url> permalinks (GitHub Pages safe-mode friendly)"
|
|
2185
2195
|
- "Markdown-safe segment translation: code, Liquid, wiki-links and URLs masked as placeholders and validated"
|
|
2186
2196
|
- "Navbar language toggle with availability states, hreflang alternates, per-page html lang, machine-translation notice"
|
|
2197
|
+
|
|
2198
|
+
- id: ZER0-079
|
|
2199
|
+
title: "Config-Driven Favicon and Browser Identity"
|
|
2200
|
+
description: "Head include emitting favicon, SVG icon, Apple touch icon, web manifest, and theme-color tags from an optional favicon config block, with an explicit /favicon.ico fallback that works on baseurl deployments"
|
|
2201
|
+
implemented: true
|
|
2202
|
+
version: "1.28.0"
|
|
2203
|
+
link: "/"
|
|
2204
|
+
docs: "/docs/features/favicon/"
|
|
2205
|
+
tags: [seo, branding, ui, configuration]
|
|
2206
|
+
date: 2026-07-22
|
|
2207
|
+
provenance:
|
|
2208
|
+
introduced_in: "1.28.0"
|
|
2209
|
+
pr: null
|
|
2210
|
+
commit: "a11e29f"
|
|
2211
|
+
issue: null
|
|
2212
|
+
tests:
|
|
2213
|
+
- "test/test_core.sh"
|
|
2214
|
+
references:
|
|
2215
|
+
includes:
|
|
2216
|
+
- "_includes/core/favicon.html"
|
|
2217
|
+
- "_includes/core/head.html"
|
|
2218
|
+
docs: "pages/_docs/features/favicon.md"
|
|
2219
|
+
features:
|
|
2220
|
+
- "Zero-config default: explicit /favicon.ico link on every page (fixes silent 404s and baseurl project sites)"
|
|
2221
|
+
- "Optional SVG favicon, PNG sizes, apple-touch-icon, and web manifest links"
|
|
2222
|
+
- "theme-color meta sourced from favicon.theme_color with fallback to theme_color.main design token"
|
|
2223
|
+
|
|
2224
|
+
- id: ZER0-080
|
|
2225
|
+
title: "Books Collection — Children's Picture-Book Publishing"
|
|
2226
|
+
description: "A `books` collection with immersive cover-to-cover layouts: book landing page (cover hero + TOC), story reading pages with illustration plates and prev/next navigation, bookshelf components, and AI-provenance colophons whose front matter doubles as the image-generation manifest"
|
|
2227
|
+
implemented: true
|
|
2228
|
+
version: "1.28.0"
|
|
2229
|
+
link: "/books/zer0-tales/"
|
|
2230
|
+
docs: "/docs/features/book-collection/"
|
|
2231
|
+
tags: [books, collections, layouts, storybook, ai-images, children]
|
|
2232
|
+
date: 2026-07-22
|
|
2233
|
+
provenance:
|
|
2234
|
+
introduced_in: "1.28.0"
|
|
2235
|
+
pr: 328
|
|
2236
|
+
commit: "1b521f6"
|
|
2237
|
+
issue: null
|
|
2238
|
+
tests:
|
|
2239
|
+
- "test/visual/features/books.spec.js"
|
|
2240
|
+
- "pages/_books/zer0-tales/index.md"
|
|
2241
|
+
references:
|
|
2242
|
+
layouts:
|
|
2243
|
+
- "_layouts/book.html"
|
|
2244
|
+
- "_layouts/book-story.html"
|
|
2245
|
+
includes:
|
|
2246
|
+
- "_includes/components/bookshelf.html"
|
|
2247
|
+
- "_includes/components/book-card.html"
|
|
2248
|
+
- "_includes/components/book-toc.html"
|
|
2249
|
+
- "_includes/components/book-nav.html"
|
|
2250
|
+
- "_includes/components/book-plate.html"
|
|
2251
|
+
styles:
|
|
2252
|
+
- "_sass/components/_book.scss"
|
|
2253
|
+
config: "_config.yml"
|
|
2254
|
+
docs: "pages/_docs/features/book-collection.md"
|
|
2255
|
+
features:
|
|
2256
|
+
- "Book = folder of chapters + index.md; numeric chapter: front matter drives TOC and prev/next ordering (no dates needed)"
|
|
2257
|
+
- "Immersive sidebar-free reading surface: storybook serif, responsive type scale, drop cap, plate styling for bare markdown images"
|
|
2258
|
+
- "illustrations: front matter renders a collapsed prompt colophon — the same list drives OpenAI image generation on consumer sites (drsai)"
|
|
2259
|
+
- "Demo book The Tales of Zer0 ships with the theme; reference platform: bamr87/drsai with Dodge & Reena as the test book"
|
|
2260
|
+
|
|
2261
|
+
- id: ZER0-081
|
|
2262
|
+
title: "Claude Design System Round-Trip"
|
|
2263
|
+
description: "Design-token layer aligned with the zer0-mistakes Claude Design project: corner-radius, logo-palette, and display-size tokens join _sass/tokens/; a git mirror of the design project lives under _design-system/ (plain-CSS tokens, React component specs from buttons to FABs to post cards to skeletons, foundation cards, website UI kit); and a CI parity check fails when theme and mirror drift"
|
|
2264
|
+
implemented: true
|
|
2265
|
+
version: "1.29.0"
|
|
2266
|
+
link: "/"
|
|
2267
|
+
docs: "https://github.com/bamr87/zer0-mistakes/blob/main/docs/ui/design-system.md"
|
|
2268
|
+
tags: [design-system, tokens, sass, ai, tooling]
|
|
2269
|
+
date: 2026-08-14
|
|
2270
|
+
provenance:
|
|
2271
|
+
introduced_in: "1.29.0"
|
|
2272
|
+
pr: 389
|
|
2273
|
+
commit: "7fc2fe02"
|
|
2274
|
+
issue: null
|
|
2275
|
+
tests:
|
|
2276
|
+
- "test/visual/core/styling.spec.js"
|
|
2277
|
+
- "scripts/design-system-check.rb"
|
|
2278
|
+
references:
|
|
2279
|
+
styles:
|
|
2280
|
+
- "_sass/tokens/_radius.scss"
|
|
2281
|
+
- "_sass/tokens/_index.scss"
|
|
2282
|
+
scripts:
|
|
2283
|
+
- "scripts/design-system-check.rb"
|
|
2284
|
+
design:
|
|
2285
|
+
- "_design-system/components/"
|
|
2286
|
+
- "_design-system/guidelines/"
|
|
2287
|
+
- "_design-system/tokens/"
|
|
2288
|
+
docs: "docs/ui/design-system.md"
|
|
2289
|
+
features:
|
|
2290
|
+
- "--zer0-radius-* corner radii, --zer0-logo-* brand palette, and --zer0-text-display-* fluid hero sizes declared once and consumed by callouts, landing cards, nav, and focus rings"
|
|
2291
|
+
- "_design-system/ mirrors the claude.ai/design project (id e75121c0-9210-42d1-ade3-2c8af9111cbe) so interfaces can be designed in Claude Design and folded back into the theme — contract in _design-system/SYNC.md"
|
|
2292
|
+
- "scripts/design-system-check.rb (core test suite) resolves var() alias chains and fails CI on token drift, plus flags fallback-less var(--zer0-*) references that are never declared"
|
|
2293
|
+
- "Component specs ship the theme's primitives as React twins — Button, Badge, Fab/FabStack, Card, FeatureCard, PostCard, Callout, Skeleton, Input — with foundation cards for colors, type, spacing, motion, layers, and brand (PR 391)"
|
|
2294
|
+
- "No webfonts, Bootstrap-first, seven skins, light+dark — the imported system and the theme now state one identical visual contract"
|
|
2295
|
+
|
|
2296
|
+
- id: ZER0-082
|
|
2297
|
+
title: "Live Design System Pages"
|
|
2298
|
+
description: "The design system published on the site itself: _design-system/ is force-included in the Jekyll build so tokens, styles.css, specimen cards, and component sources get real URLs under /_design-system/, and a /design/ hub page renders the foundation specimens in live iframes, catalogs the component twins, and links the Claude Design page canvas covering all 24 layouts"
|
|
2299
|
+
implemented: true
|
|
2300
|
+
version: "1.29.0"
|
|
2301
|
+
link: "/design/"
|
|
2302
|
+
docs: "https://github.com/bamr87/zer0-mistakes/blob/main/docs/ui/design-system.md"
|
|
2303
|
+
tags: [design-system, tokens, pages, navigation, ui]
|
|
2304
|
+
date: 2026-08-14
|
|
2305
|
+
provenance:
|
|
2306
|
+
introduced_in: "1.29.0"
|
|
2307
|
+
pr: 392
|
|
2308
|
+
commit: "6ac9f77d"
|
|
2309
|
+
issue: null
|
|
2310
|
+
tests:
|
|
2311
|
+
- "test/visual/features/design-hub.spec.js"
|
|
2312
|
+
references:
|
|
2313
|
+
pages:
|
|
2314
|
+
- "pages/_about/design.md"
|
|
2315
|
+
data:
|
|
2316
|
+
- "_data/navigation/main.yml"
|
|
2317
|
+
tests:
|
|
2318
|
+
- "test/visual/features/design-hub.spec.js"
|
|
2319
|
+
config: "_config.yml"
|
|
2320
|
+
features:
|
|
2321
|
+
- "Publishing is one config line — include: [_design-system] — so the mirror's plain-CSS tokens double as a hosted stylesheet any prototype can link"
|
|
2322
|
+
- "/design/ foundations gallery renders the actual specimen cards in iframes against the published tokens — living documentation, never screenshots"
|
|
2323
|
+
- "Component-twin catalog links every React spec (.jsx/.d.ts/.prompt.md) served raw from the mirror; interactive rendering stays in Claude Design"
|
|
2324
|
+
- "Page canvas: every layout, nav pattern, and chrome surface recreated as a Claude Design presentation, linked from the hub with a screen-to-repo-file map"
|
|
2325
|
+
|
|
2326
|
+
# ============================================================================
|
|
2327
|
+
# READER ENGAGEMENT (v1.29+)
|
|
2328
|
+
# ============================================================================
|
|
2329
|
+
|
|
2330
|
+
- id: ZER0-083
|
|
2331
|
+
title: "Page View Counter"
|
|
2332
|
+
description: "Per-page view tracking with the count shown in the article meta row — a local-first provider that needs no server, or an HTTP counter endpoint, both gated by DNT, GPC, and consent"
|
|
2333
|
+
implemented: true
|
|
2334
|
+
version: "1.29.0"
|
|
2335
|
+
link: "/"
|
|
2336
|
+
docs: "https://github.com/bamr87/zer0-mistakes/blob/main/docs/features/page-views.md"
|
|
2337
|
+
tags: [analytics, privacy, engagement, metrics, ui]
|
|
2338
|
+
date: 2026-08-23
|
|
2339
|
+
provenance:
|
|
2340
|
+
introduced_in: "1.29.0"
|
|
2341
|
+
pr: 413
|
|
2342
|
+
commit: "6ca4961b"
|
|
2343
|
+
issue: null
|
|
2344
|
+
tests:
|
|
2345
|
+
- "test/visual/features/page-views.spec.js"
|
|
2346
|
+
references:
|
|
2347
|
+
layouts:
|
|
2348
|
+
- "_layouts/article.html"
|
|
2349
|
+
includes:
|
|
2350
|
+
- "_includes/components/page-views.html"
|
|
2351
|
+
- "_includes/components/page-views-init.html"
|
|
2352
|
+
- "_includes/core/head.html"
|
|
2353
|
+
scripts:
|
|
2354
|
+
- "assets/js/page-views.js"
|
|
2355
|
+
styles:
|
|
2356
|
+
- "_sass/components/_page-views.scss"
|
|
2357
|
+
tests:
|
|
2358
|
+
- "test/visual/features/page-views.spec.js"
|
|
2359
|
+
config: "_config.yml"
|
|
2360
|
+
docs: "docs/features/page-views.md"
|
|
2361
|
+
features:
|
|
2362
|
+
- "Two providers: 'local' (default) keeps counts in the visitor's localStorage — no server, no network, GitHub-Pages safe; 'remote' reads a counter endpoint the site owns ({path} substitution, configurable method, dotted count_key)"
|
|
2363
|
+
- "Privacy gates mirror the posthog block (DNT, Global Privacy Control, optional cookie-consent 'analytics' tie-in) and suppress RECORDING only — a view blocked pending consent is recorded when consent arrives"
|
|
2364
|
+
- "dedupe: session counts one view per page per browser session, so a reload cannot inflate the number"
|
|
2365
|
+
- "The badge ships hidden and is revealed only once a count exists — no '0 views' flash — and carries its own leading separator so a hidden badge leaves no dangling bullet in the meta row"
|
|
2366
|
+
- "Every storage touch is probed and wrapped: private mode, blocked cookies, a corrupt payload, or an exceeded quota degrade to 'no count' instead of throwing"
|
|
2367
|
+
- "window.zer0PageViews (get/all/refresh/reset) plus a 'zer0:page-views' CustomEvent let a site build on the count without polling"
|
|
2368
|
+
- id: ZER0-084
|
|
2369
|
+
title: "Cookbook & Recipes Collection"
|
|
2370
|
+
description: "A `recipes` collection whose structured front matter (ingredients, steps, yield, times, ratio_basis) renders as a working recipe page: a fact bar, a serving scaler, an ingredient checklist, a numbered method, a build-time baker's-percentage table, and schema.org Recipe JSON-LD — with client-side scaling and US/metric conversion (volume↔weight via an ingredient density table) layered on as progressive enhancement"
|
|
2371
|
+
implemented: true
|
|
2372
|
+
version: "1.29.0"
|
|
2373
|
+
link: "/recipes/"
|
|
2374
|
+
docs: "/docs/features/cookbook-collection/"
|
|
2375
|
+
tags: [recipes, cookbook, collections, layouts, unit-conversion, structured-data]
|
|
2376
|
+
date: 2026-08-23
|
|
2377
|
+
provenance:
|
|
2378
|
+
introduced_in: "1.29.0"
|
|
2379
|
+
pr: null
|
|
2380
|
+
commit: "45354f34"
|
|
2381
|
+
issue: null
|
|
2382
|
+
tests:
|
|
2383
|
+
- "test/test_core.sh"
|
|
2384
|
+
references:
|
|
2385
|
+
layouts:
|
|
2386
|
+
- "_layouts/recipe.html"
|
|
2387
|
+
- "_layouts/cookbook.html"
|
|
2388
|
+
includes:
|
|
2389
|
+
- "_includes/components/recipe-index.html"
|
|
2390
|
+
- "_includes/components/recipe-card.html"
|
|
2391
|
+
- "_includes/components/recipe-meta.html"
|
|
2392
|
+
- "_includes/components/recipe-scaler.html"
|
|
2393
|
+
- "_includes/components/recipe-ingredients.html"
|
|
2394
|
+
- "_includes/components/recipe-steps.html"
|
|
2395
|
+
- "_includes/components/recipe-ratio.html"
|
|
2396
|
+
- "_includes/components/recipe-nutrition.html"
|
|
2397
|
+
- "_includes/components/recipe-qty.html"
|
|
2398
|
+
- "_includes/components/recipe-temp.html"
|
|
2399
|
+
- "_includes/components/recipe-grams.html"
|
|
2400
|
+
- "_includes/components/recipe-duration.html"
|
|
2401
|
+
styles: ["_sass/components/_recipe.scss"]
|
|
2402
|
+
scripts: ["assets/js/recipe-scaler.js"]
|
|
2403
|
+
data:
|
|
2404
|
+
- "_data/recipe_courses.yml"
|
|
2405
|
+
- "_data/ingredient_densities.yml"
|
|
2406
|
+
pages:
|
|
2407
|
+
- "pages/_recipes/index.md"
|
|
2408
|
+
- "pages/_docs/features/cookbook-collection.md"
|
|
2409
|
+
config: "_config.yml"
|
|
2410
|
+
components:
|
|
2411
|
+
- "Serving scaler — stepper, ½×/1×/2×/3× presets, ?servings= and ?scale= links, per-recipe scale remembered in localStorage"
|
|
2412
|
+
- "Unit switch — as written / metric / US, rewriting quantities, units and oven temperatures in place"
|
|
2413
|
+
- "Volume↔weight conversion driven by _data/ingredient_densities.yml, overridable per ingredient with grams_per_cup"
|
|
2414
|
+
- "Baker's-percentage ratio table computed at build time, so percentages are correct with JavaScript disabled"
|
|
2415
|
+
- "Progressive enhancement: quantities render as authored by Jekyll; the control bar stays hidden until the script reveals it"
|
data/_data/i18n/fr.yml
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# ================================================================
|
|
2
|
+
# GENERATED FILE — do not edit by hand.
|
|
3
|
+
# Machine-translated UI strings (fr) produced by
|
|
4
|
+
# scripts/translate.rb from _data/ui-text.yml (en). Regenerate via
|
|
5
|
+
# the Translate workflow or: ruby scripts/translate.rb --langs fr
|
|
6
|
+
# ================================================================
|
|
7
|
+
skip_links: Liens d'accès rapide
|
|
8
|
+
skip_primary_nav: Aller à la navigation principale
|
|
9
|
+
skip_content: Aller au contenu
|
|
10
|
+
skip_main_content: Aller au contenu principal
|
|
11
|
+
skip_footer: Aller au pied de page
|
|
12
|
+
page: Page
|
|
13
|
+
pagination_previous: Précédent
|
|
14
|
+
pagination_next: Suivant
|
|
15
|
+
breadcrumb_home_label: Accueil
|
|
16
|
+
breadcrumb_separator: "/"
|
|
17
|
+
menu_label: Basculer le menu
|
|
18
|
+
search_label: Basculer la recherche
|
|
19
|
+
toc_label: Sur cette page
|
|
20
|
+
ext_link_label: Lien direct
|
|
21
|
+
less_than: moins de
|
|
22
|
+
minute_read: minute de lecture
|
|
23
|
+
share_on_label: Partager sur
|
|
24
|
+
tags_label: 'Étiquettes :'
|
|
25
|
+
categories_label: 'Catégories :'
|
|
26
|
+
date_label: 'Mis à jour :'
|
|
27
|
+
author_label: 'Auteur :'
|
|
28
|
+
comments_label: Laisser un commentaire
|
|
29
|
+
comments_title: Commentaires
|
|
30
|
+
more_label: En savoir plus
|
|
31
|
+
related_label: Vous pourriez aussi aimer
|
|
32
|
+
follow_label: 'Suivre :'
|
|
33
|
+
feed_label: Flux
|
|
34
|
+
powered_by: Propulsé par
|
|
35
|
+
website_label: Site web
|
|
36
|
+
email_label: E-mail
|
|
37
|
+
recent_posts: Articles récents
|
|
38
|
+
undefined_wpm: Paramètre words_per_minute non défini dans _config.yml
|
|
39
|
+
comment_form_info: Votre adresse e-mail ne sera pas publiée. Les champs obligatoires
|
|
40
|
+
sont indiqués
|
|
41
|
+
comment_form_comment_label: Commentaire
|
|
42
|
+
comment_form_md_info: Le Markdown est pris en charge.
|
|
43
|
+
comment_form_name_label: Nom
|
|
44
|
+
comment_form_email_label: Adresse e-mail
|
|
45
|
+
comment_form_website_label: Site web (facultatif)
|
|
46
|
+
comment_btn_submit: Envoyer le commentaire
|
|
47
|
+
comment_btn_submitted: Envoyé
|
|
48
|
+
comment_success_msg: Merci pour votre commentaire ! Il apparaîtra sur le site une
|
|
49
|
+
fois approuvé.
|
|
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
|
+
loading_label: Chargement...
|
|
53
|
+
search_label_text: Saisissez votre terme de recherche...
|
|
54
|
+
search_placeholder_text: Saisissez votre terme de recherche...
|
|
55
|
+
search_no_results: Aucun résultat
|
|
56
|
+
results_found: Résultat(s) trouvé(s)
|
|
57
|
+
back_to_top: Retour en haut
|
|
58
|
+
stats_total_posts: Total des articles
|
|
59
|
+
stats_total_pages: Total des pages
|
|
60
|
+
stats_categories: Catégories
|
|
61
|
+
stats_tags: Étiquettes
|
|
62
|
+
stats_last_updated: Dernière mise à jour
|
|
63
|
+
stats_overview: Aperçu
|
|
64
|
+
stats_content_breakdown: Répartition du contenu
|
|
65
|
+
theme_toggle: Basculer le thème
|
|
66
|
+
dark_mode: Mode sombre
|
|
67
|
+
light_mode: Mode clair
|
|
68
|
+
view_source: Voir la source
|
|
69
|
+
edit_page: Modifier cette page
|
|
70
|
+
report_issue: Signaler un problème
|
|
71
|
+
breadcrumbs_root: Accueil
|
|
72
|
+
breadcrumbs_aria: Fil d'Ariane
|
|
73
|
+
shortcuts_title: Raccourcis clavier
|
|
74
|
+
shortcuts_search: Ouvrir la recherche
|
|
75
|
+
shortcuts_prev_section: Section précédente
|
|
76
|
+
shortcuts_next_section: Section suivante
|
|
77
|
+
shortcuts_toggle_sidebar: Afficher/masquer la barre latérale
|
|
78
|
+
shortcuts_toggle_toc: Afficher/masquer la table des matières
|
|
79
|
+
shortcuts_show_help: Afficher cette aide
|
|
80
|
+
home_label: Accueil
|
|
81
|
+
main_nav_label: Navigation principale
|
|
82
|
+
search_button_label: Rechercher
|
|
83
|
+
search_button_title: Rechercher — appuyez sur / ou Ctrl+K
|
|
84
|
+
settings_button_label: Paramètres
|
|
85
|
+
toc_title: Table des matières
|
|
86
|
+
published_label: Publié
|
|
87
|
+
updated_label: Mis à jour
|
|
88
|
+
reading_time_label: 'Temps de lecture estimé :'
|
|
89
|
+
reading_time_minute: minute
|
|
90
|
+
share_label: Partager
|
|
91
|
+
copy_link_label: Copier le lien
|
|
92
|
+
improve_label: Améliorer
|
|
93
|
+
edit_on_github: Modifier sur GitHub
|
|
94
|
+
lang_toggle_label: Langue
|
|
95
|
+
lang_toggle_aria: Changer de langue
|
|
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.
|
|
101
|
+
machine_translation_notice: Cette page a été traduite automatiquement à partir de
|
|
102
|
+
l'original en anglais.
|
|
103
|
+
machine_translation_view_source: Voir l'original
|