- 06 Oct, 2026 5 commits
-
-
PLN (Algolia) authored
-
/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 -
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 -
PLN (Algolia) authored
-
PLN (Algolia) authored
-
- 27 Sep, 2026 4 commits
-
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
Same grammar as Clarté TDAH (clarte kit: ProgressHeader, QuestionCard, OptionPills, useDigitKeys), linear 25-item flow: consent-gated home with optional gender, intro, auto-advancing questions, recap with jump, results with total band + percentiles vs autistic and non-autistic norms, five interpretation caveats, copyable consult sentence, jspdf report. FR at /tsa, EN at /asd, mirroring /tdah + /adhd.
PLN (Algolia) authored -
25 items Likert 1-7 (verbatim Hull 2019 in EN, our translation in FR, flagged non-validated), items 3/12/19/22/24 reversed, subscales compensation/masking/assimilation. Percentiles via normal CDF on the Hull 2020 gender-matched norms; Baker 2024 descriptor bands on the total score. Storage contract catq:v1, same discipline as clarte:v1.
PLN (Algolia) authored
-
- 26 Sep, 2026 5 commits
-
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
- 25 Sep, 2026 1 commit
-
-
PLN (Algolia) authored
-
- 23 Sep, 2026 3 commits
-
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
- 22 Sep, 2026 2 commits
-
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
- 21 Sep, 2026 7 commits
-
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
- 06 Sep, 2026 9 commits
-
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
PLN (Algolia) authored
-
Adds remark-gfm/directive/parse/rehype, rehype-pretty-code, shiki, unified, unist-util-visit; retires remark/remark-html. Under PnP there are no real node_modules dirs — cache zips live under paths *containing* /node_modules/, so jest's transformIgnorePatterns now only excludes the css module mocks, keeping the ESM-only unified chain transformable.
PLN (Algolia) authored -
The site ships as flat files (out/) served by self-hosted nginx; every route prerenders at build. next/image ships originals (unoptimized) — optimization needs a server. The two parvagues revalidate = 60 exports go with ISR; rebuild-on-push replaces it.
PLN (Algolia) authored -
The one render chain: remark-gfm, remark-directive (mapped-tag escape hatch for future embed islands), rehype-figure, rehype-pretty-code with vesper highlighting at build time. Shipped pages are flat HTML with inline token colors and zero client JS. - lib/markdown.ts mints all /blog HTML; lib/blog.js binds the section - app/blog + app/blog/[slug] on the App Router (SSG, generateMetadata); app/post/[id] and lib/posts.js removed with the route - content/posts moved to content/blog; the 2021 entries are draft:true, hello-world-again is the one published post (engine fixture: figure captioning, shiki, GFM table) with its edge.png image - yarn post / yarn post:image scaffold posts and stage images - e2e smoke routes follow the rename
PLN (Algolia) authored -
PLN (Algolia) authored
-
- 24 Aug, 2026 1 commit
-
-
Aurora-glass cosmos, frosted-glass cards with iridescent foil edges, Fraunces + Space Mono. Hybrid DRAW/BROWSE: chilled 3D tarot flip (spring 42/22/1.3), semantic swipes (left discard, right favorite, up stash), haptics, kept-spread; realtime typotolerant search with incremental 16-card rendering. Date-seeded daily card. State in localStorage + URL hash only. Each card face carries a unique deterministic sacred-geometry figure: mulberry32 seeded on card id + hexagram codepoint drives ring count, packing, rotation, polygon overlays, and dash patterns — 187/187 distinct, with a radial-mask quiet zone keeping the central text zone clear. App Router native: server pages export metadata, interactive bodies are 'use client' leaves (ObliqueClient / DesignClient), per cosmicfest conventions. Data: 187 deduped strategies (ceejbot cross-edition superset) tagged with I Ching hexagrams. Validated on the production build: routes 200, no console errors, no horizontal overflow, tap targets >=44px, browse incremental 16->48 on scroll, geometry uniqueness 48/48 sampled distinct, daily card deals, Fraunces 25px legible on mobile.
PLN (Algolia) authored
-
- 15 Aug, 2026 2 commits
-
-
Two gaps between the live page and the canonical invite text. 1. The lineup named the three acts but linked nowhere. PLN's invite carries a destination for each, so the page now sends people to the work: ParVagues -> soundcloud.com/parvagues Nesta Flex -> soundcloud.com/antoine-renaudet shipow -> instagram.com/shipow The anchor takes `color: inherit` so the existing odd/even cyan/magenta :hover rules on .lineupName stay in charge; the underline is a 30% mix that solidifies on hover/focus-visible rather than a permanent blue link. 2. The RSVP paragraph read "une réponse avant le 1er août, ce serait top." True when written, silently wrong since 2 August, and actively confusing today — 15 August, with arrivals open and jour J six days out. A page whose copy expires is the same failure as a countdown to a date that has passed. So it reads the clock instead of a frozen sentence. Four phases off the existing JOUR_J plus three new date constants: before the deadline, after it but pre-arrivals, during the 15-23 August window, and after — which hands over to the v3.42Hz teaser from the invite. Rendered null on the server and filled in an effect, because the phase depends on the viewer's clock and a server/client disagreement is a hydration mismatch. The invariant "pas de billetterie / Riders, come to the storm" line stays outside the component, so the paragraph still reads correctly if JS never arrives. Every other fact on the page was checked against the canonical invite and already matched: 20-23 August, arrivals from the 15th, Labenne-Océan, jour J the 22nd, 10 indoor places, tents, van, 16 capacity, +1 welcome, both stations, the 15-minute Bayonne->Labenne train, the taxis, and the packing list. Verified: clean build, all three hrefs present in the prerendered HTML, and zero occurrences of "1er août" in the server output.PLN (Algolia) authored -
origin/main carried PR #7 — the entanglement-themed CosmicFest rebuild, merged 2026-06-29 and LIVE on me.nech.pl/cosmicfest ever since. Meanwhile this branch hoisted the whole app out of next/ and deleted the Pages Router. The two sides had zero overlapping paths, so a naive `git diff --name-only` check reported no conflict — and was wrong in the most expensive way available: one side had deleted the entire tree the other side was editing. Resolving "ours" would have silently deleted the invite from a page guests are reading right now, six days before the festival. Resolving "theirs" would have resurrected the Pages Router. Both merge without complaint. So: a port. Git's rename detection did most of it — Countdown, the stylesheet and EntanglementField all landed at their App Router homes automatically. Five content hunks in the page body needed hand-resolution, all "theirs, adapted": - next/pages/cosmicfest/index.js -> app/cosmicfest/CosmicFestClient.js - <Head> block -> page.js `metadata` + `viewport` exports (App Router has no <Head>; theme-color moves to `viewport` per Next 15) - kept 'use client' and the @/ path aliases over the ../../ relatives - dropped the v0 June-21st countdown; JOUR_J is now 2026-08-22T18:00:00+02:00 Also fixes a build break that predates this merge and had nothing to do with it: #161 regenerated the OPAL tracks.json from the parsers, renaming `ingredients` to `samples` AND changing its shape — rich {type,code,description} objects became bare name strings. LiveEvent.js still called track.ingredients.map(), so /parvagues/live/opal-festival-2026 threw at prerender and failed the whole build. Now renders whichever generation is present, guarded with Array.isArray so a third shape can't crash the build either. Verified: yarn build clean, 86/86 static pages. /cosmicfest 6.04 kB vs the 6.3 kB the original PR measured. Built HTML carries intrication, v2.67Hz, Labenne, the full lineup, <title>cosmicfest_v2.67Hz</title>, theme-color #1a1330, and zero occurrences of "juin". The 2026-08-22 target is present in the shipped chunk. next/ stays deleted — 0 files.PLN (Algolia) authored
-
- 14 Aug, 2026 1 commit
-
-
These timecodes were generated before #148 — back when track boundaries came from Pulsar tab-focus events rather than from the audio. Tab focus records when PLN LOOKED at a file, not when the music changed, so every cut was wrong by however long he sat on a tab before evaluating it. Regenerated from the measured boundaries (segments_v3.json) via Tidal/tools/gig-metadata.py, which now reads that shape directly and matches segments to the setlist by title rather than by position. # track was now drift 5 You My Sunshine 0:25:41 0:25:58 +18s 7 Piment Bresilien 0:36:51 0:37:07 +17s 9 Perfect 0:48:24 0:49:14 +50s 10 Gimme Acid 0:53:39 0:54:12 +33s 11 Ghosts in the Toilets 0:58:48 0:59:20 +32s 13 Vague de CRIME 1:04:33 1:04:49 +16s 14 Desire 1:09:12 1:09:40 +28s totalDuration_s 4809 -> 4769.1. Tracks 1, 12 and 15 were already correct. Only timing changed: names, order, bpmRange, styleDistribution and all 60 samplePacks diff byte-identical against the previous file, and venue/stage are carried through verbatim. This matters beyond the website — Slopmotion reads this file to cut visuals to the set, so shipping it stale would have put the cuts half a minute off the music on a third of the album.
PLN (Algolia) authored
-