Torchio is a prototype static-site engine that turns TEI P5 XML texts into accessible multi-page digital scholarly editions—including critical apparatus, indices, maps, and data exports—published from a git repository with no server or database.

Stars

3

7-day growth

No data

Forks

1

Open issues

0

License

MIT

Last updated

2026-07-31

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It takes a principled, TEI-native approach: rendering is driven by TEI model classes, the edition's ODD customization acts as configuration, and the test suite checks coverage of the entire P5 element set at every TEI release.

Who it is for

  • Scholarly editors and digital humanists working with TEI P5 texts
  • Libraries, archives, and research projects publishing critical editions
  • Developers and technical maintainers of static digital edition sites

Use cases

  • Publishing a TEI XML critical edition as a static multi-page scholarly site
  • Generating indices, maps, and data exports (XML, CSV, JSON) from an edition model
  • Customizing rendering behaviors through TEI ODD declarations
  • Running edition builds and automated checks in a git-based CI workflow

Strengths

  • No runtime dependencies and no server/database required
  • Behavior assigned via TEI model classes with explicit coverage checks for the whole P5 element set
  • ODD customization as the configuration source, with a documented JSON data model
  • Generated pages assert WCAG AA contrast and keyboard accessibility

Considerations

  • Prototype under development, not yet a stable release
  • Optional features can call external services (OSM map tiles, UDPipe lemmatizer) and require appropriate attribution/consent
  • Editors are expected to use Node >=18 and a git/static-hosting/CI environment for publishing

README quick start

Torchio

Torchio turns XML-TEI P5 encoded texts into static digital scholarly editions: multi-page sites with reading text, critical apparatus, indices, maps and data exports, published from a git repository (GitHub Pages or any static host), with no server and no database.

Project home: , where the press runs in the browser and wishes can be filed.

Demo editions: , kept in their own repository, emmcarbe/torchio-demos, so that materials with limited rights stay apart from the engine.

Status: prototype under development. How to use it: USAGE.md. The principles, the method and the origin of the project are in PRINCIPLES.md; corrections required by real editions are recorded in CORRECTIONS.md; wishes go in DESIDERATA.md.

Design constraints

  1. Every well-formed TEI document is always displayed in full. Unknown or custom constructs receive a base rendering.
  2. Rendering behaviour is assigned to TEI model classes, not to individual elements. The class data is generated from the official p5subset (currently 588 elements, 127 model classes); coverage of the whole P5 element set is checked by the test suite at every TEI release.
  3. The edition's ODD customization is the configuration. Custom elements declared memberOf a TEI class inherit its behaviour. Following the Guidelines' conformance chapter, extensions concern phenomena P5 does not already cover.
  4. The engine produces a documented data model (JSON); pages and exports (XML, CSV, JSON) are generated from the model, not from ad hoc transformations of the XML.
  5. No runtime services. The same code runs in the browser and in Node; hosting, versioning and CI (continuous integration, the automated checks a repository runs at every change) belong to the edition's repository.
  6. The markup decides which pages and functions exist; the optional manifest (torchio.json) decides their presence, order and labels.
  7. Generated pages meet WCAG AA contrast (asserted per theme in the test suite) and are keyboard-accessible.
  8. Interface language: English or Italian, set in the manifest or derived from the edition's langUsage.

Layout

  • src/xml.js — XML parser (no dependencies; validation belongs to the edition's CI)
  • src/classes.js, `data/p5-classes.jso

Related repositories

Similar projects matched by category, topics, and programming language.

S40911120
Featured
S40911120 GitHub avatar

recensa

Recensa is a self-hosted web viewer that indexes Claude Code session transcripts into a local SQLite database, enabling full-text search, replay, and audit of all past agent conversations without uploading data anywhere.

AI & Machine LearningLarge Language Models
67
deerwork-ai
Featured
deerwork-ai GitHub avatar

deer-workflow

An open-source Dynamic Workflow runtime that combines deterministic TypeScript orchestration with replaceable Agent runtimes.

AI & Machine LearningLarge Language Models
312
programmersd21
Featured
programmersd21 GitHub avatar

flow

flow is a minimalist terminal dashboard that displays real-time network throughput with smooth animations, multiple responsive modes, and zero configuration.

Developer ToolsCLI & Terminal
277