๐Ÿ–ฅ Projects

๐Ÿ“‚ Site map

Latest record:

I shipped Podlite 2.0 this week. The release is mostly about what a single block can carry, and the one I already reach for daily is =data-table: I point a block at a CSV or TSV file and it renders as a table โ€” instead of laying the table out by hand and re-spacing every column each time a value changes.

The other seven additions follow the same idea. =set pre-configures attributes for the next block, so a long caption or a shared setting lives in one place. G<> and :masked keep content hidden until you choose to show it โ€” useful for spoilers, exercise answers, or notes meant for one audience. =boundary is a typed section divider a tool can read, not just a line on the page. And =table now warns about malformed rows instead of quietly corrupting the output โ€” a small thing that has bitten me before.

Underneath the feature list there is the thread I keep pulling on: a document should mean the same thing whether a person or an agent reads it. Each block in 2.0 is a contract โ€” explicit type, named attributes โ€” so the parser and the pod6.in editor can rely on it, and so can whatever agent opens the file next. That is the part I care about most.

Two things parse differently now: a few legacy string-attribute formats were removed, and =include is classified as a directive. Both are parser-side โ€” a well-formed v1.0 document renders unchanged, so there is nothing to migrate in your own text.

Full write-up ยท Spec ยท Release notes ยท Try it live