This pull request introduces several documentation improvements and adds comprehensive Copilot and agent instruction files to the al-folio repository. The most significant changes are the addition of repository-wide and path-specific Copilot instructions, updates to agent documentation to reference these instructions, and improvements to the documentation structure and clarity regarding file purposes and workflows. **Copilot and Agent Instruction Enhancements:** - Added a new `.github/copilot-instructions.md` file providing detailed, repository-wide setup, build, CI/CD, troubleshooting, and file format guidance for Copilot coding agents. - Introduced `.github/instructions/bibtex-bibliography.instructions.md` with specific instructions for editing and validating BibTeX files, including custom keywords, formatting rules, and integration with Jekyll-Scholar. - Updated agent documentation files (`customize.agent.md`, `docs.agent.md`) to reference the new Copilot instruction files and explain their purpose and usage for both repository-wide and path-specific scenarios. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L57-R65) [[2]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L107-R122) [[3]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L49-R51) [[4]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L106-R137) **Documentation Structure and Clarity Improvements:** - Clarified and reorganized the documentation file list in agent files, removing references to deprecated or merged files (e.g., `MAINTENANCE.md`, `ACCESSIBILITY.md`) and updating descriptions to reflect current usage. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L57-R65) [[2]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L21-R21) [[3]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L106-R137) - Enhanced documentation on the purpose and application of each documentation file, and added detailed explanations of Copilot instruction files and their role in project development. **Workflow and Validation Updates:** - Updated references and descriptions for GitHub Actions workflows in agent documentation to include the Copilot environment setup and clarify pre-commit and CI/CD requirements. [[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L57-R65) [[2]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L49-R51) - Corrected references for accessibility guidance, now directing users to `TROUBLESHOOTING.md` instead of the removed `ACCESSIBILITY.md`. These changes collectively improve the onboarding experience for both human contributors and AI agents, ensuring consistent adherence to project conventions and reducing errors. **References:** [[1]](diffhunk://#diff-227c2c26cb2ee0ce0f46a320fc48fbcbdf21801a57f59161b1d0861e8aad55f5R1-R253) [[2]](diffhunk://#diff-6fd2827fb8d9c2dd6dc973572201853487ecbbd1120b00425d4f1c21dfdcf35fR1-R174) [[3]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L57-R65) [[4]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L107-R122) [[5]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L550-R562) [[6]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L21-R21) [[7]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L49-R51) [[8]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L106-R137) --------- Signed-off-by: George Araújo <george.gcac@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
5.6 KiB
5.6 KiB
| applyTo | excludeAgent |
|---|---|
| **/*.bib,_bibliography/** | code-review |
BibTeX Bibliography Instructions
BibTeX Format Basics
The al-folio repository uses BibTeX for managing publications. All entries are stored in _bibliography/papers.bib.
Standard BibTeX Entry Types
@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}
}
al-folio Custom BibTeX Keywords
Beyond standard BibTeX fields, al-folio supports custom keywords for rich publications display:
Available Custom Keywords
- 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)
Example Entry with Custom Keywords
@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}
}
Formatting Rules
Key Considerations
- 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
Common Mistakes to Avoid
- ❌
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://...}
Jekyll-Scholar Integration
The jekyll-scholar plugin processes BibTeX and generates bibliography pages.
How it Works
- 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
Displaying Publications
In pages/posts, use:
{% cite key %}– Cite an entry inline{% bibliography %}– Display full bibliography
File Paths in BibTeX
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:
Validation
Before Committing BibTeX Changes
- 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
Common BibTeX Build Errors
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
Editing and Maintenance
Adding New Entries
- Add entry to
_bibliography/papers.bib - Use consistent key naming (e.g.,
LastnameYearorLastname2023details) - Ensure all required fields are present
- Test build:
docker compose up
Modifying Existing Entries
- Can change any BibTeX field without breaking Jekyll
- Adding custom keywords (pdf, code, etc.) enriches display
- Test build after modifications to verify display
Removing Entries
- Delete or comment out (prefix with
%) the entire entry - No broken reference check needed; Jekyll-Scholar handles missing keys gracefully
Trust These Instructions
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