Skip to content

Implement dynamic photo gallery with slider and modular structure#265

Open
a-latyshev wants to merge 6 commits into
mainfrom
alatyshev/photo-gallery
Open

Implement dynamic photo gallery with slider and modular structure#265
a-latyshev wants to merge 6 commits into
mainfrom
alatyshev/photo-gallery

Conversation

@a-latyshev

Copy link
Copy Markdown
Collaborator

This pull request introduces a new dynamic photo gallery feature for the conference website, specifically for the FEniCS 2026 page. The gallery is automatically populated by fetching images from a remote URL and updating a local JSON file, which is then used to render a modern, interactive slider and lightbox experience. The implementation includes a Python utility for updating image lists, new HTML and JavaScript for the gallery, and supporting CSS for styling.

New Dynamic Photo Gallery Feature

  • Added a gallery_url and gallery_data field to the conference/2026.md frontmatter to specify the remote image source and local JSON data file for the gallery. The gallery is rendered using a new {% include gallery.html %} section on the page. [1] [2]

  • Created _includes/gallery.html with JavaScript to dynamically fetch image URLs from the specified JSON file, render a scrollable thumbnail gallery, and provide a lightbox modal with navigation and keyboard support.

  • Added custom styles in assets/css/customsty.css for the gallery slider, thumbnail grid, slider buttons, and lightbox modal, including responsive design tweaks.

Automation and Workflow

  • Introduced _tools/update_galleries.py, a Python script that crawls markdown files for gallery_url and gallery_data, fetches image links from the specified URL, and writes them to the corresponding JSON file. This script also cleans up old gallery_images entries in the frontmatter.

  • Updated the GitHub Actions workflow (.github/workflows/build.yml) to run the gallery update script automatically before building the website, ensuring image galleries are always up to date.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant