This repository contains the source code and build system for the Anthology of Computers and the Humanities website.
The Anthology is an, open-access digital archive that hosts peer-reviewed conference papers from digital humanities conferences and workshops. The archive is indexed across popular scholarly indices and includes support for persistent identifiers including DOIs (Digital Object Identifiers) and ORCID iDs.
This project uses uv for Python package and environment management.
- Python 3.13 or higher
- uv package manager
- XeLaTeX (for PDF compilation)
- Pandoc (for HTML generation)
- Install uv if you haven't already:
curl -LsSf https://astral.sh/uv/install.sh | sh- Clone this repository:
git clone https://github.com/dh-tech/anthology-ch.git
cd anthology-ch- Install the project and its dependencies:
uv sync- The build tool will be available as the
anthologycommand:
uv run anthology --helpThe build system operates in two distinct phases: prepare and build.
The prepare command copies input files from the input/ directory to the
docs/volumes/ output directory and prepares them for building.
uv run anthology prepare [OPTIONS]Options:
-v, --verbose- Show detailed output--volume <name>- Prepare only a specific volume (e.g., 'vol0001' or '1')
What it does:
- Adds DOIs to papers with placeholder values
- Copies LaTeX files, bibliographies, and figures to the output directory
- Sets paper order numbers within each volume
- Saves metadata for input-independent building
Example:
# Prepare all papers
uv run anthology prepare
# Prepare only volume 1 with verbose output
uv run anthology prepare --volume 1 --verboseAfter this step, papers can be built without access to the input directory.
The build command compiles papers from the output directory and generates all necessary files for the website.
uv run anthology build [OPTIONS]Options:
-v, --verbose- Show detailed output and LaTeX errors--volume <name>- Build only a specific volume (e.g., 'vol0001' or '1')
What it does:
- Discovers papers in the output directory
- Compiles papers to PDF using XeLaTeX
- Adds metadata (page numbers, volume info)
- Recompiles with final metadata
- Cleans auxiliary files
- Renames PDFs to their DOI-based names
- Generates BibTeX citations
- Generates HTML versions of papers
- Generates volume index pages
- Generates Crossref XML metadata for DOI registration
- Generates sitemap.xml
- Generates RSS feed
- Generates main table of contents
Example:
# Build all papers
uv run anthology build
# Build only volume 2 with verbose output
uv run anthology build --volume 2 --verboseImportant: Run anthology prepare before running anthology build.
This project uses ruff, ty, and pytest for testing and code verification. These can be run with the following (run them one by one):
uv run ruff check --select I --fix
uv run ty check .
uv run ruff check .
uv run ruff format .
uv run pytest