Data

Your pages are your database. Each page carries a little metadata about itself, a record; other pages pull those records into listings and counts, filling templates and filtering as they go.

In this section

Records

Declare a page’s typed fields for a collection inside comments.

Records →

Listings

A filter / sort / group / limit pipeline rendered through templates.

Listings →

Counts

A filtered record tally as a singular or plural phrase.

Counts →

When something is wrong

Each site is validated on its own before it is written, and all of a site’s errors are reported together (not just the first) — one per line on stderr, each naming the page and the command. A site with any error is left untouched, but every other site still runs, so one broken or half-edited site never blocks the rest. The Records, Listings and Counts pages list their own messages; these structural ones can come from any command:

MessageWhen it appears
malformed sitehoster comment at offset …a sitehoster: comment the parser cannot read
unknown top-level command sitehoster:…a command other than duplicate, navigation, record, listing or count
sitehoster:… must be inside a sitehoster:… blocka sub-command used outside its parent block
sitehoster:… is missing a name/key/collection/fielda block opened without its identifying attribute
close sitehoster:/… with no matching open blocka closing comment with no opening one
unclosed sitehoster:… "…"an opening comment whose matching close is missing
a second master for … "…"two masters share a name within one site or group
copy … "…" has no master in group "…"a copy whose master is not defined in the site or its group

Groups

If this site belongs to a group, records are merged across every site in the group: a listing or count here can draw on records that live on another member. A record shown on its own site keeps its plain path; shown on another member it links back to the site it belongs to. On a standalone site, records stay within that site.

Next steps