@foliolang/reader
v0.2.0
Published
Zero-dependency reader SDK for Folio HTML — parse rendered Folio documents into typed Block[] records.
Readme
@foliolang/reader
Zero-dependency reader SDK for Folio HTML.
Given a rendered .folio document (HTML string), returns typed Block[] and Data[] records. Useful for agents consuming Folio content as structured input.
Install
npm install @foliolang/readerUsage
import { read } from "@foliolang/reader";
const html = await fetch("https://folio.dirctable.com/p/some-article").then(r => r.text());
const { title, blocks, data } = read(html);
console.log(title); // "An article"
console.log(blocks[0].cmd); // "/insert-chart"
console.log(blocks[0].refs); // ["sales"]
console.log(data.find(d => d.name === "sales")?.value); // [{q: "Q1", v: 100}, ...]API
read(html: string): FolioReaderResultReturns:
version— Folio Spec version the document declarestitle—<title>textblocks— array of:::command-block records{ id, cmd, refs, body, renderedHtml }data— array of@-named data-block records{ name, type, value }
The reader prefers the JSON-LD <script> tag (canonical machine-readable layer per Folio Spec §3.3). When absent, it falls back to scraping data-folio-* attributes from the DOM.
License
MIT.
