An empty scroll
meta.kind and the reader supplies the right layout, speaker handling, and reference labels automatically.
{
"type": "hermes-book-pack",
"version": 1,
"books": [{
"meta": {
"key": "conf-1",
"en": "Confessions, Book I",
"gr": "",
"color": "#5a6b8c",
"author": "Augustine",
"kind": "prose" // dialogue | prose | verse | letters | treatise | maxims
},
"text": {
"title": "Confessions",
"translator": "E. B. Pusey",
// Optional. Relabels the jump bar; default depends on kind.
"reference": { "label": "Section", "abbr": "§", "placeholder": "e.g. 1.2" }
},
"content": [
{ "sp": "HDR", "t": "Chapter 1" },
{ "ref": "1.1", "t": "Great art Thou, O Lord..." }
],
"footnotes": []
}]
}
By kind:
prose / verse / treatise -> no speaker labels; use "ref" for
section, line, or page numbers.
dialogue / letters -> give a per-work cast, tag each line:
"text": { "speakers": { "S": "Socrates", "C": "Cebes" } }
"content": [ { "ref": "60a", "sp": "S", "t": "..." } ]
maxims -> { "sp": "MAX", "n": 1, "gr": "...", "t": "..." }
Heading anywhere: { "sp": "HDR", "t": "Section title" }
Reference token: "ref" (preferred) or legacy "st".
Images: { "sp":"IMG", "src":"data:image/png;base64,…",
"t":"Optional caption", "ref":"fig. 1" }
src may be a data URI or an https URL; a reader
taps the picture to view it full-screen.
Starter pack: run Hermes.template("prose") in the console.
Large texts: book scripts baked into the HTML may use a
gzip+base64 payload (script type
"text/x-hermes-book-gz"); the loader
decompresses them on open. Uploaded JSON
packs are stored as-is and need no
compression.