pages/.github/instructions/bibtex-bibliography.instructions.md
George 25b758805c
Added copilot instructions, AGENTS.md, improved README files (#3486)
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>
2026-01-28 22:55:05 -03:00

5.6 KiB
Raw Blame History

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

  1. Unique keys: Each entry must have a unique key (first parameter)
  2. Author names: Separate multiple authors with and
  3. Curly braces: Protect capitalized words in titles with {Curly Braces} to preserve capitalization
  4. Special characters: Use LaTeX escape sequences ({\e}for é,{~n}` for ñ)
  5. URLs: Place URLs in {curly braces} to prevent issues
  6. Alphabetical order: Keep entries alphabetically sorted by key

Common Mistakes to Avoid

  • author=Smith, John author={Smith, John}
  • journal=Science journal={Science} or journal = "Science"
  • title=Deep Learning (loses capitalization) → title={Deep Learning} or title={{D}eep {L}earning}
  • pdf=http://... pdf={http://...}

Jekyll-Scholar Integration

The jekyll-scholar plugin processes BibTeX and generates bibliography pages.

How it Works

  1. Entries in _bibliography/papers.bib are read
  2. Pages marked with layout: bib render the bibliography
  3. Posts/pages can reference entries using {% cite key %}
  4. 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 to assets/pdf/smith2023.pdf
  • Preview images: Use just the filename (automatically resolved to assets/img/publication_preview/)
    • Example: preview={smith2023.jpg} → resolves to assets/img/publication_preview/smith2023.jpg
  • Absolute URLs: Include full URL for external resources
    • Example: code={https://github.com/user/repo}
    • Example: html={https://example.com/paper}

Validation

Before Committing BibTeX Changes

  1. Syntax check: Verify no unclosed braces or quotes
  2. Build test:
    docker compose down
    docker compose up
    # Check output for "ERROR" or "Invalid bibtex"
    # Publications should render at http://localhost:8080/publications/
    
  3. Publication page: Open publications page and verify entries display correctly

Common BibTeX Build Errors

  • Invalid bibtex reference 'key' Key doesn't exist in papers.bib
  • Unmatched braces Missing closing brace in entry
  • Unknown entry type Entry type (after @) is misspelled
  • PDF not found Path in pdf field is incorrect

Editing and Maintenance

Adding New Entries

  1. Add entry to _bibliography/papers.bib
  2. Use consistent key naming (e.g., LastnameYear or Lastname2023details)
  3. Ensure all required fields are present
  4. 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 up after 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