Package atessera.json


package atessera.json
Provides the document model classes.

This package defines the structured descriptions of publications and presentations that serve as the primary input format for the entire Alpha Tessera pipeline. Each model class is a JSON-serializable DTO (via Gson) that captures both metadata (title, authors, date, etc.) and content (sections, frames, figures).

Key classes

PublicationContent
Complete description of a publication (book, paper, thesis, etc.): bibliographic metadata, page geometry, abstract, table of contents settings, and a list of typed content sections.
Section
A single content section within a publication. Each section has a type (Markdown, LaTeX, equation, listing, MetaPost, GNUPlot, Graphviz, etc.) and the corresponding source text.
PresentationContent
Complete description of a presentation: title, authors, theme, and a list of frames (slides).
Frame
A single slide within a presentation, with a type, title, subtitle, and source content.
Figure
A standalone figure (MetaPost, GNUPlot, PlantUML, or Graphviz) associated with a presentation.

Data flow

These model objects are the entry point of the pipeline:

 JSON string
     │
     ▼
 PublicationContent / PresentationContent   (this package)
     │
     ▼
 atessera.templ                              (Velocity templates)
     │
     ▼
 atessera.comp                               (external compilers)
     │
     ▼
 PDF output
 

Serialization

Both PublicationContent and PresentationContent provide static toJson() and fromJson() convenience methods. Null-safe: fromJson(null) and fromJson("") return an empty default instance.

See Also: