| applyTo | **/*.bib,_bibliography/** |
|---|---|
| excludeAgent | code-review |
The al-folio repository uses BibTeX for managing publications. All entries are stored in _bibliography/papers.bib.
@article{key,
title={Title},
author={Author, A. and Author, B.},
journal={Journal Name},
volume={10},
pages={1--20},
year={2023},
publisher={Publisher Name}
}
@inproceedings{key,
title={Title},
author={Author, A.},
booktitle={Proceedings of Conference},
year={2023}
}
@book{key,
title={Book Title},
author={Author, A.},
publisher={Publisher Name},
year={2023}
}Beyond standard BibTeX fields, al-folio supports custom keywords for rich publications display:
- abstract: Full abstract text (multi-line text in curly braces)
- award: Award or distinction (
award: Best Paper Award) - code: URL to source code repository (
code: https://github.com/user/repo) - dimensions: Dimensions badge ID for citation metrics
- doi: Digital Object Identifier (
doi: 10.1234/example) - html: URL to full text or project page (
html: https://example.com) - pdf: URL or path to PDF file (
pdf: /assets/papers/2023-paper.pdf) - poster: URL to conference poster (
poster: /assets/posters/poster.pdf) - preview: URL to preview image (
preview: /assets/img/papers/paper-preview.jpg) - selected: Boolean to feature on publications page (
selected: true) - slides: URL to presentation slides (
slides: /assets/slides/2023.pdf)
@article{smith2023important,
title={Important Research},
author={Smith, John and Doe, Jane},
journal={Nature},
volume={100},
pages={1--10},
year={2023},
publisher={Nature Publishing Group},
abstract={This is the full abstract text. It can span multiple lines.},
pdf={smith2023.pdf},
code={https://github.com/example/repo},
preview={smith2023.jpg},
doi={10.1234/nature.12345},
selected={true}
}- Unique keys: Each entry must have a unique key (first parameter)
- Author names: Separate multiple authors with
and - Curly braces: Protect capitalized words in titles with
{Curly Braces}to preserve capitalization - Special characters: Use LaTeX escape sequences (
{\e}for é,{~n}` for ñ) - URLs: Place URLs in
{curly braces}to prevent issues - Alphabetical order: Keep entries alphabetically sorted by key
- ❌
author=Smith, John→ ✅author={Smith, John} - ❌
journal=Science→ ✅journal={Science}orjournal = "Science" - ❌
title=Deep Learning(loses capitalization) → ✅title={Deep Learning}ortitle={{D}eep {L}earning} - ❌
pdf=http://...→ ✅pdf={http://...}
The jekyll-scholar plugin processes BibTeX and generates bibliography pages.
- Entries in
_bibliography/papers.bibare read - Pages marked with
layout: bibrender the bibliography - Posts/pages can reference entries using
{% cite key %} - Custom keywords control what displays on publication entries
In pages/posts, use:
{% cite key %}– Cite an entry inline{% bibliography %}– Display full bibliography
When using pdf, poster, preview, or similar fields:
- PDF files: Use just the filename (automatically resolved to
assets/pdf/)- Example:
pdf={smith2023.pdf}→ resolves toassets/pdf/smith2023.pdf
- Example:
- Preview images: Use just the filename (automatically resolved to
assets/img/publication_preview/)- Example:
preview={smith2023.jpg}→ resolves toassets/img/publication_preview/smith2023.jpg
- Example:
- Absolute URLs: Include full URL for external resources
- Example:
code={https://github.com/user/repo} - Example:
html={https://example.com/paper}
- Example:
- Syntax check: Verify no unclosed braces or quotes
- Build test:
docker compose down docker compose up # Check output for "ERROR" or "Invalid bibtex" # Publications should render at http://localhost:8080/publications/
- Publication page: Open publications page and verify entries display correctly
Invalid bibtex reference 'key'– Key doesn't exist in papers.bibUnmatched braces– Missing closing brace in entryUnknown entry type– Entry type (after @) is misspelledPDF not found– Path in pdf field is incorrect
- Add entry to
_bibliography/papers.bib - Use consistent key naming (e.g.,
LastnameYearorLastname2023details) - Ensure all required fields are present
- Test build:
docker compose up
- Can change any BibTeX field without breaking Jekyll
- Adding custom keywords (pdf, code, etc.) enriches display
- Test build after modifications to verify display
- Delete or comment out (prefix with
%) the entire entry - No broken reference check needed; Jekyll-Scholar handles missing keys gracefully
When working with BibTeX:
- Follow the standard format shown in examples above
- Always test locally with
docker compose upafter changes - Check the publications page at http://localhost:8080/publications to verify display
- Only search for additional details if encountering error messages not mentioned here