To add a new volume:
- Place the articles (one article per directory) inside of
ingest(see the format below). - Add the volume metadata to
static/metadata.json. - Set
VOLUMEiningest.pyto the new volume number. - Run
uv run ingest.py. - Run
uv run build.py, which will build the first version of the new volume. - Change the volume number in
pages.py. - Run
uv run pages.pyto get the correct page numbers for the volume. - Add the volume slug to the variable
REBUILD_VOLin build.py. - Run
uv run build.pyto rebuild the PDF files. - Remove the
REBUILD_VOLto avoid rebuilding the PDF files in future runs.
Each article lives in its own subdirectory of ingest/. ingest.py copies the
whole directory into docs/volumes/volXXXX/<slug>/, so include everything the
paper needs to compile and nothing else.
Required in every directory:
paper.tex— must be named exactly this.ingest.pyskips a directory that has nopaper.tex, and skips it with a warning unless the file defines\title,\pagestart,\pageend, anabstractenvironment, and at least one\author. The\doi,\paperorder,\pubyear,\pubvolume,\conferencename, and\conferenceeditorsfields are filled in automatically during ingest, so their submission values don't matter.bibliography.bib— the bibliography pulled in by\addbibresource.biberruns against it during the build.- Any figures or media referenced by
\includegraphics, kept at the relative paths used inpaper.tex(e.g. amedia/orimages/subdirectory).
Not required — the build supplies these itself:
anthology-ch.cls— the canonical class lives indocs/resources/template-latex/and is found automatically viaTEXINPUTS.- The
fonts/directory —build.pyreads fonts from the top-levelfonts/and symlinks them into each paper dir at compile time. orcid.png,Makefile, and other template boilerplate — resolved from the shared template or unused by the build.
Shipping these extra files is harmless (they're just copied along) but
unnecessary; a minimal directory is paper.tex, bibliography.bib, and its
figures.
To add the metadata to CrossRef:
- Sign in the Crossref at https://doi.crossref.org/servlet/useragent
- Click on Submissions => Upload, select "Metadata" and upload the XML file.
- You should get an email that it succeeded.
For other updates:
- Set
REBUILD_VOLif you need to recreate all of the PDF files from a volume. - Run
uv run build.pyto build the HTML pages.