尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Public website and archive for The Weekly Thing, Jamie Thingelstad's weekend newsletter since 2017 — a render surface of the Studio publishing brain.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
The public website for The Weekly Thing — a newsletter Jamie has
published every weekend since May 2017. This repo is a render surface. Authoring and publishing
live in WT Builder (wt-builder); the canonical issue archive, corpus, and Librarian API live in
librarian-thing. This repo builds and deploys the site from the inputs they commit in.
Live URL: weekly.thingelstad.com
Site generator: Eleventy 3.x with Nunjucks templates
Hosting: GitHub Pages
Search: Pagefind (static, runs post-build)
Analytics: Tinylytics (privacy-focused, cookie-free)查看完整 README ↗The public website for The Weekly Thing — a newsletter Jamie has
published every weekend since May 2017. This repo is a render surface. Authoring and publishing
live in WT Builder (wt-builder); the canonical issue archive, corpus, and Librarian API live in
librarian-thing. This repo builds and deploys the site from the inputs they commit in.
Live URL: weekly.thingelstad.com
Site generator: Eleventy 3.x with Nunjucks templates
Hosting: S3 + CloudFront, with real 301 redirects (GitHub Pages until 2026-10-26; see AGENTS.md)
Search: Pagefind (static, runs post-build)
Analytics: Tinylytics (privacy-focused, cookie-free)
A pure render surface, plus its own landing-page stats:
wt-builder); the archive, corpus, and API are
librarian-thing.Producer → render split. WT Builder authors each issue and, on send, commits the 11ty inputs here
as one atomic handoff — and commits the canonical issue text into librarian-thing/data/issues/.
librarian-thing pushes one file here: the topic graph. This repo just builds and deploys. See
librarian-thing/ALIGNMENT.md for the full model. (Until WT Builder's first real issue ships, the
Shortcuts workflow remains the fallback producer.)
| Path | What it is |
|---|---|
apps/site/ | The Eleventy static site — landing page, full archive, feeds. The only app here. |
apps/files-cdn/ | robots.txt for the files.thingelstad.com public asset domain. |
apps/site/archive/*.md | Generated, pushed in by WT Builder. One page per issue. Do not edit here (the next handoff overwrites). |
apps/site/_data/ | A mix: fetched by this repo's CI (stats.json), hand-authored (site.js, support.json, quotes.json, faq.json, …), vendored from the thingelstad.com shared/sites.json (sites.json, via npm run sites:sync), and computed at build time from the issue pages (archiveStats.js, topics.js, redirects.js, through apps/site/lib/issueIndex.js). |
data/librarian/graph.json | Topic graph, pushed by librarian-thing; powers the site's topic pages. |
tests/e2e/ | Playwright end-to-end tests for the rendered site + the legacy Thingy redirect. |
Editorial bodies and the archive live in librarian-thing (data/issues/{N}/); authoring and
publishing live in WT Builder. Start at wt-builder/README.md and librarian-thing/README.md.
WT Builder produces, weekly renders. WT Builder holds the live issue, renders the editions, and on
send commits the issue's 11ty page here (apps/site/archive/{N}.md) and the canonical
text into librarian-thing/data/issues/{N}/. librarian-thing rebuilds the corpus from that and
pushes data/librarian/graph.json here. This repo's CI
runs Eleventy + Pagefind, fetches its own landing-page stats, and publishes to S3 and CloudFront. Thingy runs
as a standalone app at thingy.thingelstad.com; this site links and
redirects readers to its chat surface.
npm ci
npm run build # Eleventy
npm run build:search # Pagefind
npm test # build + Pagefind, then Playwright e2e against the built _site/
Working on issue content? That's a WT Builder task, not a weekly one. The apps/site/archive/*.md
files here are generated and overwritten by the next handoff — edit the issue in WT Builder and
re-send; historical repairs go in librarian-thing/data/issues/{N}/archive.md.
Weekly holds only the credentials its own concerns require — currently the landing-page stats fetch
(subscriber/supporter numbers). It is not the producer: the publishing secrets (Buttondown, OpenAI
TTS, AWS, GitHub handoff) live in WT Builder, and the corpus/Lambda deploy secrets live in
librarian-thing.
The deploy assumes an AWS role through GitHub's OIDC token (vars.AWS_DEPLOY_ROLE_ARN); no AWS keys are stored.
| Path | Template | What it is |
|---|---|---|
/ | index.njk | Landing page — hero, value prop, reader quotes, latest issue, membership |
/archive/ | archive/archive.njk | Browsable index of every issue, grouped by year |
/archive/N/ | Generated .md per issue | Issue page with TOC, domains, prev/next nav |
/about/ | about.njk | Full bio + story |
/members/ | support.njk | Supporting Membership, current + past nonprofits |
/search/ | search.njk | Pagefind search with bookmarkable URLs |
/faq/ | faq.njk | FAQ |
/feed.xml | feed.njk | Atom feed (all issues) |
/archive/N/links.xml | issue-links-feed.njk | Per-issue links feed |
/podcast.xml | podcast.njk | Podcast RSS feed |
/thingy/ | librarian.njk | Redirect to standalone Thingy chat at thingy.thingelstad.com |
Editorial, magazine-like. Source Serif 4 for display + italic accents, Source Sans 3 for body/UI,
JetBrains Mono for eyebrows and meta. Generous whitespace. #fcfcfa background, #1f6fd6 accent (deep
#134d99, soft #e1edff), dark mode via prefers-color-scheme. No JS required for core reading — JS
only for the subscribe form, Pagefind search, archive year filter, Thingy handoffs, and Tinylytics.
Mobile-first and accessible: heading hierarchy, alt text, color contrast, keyboard nav. Every page opens
with the sites strip shared by all of Jamie's sites (Inter, its own fixed colours; the
contract is in the thingelstad.com AGENTS.md), built from the vendored _data/sites.json.
The authoring happens in WT Builder, not here. Jamie assembles the issue there; sending runs per
destination — audio to the CDN, the email draft to Buttondown, the site inputs committed to this repo
(which triggers the render-and-deploy below), and the canonical text committed to
librarian-thing/data/issues/ for the corpus. Weekly is purely the last hop.
markdown-it-anchor — body rendering with heading IDsPublished continuously since May 13, 2017, across three email platforms (Tinyletter → MailChimp →
Buttondown). All bodies live in librarian-thing/data/issues/{N}/; the era-specific extraction rules
live in librarian-thing's librarian_core.links.