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.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +812 -13
  3. data/_data/backlog.yml +356 -2
  4. data/_data/consumers.yml +252 -0
  5. data/_data/features.yml +234 -5
  6. data/_data/i18n/fr.yml +103 -0
  7. data/_data/i18n/manifest.yml +1529 -0
  8. data/_data/ingredient_densities.yml +122 -0
  9. data/_data/navigation/docs.yml +2 -0
  10. data/_data/navigation/main.yml +22 -0
  11. data/_data/recipe_courses.yml +64 -0
  12. data/_data/series.yml +19 -0
  13. data/_data/theme-manifest.yml +387 -277
  14. data/_data/ui-text.yml +8 -0
  15. data/_includes/README.md +36 -3
  16. data/_includes/analytics/google-tag-manager-body.html +11 -2
  17. data/_includes/analytics/google-tag-manager-head.html +16 -6
  18. data/_includes/analytics/posthog.html +33 -4
  19. data/_includes/components/abc-letter.html +43 -0
  20. data/_includes/components/background-customizer.html +2 -2
  21. data/_includes/components/book-card.html +42 -0
  22. data/_includes/components/book-nav.html +80 -0
  23. data/_includes/components/book-plate.html +31 -0
  24. data/_includes/components/book-toc.html +47 -0
  25. data/_includes/components/bookshelf.html +68 -0
  26. data/_includes/components/card-grid.html +60 -0
  27. data/_includes/components/cookie-consent.html +4 -4
  28. data/_includes/components/data-card.html +95 -0
  29. data/_includes/components/halfmoon.html +5 -1
  30. data/_includes/components/info-section.html +8 -3
  31. data/_includes/components/language-toggle.html +168 -21
  32. data/_includes/components/page-feedback.html +65 -2
  33. data/_includes/components/page-views-init.html +55 -0
  34. data/_includes/components/page-views.html +33 -0
  35. data/_includes/components/recipe-card.html +67 -0
  36. data/_includes/components/recipe-duration.html +50 -0
  37. data/_includes/components/recipe-grams.html +58 -0
  38. data/_includes/components/recipe-index.html +96 -0
  39. data/_includes/components/recipe-ingredients.html +90 -0
  40. data/_includes/components/recipe-meta.html +96 -0
  41. data/_includes/components/recipe-nutrition.html +57 -0
  42. data/_includes/components/recipe-qty.html +73 -0
  43. data/_includes/components/recipe-ratio.html +151 -0
  44. data/_includes/components/recipe-scaler.html +73 -0
  45. data/_includes/components/recipe-steps.html +86 -0
  46. data/_includes/components/recipe-temp.html +45 -0
  47. data/_includes/components/search-modal.html +2 -2
  48. data/_includes/components/shortcuts-modal.html +3 -0
  49. data/_includes/components/theme-controls-bar.html +10 -2
  50. data/_includes/components/theme-customizer.html +8 -2
  51. data/_includes/components/theme-info.html +8 -1
  52. data/_includes/content/jsonld-software.html +22 -3
  53. data/_includes/content/seo.html +9 -3
  54. data/_includes/core/color-mode-init.html +13 -4
  55. data/_includes/core/favicon.html +46 -0
  56. data/_includes/core/footer.html +18 -16
  57. data/_includes/core/head.html +21 -0
  58. data/_includes/core/header.html +7 -4
  59. data/_includes/custom/body-end.html +18 -0
  60. data/_includes/custom/body-start.html +17 -0
  61. data/_includes/custom/footer.html +18 -0
  62. data/_includes/custom/head.html +18 -0
  63. data/_includes/navigation/local-graph.html +28 -2
  64. data/_includes/navigation/nav-tree.html +3 -3
  65. data/_includes/navigation/section-sidebar.html +93 -11
  66. data/_includes/navigation/sidebar-config.html +21 -0
  67. data/_includes/navigation/sidebar-left.html +2 -1
  68. data/_includes/navigation/sidebar-nav.html +4 -0
  69. data/_includes/navigation/sidebar-pagetree.html +150 -0
  70. data/_includes/navigation/sidebar-right.html +2 -1
  71. data/_includes/navigation/unified-drawer.html +8 -2
  72. data/_includes/obsidian/full-graph.html +165 -136
  73. data/_includes/setup/wizard.html +173 -86
  74. data/_includes/stats/stats-metrics.html +2 -2
  75. data/_layouts/404.html +260 -0
  76. data/_layouts/README.md +4 -0
  77. data/_layouts/admin.html +2 -2
  78. data/_layouts/article.html +5 -0
  79. data/_layouts/book-abc.html +106 -0
  80. data/_layouts/book-story.html +91 -0
  81. data/_layouts/book.html +113 -0
  82. data/_layouts/collection.html +17 -5
  83. data/_layouts/cookbook.html +88 -0
  84. data/_layouts/default.html +4 -4
  85. data/_layouts/home.html +5 -2
  86. data/_layouts/landing.html +9 -0
  87. data/_layouts/news.html +155 -31
  88. data/_layouts/recipe.html +274 -0
  89. data/_layouts/root.html +38 -5
  90. data/_layouts/section.html +96 -25
  91. data/_sass/components/_book.scss +423 -0
  92. data/_sass/components/_callout.scss +1 -1
  93. data/_sass/components/_footer.scss +37 -1
  94. data/_sass/components/_page-views.scss +36 -0
  95. data/_sass/components/_recipe.scss +506 -0
  96. data/_sass/components/_setup-wizard.scss +235 -0
  97. data/_sass/components/_ui-enhancements.scss +6 -6
  98. data/_sass/core/_navbar.scss +263 -15
  99. data/_sass/core/_obsidian.scss +286 -6
  100. data/_sass/layouts/_landing.scss +2 -2
  101. data/_sass/theme/_backgrounds.scss +21 -8
  102. data/_sass/tokens/_color.scss +6 -0
  103. data/_sass/tokens/_index.scss +2 -0
  104. data/_sass/tokens/_radius.scss +21 -0
  105. data/_sass/tokens/_typography.scss +4 -0
  106. data/_sass/utilities/_focus.scss +14 -0
  107. data/assets/css/main.scss +4 -0
  108. data/assets/js/auto-hide-nav.js +5 -1
  109. data/assets/js/halfmoon.js +26 -0
  110. data/assets/js/modules/navigation/navbar.js +55 -0
  111. data/assets/js/obsidian-graph.js +702 -264
  112. data/assets/js/obsidian-local-graph.js +161 -54
  113. data/assets/js/page-views.js +372 -0
  114. data/assets/js/recipe-scaler.js +501 -0
  115. data/assets/js/search-modal.js +14 -1
  116. data/assets/js/setup-wizard.js +322 -20
  117. data/scripts/README.md +29 -0
  118. data/scripts/bin/audit-consumer +39 -7
  119. data/scripts/bin/giscus-discussions +213 -14
  120. data/scripts/bin/manifest +66 -16
  121. data/scripts/bin/validate +5 -1
  122. data/scripts/ci/agent_review_result.py +164 -0
  123. data/scripts/ci/test_agent_review_result.py +172 -0
  124. data/scripts/design-system-check.rb +170 -0
  125. data/scripts/install/README.md +47 -6
  126. data/scripts/install/ai/client.sh +302 -93
  127. data/scripts/install/ai/prompts/spec.schema.json +1 -1
  128. data/scripts/install/ai/wizard.sh +10 -5
  129. data/scripts/install/apply.sh +7 -3
  130. data/scripts/install/cli.sh +54 -4
  131. data/scripts/install/config.sh +167 -0
  132. data/scripts/install/doctor.sh +38 -0
  133. data/scripts/install/plan.sh +10 -0
  134. data/scripts/install/spec.sh +15 -7
  135. data/scripts/install/template.sh +4 -0
  136. data/scripts/lib/audit.sh +42 -2
  137. data/scripts/lint-liquid-raw.rb +137 -0
  138. data/scripts/propagate.rb +277 -0
  139. data/scripts/test/lib/run_tests.sh +2 -1
  140. data/scripts/test/lib/test_agent_review_result.sh +27 -0
  141. data/scripts/translate.rb +161 -15
  142. 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 Local Graph Panel"
1417
- description: "Standalone neighborhood graph view for the current note, extracted as a reusable include for sidebars and modals"
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.4.0"
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-03-25
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-callouts.spec.js"
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