Usage Guide for Software and Publications Pages
Usage Guide for Software and Publications Pages
Software Page
The software page (_pages/software.md) uses expandable sections (HTML <details> tags) to create collapsible content with image previews.
Adding a New Software Project
Add a new <div class="software-item"> block following this template:
<div class="software-item">
<details>
<summary>
<div class="software-preview">
<img src="/images/your-project-preview.png" alt="Preview" onerror="this.style.display='none'">
<div>
<strong>Your Project Name</strong>
<div class="software-meta">Brief one-line description</div>
</div>
</div>
</summary>
<div class="software-content">
<p>Detailed description of your project goes here.</p>
<h3>Features</h3>
<ul>
<li>Feature 1</li>
<li>Feature 2</li>
</ul>
<img src="/images/screenshot-1.png" alt="Screenshot">
<h3>Technical Details</h3>
<p>Stack, architecture, etc.</p>
<div class="software-links">
<a href="https://github.com/user/repo" target="_blank">GitHub</a>
<a href="https://demo.com" target="_blank">Live Demo</a>
</div>
</div>
</details>
</div>
Features
- Collapsible sections: Click to expand/collapse each project
- Image previews: Shows a thumbnail in the collapsed view
- Full content: Expanded view shows detailed descriptions, screenshots, and links
- Graceful degradation: Images that don’t exist are automatically hidden using
onerror
Publications Page
The publications page is automatically generated from BibTeX files using the Python script generate_publications.py.
How It Works
- BibTeX entries are stored in:
markdown_generator/pubs.bibmarkdown_generator/proceedings.bib
- Run the generation script:
python3 generate_publications.py - This creates/updates
_pages/publications.mdwith expandable publication entries sorted by year (newest first)
Adding New Publications
- Edit your
.bibfiles inmarkdown_generator/:
@article{smith2024example,
title={Example Publication Title},
author={Smith, John and Doe, Jane},
journal={Journal Name},
volume={10},
number={2},
pages={123-145},
year={2024},
publisher={Publisher Name},
doi={10.1234/example},
url={https://example.com/paper},
abstract={Optional abstract text goes here...},
keywords={machine learning, data science}
}
- Run the generator:
python3 generate_publications.py - The script will:
- Parse all BibTeX entries
- Sort by year (descending)
- Generate expandable HTML sections
- Create formatted citations
- Add Google Scholar search links
- Include DOI and URL links if available
Supported BibTeX Entry Types
@article- Journal articles@inproceedings/@conference- Conference papers@book- Books- Others - Basic formatting
Optional Fields
abstract- Displays in the expanded sectionkeywords- Shows below the abstractdoi- Creates a DOI link buttonurl- Creates a URL link button
Features
- Auto-formatting: Proper citation format based on entry type
- Google Scholar: Automatic search links for all publications
- Expandable: Click to see abstract, keywords, and full details
- Sorted: Publications are sorted by year (newest first)
- Links: DOI, URL, and Google Scholar buttons
Styling
Both pages use consistent styling:
- Blue accent color:
#0366d6 - Border color:
#e8e8e8 - Hover effects on summaries
- Animated expand/collapse arrows
- Responsive layout
To customize colors, edit the <style> blocks in:
_pages/software.md- The
generate_publications.pyscript (which generates the styles for publications)
Local Development
To see your changes locally:
- Ensure Ruby and Jekyll are set up (see README.md)
- Run the local server:
export PATH="/usr/local/opt/ruby/bin:$PATH" bundle exec jekyll serve --livereload - Visit http://localhost:4000/software/ or http://localhost:4000/publications/
The --livereload flag will automatically refresh your browser when files change.
Tips
Software Page
- Use high-quality preview images (recommended: 150x100px or larger)
- Keep the meta description brief (one line)
- Add multiple screenshots in the expanded content
- Include relevant links (GitHub, Demo, Paper, etc.)
Publications Page
- Keep your
.bibfiles well-organized - Use consistent author name formatting
- Include abstracts when available (very helpful for readers)
- Add DOIs whenever possible
- Re-run
generate_publications.pyafter any.bibchanges
Images
- Store images in
/images/directory - Use descriptive filenames
- Optimize images for web (compress before uploading)
- The
onerror="this.style.display='none'"attribute hides broken images
