Terradoc Terradoc

Publishing engine for Indigenous language documentation

A Python toolkit for building multilingual documentation websites for Indigenous languages, ecological knowledge, and community-led cultural archives.

$ pip install terradoc

What Terradoc Does

Terradoc converts structured project data into a complete static website. It validates data integrity, converts source formats, and generates HTML pages and JSON assets that can be published on any standard static hosting.

Structured Data

Lexical records, encyclopedia articles, fauna, ethnobotany, bibliography, recordings, and videos as validated source files.

Multilingual

Locale-based navigation and page generation. Interface text in any language; content rendered across locales.

Static Output

No database, no application server. Deploy to GitHub Pages, a VPS, or any web host.

Community-Governed

File-based content workflows that can be reviewed, archived, and controlled by the communities they serve.

Customizable

Theme presets, per-module decoration intensity, template overrides, and full YAML configuration.

Data Validation

ID format enforcement, cross-reference integrity, bibliography key resolution, and category vocabulary checks.

Content Modules

Each module handles a specific type of documentation material. Enable only what your project needs.

Dictionary
Encyclopedia
Fauna
Ethnobotany
Bibliography
Recordings
Videos
Corpus

Quick Start

Install from PyPI and scaffold a new project:

$ pip install terradoc
$ terradoc init my-project
$ cd my-project

Add your data files, configure terradoc.yaml, and build:

$ terradoc build

The generated site is written to docs/, ready to publish.

Project Structure

my-project/
  terradoc.yaml          # project configuration
  config/
    templates/           # optional template overrides
    dictionary.yaml      # per-module display config
    fauna.yaml
    ...
  data/
    dictionary.tsv       # lexical records
    encyclopedia/        # Markdown articles with YAML front matter
    fauna.yaml           # fauna entries
    ethnobotany.yaml     # ethnobotanical knowledge
    references.bib       # BibTeX bibliography
    ...
  locales/               # interface translations
  docs/                  # generated output