code.pablomurad.com

patchwork

Publishes the revisions of your pages as a feed, with notes and readable diffs, written in Go

  1. 973b474
    Publish revisions as a JSON API, Atom, JSON Feed and terminal text
    
    The store now becomes something readers and sites can use. One build
    renders every file; `serve` serves it over HTTP and rebuilds after each
    scan that changed something, and `export` writes the same bytes to a
    directory.
    
    - render: public model (retracted revisions and removed pages left
      out), the v1 JSON API, Atom and JSON Feed entries marked up with
      <del>/<ins>, and plain or ANSI text for curl
    - server: routes for slugs with slashes, .json aliases, ETag and 304,
      JSON errors, /healthz
    - export: atomic swap of the output directory
    - engine: retract (later diffs are rebased), amend, rebuild-diffs,
      backfill of older copies
    - schema/v1: strict JSON Schema for the API, checked against every
      generated file
    - cli: serve, export, retract, amend, snapshot, rebuild-diffs, backup,
      health
    - excerpts sum up long runs of deleted blocks, so a rewrite's new text
      isn't cut off
    
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
    

    Pablo Murad

  2. f18feed
    Snapshot content folders and decide which edits become revisions
    
    Patchwork keeps the version history of pages that keep changing and
    publishes the revisions an author announces with a frontmatter note.
    This first commit is the core, with no feeds or HTTP yet.
    
    - slug: the moonflowersociety.org rule, checked against a parity table
      generated by the site's own JavaScript
    - doc: normalization, frontmatter, ignore regions, block splitting,
      plain text per block, word tokens, content hashes
    - diff: Myers on blocks and words, moves, modify pairing, excerpts
    - store: SQLite schema and migrations (pure Go, no cgo)
    - config: patchwork.yaml with defaults and env overrides
    - engine: baseline, silent, published, amended and folded revisions,
      two-scan removal
    - source/folder: scans with an upload settle time, watch with file
      events, debounce and polling
    - cli: init, scan, watch, log, diff, doctor, version
    
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
    

    Pablo Murad