Automated Publication Management
Automated Publication Management
This repository now includes an automated system for managing publications using BibTeX format.
Overview
Instead of manually maintaining the publication list in _includes/all_publications.md
, you can now:
- Add publications to
_data/publications.bib
in standard BibTeX format - Run the generation script to automatically create the formatted markdown
- Easily include links to arXiv, code repositories, and paper PDFs
Quick Start
- Install dependencies:
make install
Edit publications: Add your publications to
_data/publications.bib
- Generate the publication list:
make publications
- Optional: Set up Git hook for automatic generation:
git config core.hooksPath .githooks
BibTeX Format
Standard Fields
title
: Paper titleauthor
: Authors (standard BibTeX format)year
: Publication yearbooktitle
: Conference name (for @inproceedings)journal
: Journal name (for @article)
Custom Fields for Links
arxiv
: URL to arXiv preprintpaperurl
: URL to official paper (PDF/DOI)code
: URL to code repositorystatus
: Either “preprint” or “accepted” (defaults to “accepted”)
Example Entry
@inproceedings{my_paper_2024,
title={My Amazing Paper Title},
author={Smith, John and Doe, Jane},
booktitle={ICML},
year={2024},
arxiv={https://arxiv.org/abs/2401.00000},
code={https://github.com/user/repo},
status={accepted}
}
Venue Mapping
The system automatically maps venue names to the proper format:
ACL
→ACL'25
KDD
→KDD'24
orKDD'25
(based on year)IJCAI
→IJCAI'25
NeurIPS
→Neurips'24
- etc.
File Structure
_data/
publications.bib # BibTeX source file
_includes/
all_publications.md # Generated markdown (don't edit manually)
scripts/
generate_publications.py # Generation script
requirements.txt # Python dependencies
Makefile # Convenient commands
Adding New Publications
- Open
_data/publications.bib
- Add your new publication in BibTeX format
- Set the
status
field to “preprint” or “accepted” - Add URLs for
arxiv
,code
, andpaperurl
as needed - Run
make publications
to regenerate the list
Customization
To modify the output format, edit scripts/generate_publications.py
:
- Venue mapping: Update the
venue_map
dictionary informat_venue()
- Link formatting: Modify the
format_links()
function - Section organization: Adjust the
generate_markdown()
function
Troubleshooting
Missing Dependencies
pip install bibtexparser==1.4.0
BibTeX Parsing Errors
- Ensure proper BibTeX syntax
- Check for unmatched braces
{}
- Verify all required fields are present
Custom Venues
Add new venue mappings in the venue_map
dictionary in scripts/generate_publications.py
.
Git Hook (Optional)
A pre-commit hook is provided that automatically regenerates the publication list when _data/publications.bib
is modified:
- Enable the hook:
git config core.hooksPath .githooks
- How it works:
- When you commit changes to
_data/publications.bib
- The hook automatically runs
scripts/generate_publications.py
- The updated
_includes/all_publications.md
is added to your commit
- When you commit changes to
This ensures the publication list is always up-to-date with your BibTeX file.