Skip to content

achorg/anthology-ch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anthology of Computers and the Humanities

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.

Setup

This project uses uv for Python package and environment management.

Prerequisites

  • Python 3.13 or higher
  • uv package manager
  • XeLaTeX (for PDF compilation)
  • Pandoc (for HTML generation)

Installation

  1. Install uv if you haven't already:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Clone this repository:
git clone https://github.com/dh-tech/anthology-ch.git
cd anthology-ch
  1. Install the project and its dependencies:
uv sync
  1. The build tool will be available as the anthology command:
uv run anthology --help

Build Process

The build system operates in two distinct phases: prepare and build.

Phase 1: Prepare

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:

  1. Adds DOIs to papers with placeholder values
  2. Copies LaTeX files, bibliographies, and figures to the output directory
  3. Sets paper order numbers within each volume
  4. 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 --verbose

After this step, papers can be built without access to the input directory.

Phase 2: Build

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:

  1. Discovers papers in the output directory
  2. Compiles papers to PDF using XeLaTeX
  3. Adds metadata (page numbers, volume info)
  4. Recompiles with final metadata
  5. Cleans auxiliary files
  6. Renames PDFs to their DOI-based names
  7. Generates BibTeX citations
  8. Generates HTML versions of papers
  9. Generates volume index pages
  10. Generates Crossref XML metadata for DOI registration
  11. Generates sitemap.xml
  12. Generates RSS feed
  13. 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 --verbose

Important: Run anthology prepare before running anthology build.

Testing

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7