Files
andwati.com/content/bookshelf/structure-and-interpretation-of-computer-programs.md
T
andwati 62db772dad Add bookshelf ISBN/paper enrichment, fix status field name collision
apps/cms/src/utils/bookshelf-covers.ts fetches book covers from Open
Library by ISBN (real image, cached into apps/site/public/covers/)
and backfills missing title/authors for papers from Semantic Scholar
by DOI/arXiv id. Wired into the sync middleware in content-sync.ts:
runs once per entry (cover_image already set means "done"), and only
on live create/update through Strapi, not during the boot-time
import (so a restart doesn't hammer external APIs).

Also renames the bookshelf `status` field to `read_status`
everywhere (schema, content/README.md, seed content, Astro zod
schema, bookshelf page, sync mapping). Strapi's content-manager API
treats a top-level `status` key as its own reserved draft/publish
parameter even with draftAndPublish disabled, so an attribute
literally named `status` silently rejected every write — caught this
while testing the enrichment hook.

Verified end-to-end: created a book by ISBN with no cover_image,
confirmed a real cover image was downloaded and cached, cover_image
was set on the entry and written to the file, and the cover/file were
both removed on delete.
2026-08-30 18:52:39 +03:00

452 B

+++ title = "Structure and Interpretation of Computer Programs" kind = "book" authors = ["Harold Abelson", "Gerald Jay Sussman"] isbn = "9780262510875" cover_image = "/covers/structure-and-interpretation-of-computer-programs.jpg" rating = 5 read_status = "read" date_started = 2026-01-01 date_finished = 2026-01-20 [taxonomies] tags = ["computer-science", "programming"] +++

Placeholder review establishing the bookshelf schema for kind = "book".