1. 07 Oct, 2026 13 commits
  2. 06 Oct, 2026 14 commits
    • test: blog folder model, bilingual accessors, token gates · e398f7a9
      The 8x6nki / szm8ld share-id gates stay explicit. New coverage:
      available-language reporting, requested-language fetch with the
      untranslated banner flag, prod filtering still keyed on NODE_ENV, and
      the language-nav banner/switcher data. The both-languages path runs on
      a synthetic _fixture-bilingual post (removed after the suite) — real
      posts are single-language by design.
      PLN (Algolia) authored
    • admin: split the blog collection per content file · 70acab2f
      Sveltia/Decap i18n structures (single_file, multiple_files,
      multiple_folders) can neither produce <slug>/<locale>.md nor carry a
      shared non-localized meta file, so the folder is exposed as three
      monolingual entry collections pinned to their file by the path
      template: blog -> <slug>/meta.md, blog-fr -> <slug>/fr.md, blog-en ->
      <slug>/en.md. app_id and PKCE untouched.
      PLN (Algolia) authored
    • blog: accessors and routes for the folder model · 6a6670d9
      lib/blog.js now reads content/blog/<slug>/ (meta.md + fr.md/en.md):
      listing shows the requested language with fallback to the first
      available one, getBlogPost(slug, lang) reports untranslated posts via
      an untranslated field, and the draft/share accessors keep parsing
      <slug>-<token> from meta.md. Draft filtering stays keyed on the shared
      draftsVisible() rule, now exported from lib/content.
      
      /blog/[slug] renders the default language with an FR/EN switch when a
      post exists in both; a new /blog/[slug]/[lang] route serves the other
      language (static params only mint languages with content). A missing
      language renders an honest banner linking to the one that exists.
      yarn post scaffolds the folder shape. Flat collections are untouched.
      PLN (Algolia) authored
    • blog: migrate to the bilingual folder model · 48f3c0e4
      Each post is now a folder: meta.md (shared metadata) + one file per
      language (fr.md / en.md) carrying the localized title and body.
      Language files go where the existing prose actually is: hello-world
      and hello-world-again are French, next is English. Share tokens
      (8x6nki, szm8ld) move to meta.md so the unlisted /blog/d/ URLs keep
      working; the post image stays in public/images (no move needed).
      PLN (Algolia) authored
    • docs: article contract gains embeds — build-time code from… · 950ff8fe
      docs: article contract gains embeds — build-time code from git.nech.pl/github/raw, directive islands
      PLN (Algolia) authored
    • Archive the Phase 0 deploy · 996e9477
      PLN (Algolia) authored
    • docs: Dancing, not Dansing · 1604984c
      PLN (Algolia) authored
    • admin: Sveltia CMS over content/blog, gitlab PKCE backend · b8e47be6
      /admin serves Sveltia CMS from a pinned jsdelivr bundle (0.229.0) with a
      cms-config-url link to ./config.yml; HTML comment documents the Decap
      fallback (same config, swap the script). Backend points at git.nech.pl
      with base_url + api_root for the self-hosted instance, PKCE app_id
      filled in, implicit grant noted as fallback. Blog collection fields
      match the existing frontmatter; media folder public/images/blog with
      public_path /images/blog. scripts/new-share-token.mjs prints a random
      6-char token for the unlisted draft links.
      PLN (Algolia) authored
    • blog: unlisted draft links at /blog/d/<slug>-<token> · fe6b6c16
      Drafts with a well-formed `share` token in frontmatter ship to prod at
      /blog/d/<slug>-<token>: robots noindex/nofollow, no OpenGraph, token
      re-checked at render so a guessed slug renders nothing, tokenless drafts
      get no unlisted path. Article markup factored into a shared PostArticle;
      the public listing and /blog/[slug] keep filtering drafts out.
      
      Also: static export requires at least one prerendered variant per dynamic
      route, and prod currently has zero published posts — emit a 404 sentinel
      param so the export still ships (build broke at HEAD for this reason).
      PLN (Algolia) authored
  3. 27 Sep, 2026 4 commits
  4. 26 Sep, 2026 5 commits
  5. 25 Sep, 2026 1 commit
  6. 23 Sep, 2026 3 commits