Publication Maintenance Workflow
Publication Maintenance Workflow
This site has a lightweight data-driven workflow for publications and technical reports. The goal is that a new paper only needs a YAML file or BibTeX entry, plus a short topic list.
Daily Commands
make validate
make preview-publication PUBLICATION=scripts/templates/publication.yml
make preview-publication PUBLICATION=scripts/templates/publication.bib TOPICS="LLM Systems,Data & Evaluation"
make new-publication PUBLICATION=path/to/publication.yml
make link-list
make build
make link-list only inventories URLs and does not touch the network. make check-links performs live HTTP checks and is better for scheduled CI because publisher sites sometimes rate-limit local requests.
Add From YAML
- Copy
scripts/templates/publication.ymlto a scratch file. - Fill in
slug,collection,title,authors,venue,date,links,topics, and optionalabstract/bibtex. - Preview the generated publication file:
ruby scripts/publication_tools.rb new path/to/publication.yml --dry-run
- Generate the publication card data:
ruby scripts/publication_tools.rb new path/to/publication.yml
Use collection: technical_reports for a technical report. The script writes to _technical_reports/ and adds type: "Technical report" automatically.
Add From BibTeX
Start from scripts/templates/publication.bib or paste a downloaded BibTeX entry into a scratch file:
ruby scripts/publication_tools.rb new paper.bib \
--topics "LLM Systems,Data & Evaluation" \
--dry-run
BibTeX import now parses nested braces and infers common metadata:
booktitle,journal,venue,archivePrefix, and URLs are mapped to canonical venues such asICLR,ICML,NeurIPS,COLM,arXiv, andbioRxiv.url,doi, and arXiveprintfields become structured links.- arXiv/bioRxiv-only entries are routed to
technical_reports; conference/journal entries stay inpublications. - Existing titles are checked before writing. Use
--allow-duplicateonly when the duplicate is intentional.
YAML is still preferred when you want abstracts, highlights, multiple custom links, or a hand-tuned slug.
Validate Before Build
Run this before opening a PR:
make validate
make link-list
bundle exec jekyll build --trace
The validator checks active files in _publications/*.md and _technical_reports/*.md. It ignores archived files in nested folders such as _publications/__old/.
It verifies:
- Required front matter:
title,date,venue,pubtype, andexcerpt pubtypematches the year parsed fromdate- Technical reports use
type: "Technical report" - Every active publication has topics in
_data/publication_topics.yml - Every active publication has at least one link in structured data, front matter, or its excerpt
- Structured link entries have
labelandurl - Topic/link/highlight/featured/research-theme data does not reference stale publication slugs
- Active publication titles are not duplicated
- Repeated URLs inside the same structured link list are reported as warnings
GitHub Actions runs metadata validation and a Jekyll build on pull requests. A scheduled weekly workflow runs live publication link checks and only fails for clearly broken links such as 404/410 or invalid URLs; timeouts, TLS issues, 403s, and 5xx responses are reported as warnings.
