Publishing engine for Indigenous language documentation
A Python toolkit for building multilingual documentation websites for Indigenous languages, ecological knowledge, and community-led cultural archives.
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.
Live Platforms
Terradoc powers these community language documentation portals, built in collaboration with the Plataforma de Línguas Indígenas.
Boe Eno Moto
Bororo language — dictionary, encyclopedia, fauna, ethnobotany, bibliography
→ boeenomoto.terradoc.orgEnawenê-Nawê
Enawenê-Nawê language — dictionary, fauna, bibliography
→ enawenenawe.terradoc.orgMakurap
Makurap language — dictionary, fauna, ethnobotany, bibliography
→ makurap.terradoc.orgQuick 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