Plato Scroll

An empty scroll

Browse the Library

Install

Installed books

No books installed yet.
A book pack is a JSON file describing one or more texts of any kind — dialogue, prose, verse, letters, treatise, or maxims. Set meta.kind and the reader supplies the right layout, speaker handling, and reference labels automatically.
Show format
{
  "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.