Repository Documentation
Repository Documentation
Overview
This is a Jekyll-based personal publication/research website for sharing academic publications and research projects.
Key Files & Structure
Main Content Files
- Personal Publications.bib - BibTeX bibliography file containing all publications and projects
- update_publications.py - Python script that parses the .bib file and generates publications.md
- publications.md - Auto-generated publications page (output of update_publications.py)
- _config.yml - Jekyll configuration
- index.md, blog.md, bio.md - Main site pages
- assets/images/ - Directory containing publication thumbnail images
Data & Includes
- _data/person.yml - Personal information data
- _includes/ - Jekyll template includes
- _posts/ - Blog posts directory
Workflow: Adding New Publications
Step 1: Add to Bibliography
- Add new entry to
Personal Publications.bibin BibTeX format - Use consistent cite key format:
lastname_shortitle_year(e.g.,leins_investigating_2026)
Step 2: Add Image
- Add corresponding publication image to
assets/images/ - Supported formats:
.png,.jpg - Recommended size: Square aspect ratio works best (180x180px display)
Step 3: Update Image Mappings
- Open
update_publications.py - Add entry to
IMAGE_MAPPINGSdictionary (lines 12-17):'cite_key': 'image_filename', - Example:
'gonnermann-muller_facet_2026': 'facet.png',
Step 4: Generate Publications Page
Run: python update_publications.py
This generates:
- Parses all BibTeX entries
- Groups publications by year (descending order)
- Creates HTML cards with images, titles, authors, venues, and links
- Outputs to
publications.md
Current Publications
2024
- gonnermann-muller_value_2024 - “Value by Design: Reducing Cognitive Load…” (ICIS 2024)
- Image:
fig_ICIS.png
- Image:
- leins_comparing_2024 - “Comparing head-mounted and handheld augmented reality…” (Journal on Multimodal User Interfaces)
- Image:
fig_springerVR.jpg
- Image:
2025
- leins_ur5e_2025 - “UR5e Augmented Reality Interface on Meta Quest 3”
- Image:
fig_RobotAR.png
- Image:
2026
- haase_within-model_2026 - “Within-Model vs Between-Prompt Variability in Large Language Models…” (arXiv)
- Image:
Within_Between.png
- Image:
- gonnermann-muller_facet_2026 - “FACET: Multi-Agent AI Supporting Teachers…” (arXiv)
- Image:
facet.png
- Image:
- leins_investigating_2026 - “Investigating the Influence of Spatial Ability in Augmented Reality-assisted Robot Programming” (arXiv)
- Image:
SA-in-robiotics.png
- Image:
Image Mappings (IMAGE_MAPPINGS Dictionary)
All publication cite keys must have a corresponding entry mapping to an image file. Current mappings in update_publications.py:
IMAGE_MAPPINGS = {
'gonnermann-muller_value_2024': 'fig_ICIS.png',
'leins_comparing_2024': 'fig_springerVR.jpg',
'leins_ur5e_2025': 'fig_RobotAR.png',
'haase_within-model_2026': 'Within_Between.png',
'gonnermann-muller_facet_2026': 'facet.png',
'leins_investigating_2026': 'SA-in-robiotics.png',
}
Publication Card Format
Each publication is displayed as an HTML card with:
- Image: 180x180px thumbnail (if mapped in IMAGE_MAPPINGS)
- Title: From BibTeX
titlefield - Authors: From BibTeX
authorfield (formatted as “First Last” names) - Venue & Year: From
journal/booktitleandyearfields - Links: Generated from
urlanddoifields- GitHub URLs → “Code” link
- arXiv URLs → “arXiv” link
- DOI → “DOI” link
- Other URLs → “Link”
BibTeX Entry Fields
Required/common fields in entries:
title- Publication titleauthor- Author list (format: “Last, First and Last, First”)year- Publication yearmonth- Publication month (optional)journal- Journal name (for articles)booktitle- Conference/proceedings title (for conference papers)url- Link to publication or resourcedoi- DOI identifier (optional)abstract- Publication abstract (stored but not displayed)file- Zotero file references (metadata, not displayed)
Script Details (update_publications.py)
Key Functions
- parse_bibtex() - Parses BibTeX file and extracts entries
- format_entry() - Formats a single entry as HTML card
- format_authors() - Converts author names from “Last, First” to “First Last”
- clean_braces() - Removes protective braces from BibTeX text
- generate_publications_md() - Groups entries by year and generates full MD file
Processing
- Entries grouped by year in descending order
- Protective braces
{Text}removed from titles and venues - HTML cards use CSS Grid for image + content layout
- Images display only if mapped in IMAGE_MAPPINGS
- Output file:
publications.md
Common Tasks
Add a new publication
- Add BibTeX entry to
Personal Publications.bib - Save image to
assets/images/ - Add mapping to
IMAGE_MAPPINGSinupdate_publications.py - Run
python update_publications.py - Commit changes
Update existing publication
- Edit entry in
Personal Publications.bib - Run
python update_publications.py - Commit changes
Update publication image
- Replace image file in
assets/images/ - No script changes needed (mapping stays the same)
- Run
python update_publications.pyto regenerate - Commit changes
Remove a publication
- Delete entry from
Personal Publications.bib - Optionally remove image from
assets/images/if unused - Optionally remove mapping from
IMAGE_MAPPINGS - Run
python update_publications.py - Commit changes
Assets & Images
Directory: assets/images/
Current images:
fig_ICIS.webp- 2024 ICIS publicationfig_springerVR.webp- Springer VR journal articlefig_RobotAR.webp- Robot AR interfaceWithin_Between.webp- LLM variability studyfacet.webp- FACET education AI systemSA-in-robotics.webp- Spatial ability in AR roboticsprofile.jpg- Profile picture
Image Optimization
IMPORTANT: Images must be optimized before adding to the repo to avoid performance issues.
Requirements
- Display size: 180x180px
- File size target: 100-300 KB per image
- Recommended dimensions: 200-250px (accounts for retina displays and scales down smoothly)
- Aspect ratio: Square (1:1 ratio works best)
Format Recommendations
- WebP: Preferred format for this repo. Modern, smaller files, widely supported in browsers. Tools: cwebp (CLI) or online converters
- PNG: Use for images with sharp edges or text. Compress with TinyPNG or ImageOptim
- JPG: Use for photographs. Quality 75-85% works well
Optimization Process
- Resize to 200-250px max dimension (square)
- Compress using:
- TinyPNG/TinyJPG (online, very effective)
- ImageOptim (macOS)
- ImageMagick command line:
convert image.png -resize 250x250 -quality 85 output.jpg
- Target: Final file size should be < 300 KB (ideally 100-200 KB)
Performance Impact
- Unoptimized large images (1-3+ MB) cause:
- Slower page loads
- Increased bandwidth usage
- Browser rendering strain, especially during animations
- Potential flickering during hover effects
Verification
After adding images, check file sizes:
ls -lh assets/images/
Each publication image should be well under 500 KB.
Technology Stack
- Jekyll - Static site generator
- Ruby - Jekyll framework
- Python 3 - Publication processing script
- BibTeX - Bibliography format
- Markdown - Content format
Notes for Claude Agents
- This is a Jekyll site with Python-driven publication management
- Always run
update_publications.pyafter modifyingPersonal Publications.biborIMAGE_MAPPINGS - The script is idempotent—safe to run multiple times
- All publications are grouped by year (newest first)
- Check
IMAGE_MAPPINGSbefore adding new BibTeX entries—mapping is required for images to display - Use consistent cite key naming:
lastname_shortitle_year