RichEPub Format Spec (Archived)

An archived note describing the earlier `.repub` container experiment and its manifest shape.

RichEPubFormatSpecification

RichEPub (.repub) is a ZIP-based container with a fixed layout and a root manifest. This post is kept as an archived note from that experiment.

Layout

  • repub.json (root): Format version, book title, author, entry path, optional dependencies map, build info.
  • content/index.html: Entry document. It loads scripts and styles from ../assets/.
  • assets/: Pre-built JS and CSS. No node_modules; everything is bundled at build time.
  • meta/ (optional): Cover image, description, for catalog/UI.

repub.json

  • formatVersion: Integer (e.g. 1). Readers reject unknown versions.
  • title: Book title.
  • author: Optional.
  • entry: Path to entry HTML (e.g. content/index.html).
  • dependencies: Optional. Map of package name to version. Declarative only; used for docs/audit.
  • buildInfo: Optional. builderVersion, buildTime (ISO 8601).

Dependencies

The dependencies object describes what the author used when building. It's typically derived from the repub project's package.json at pack time. The actual .repub does not contain node_modules; resolution and bundling happen in the builder. The reader never fetches npm.

Versioning

  • formatVersion: Bump when the container or manifest schema changes in a backward-incompatible way.
  • builderVersion: Identifies the tool that produced the file (for debugging).

The project is no longer an active part of the docs surface here, but the archive note remains useful if you need to reference the container shape later.