Jekyll site for Tomasz-Lab/lab-website, deployed to GitHub Pages at https://tomasz-lab.github.io/tomaszlab-website/ by a GitHub Actions workflow on every push to main.
.
├── index.html # Home: hero + project catalogue
├── about.html
├── blog.html # Project index (permalink /projects/)
├── members.html # Lab members
├── _members/ # One Markdown file per person
├── _projects/ # One Markdown file per project page
├── _layouts/ _includes/ _sass/
├── _plugins/og_image.rb # Fills in a DOGimg social card for pages without an image
├── assets/ # CSS entry, JS, images
├── sitemap.xml # Sitemap index
├── sitemap-main.xml # This site's URLs, generated at build time
├── robots.txt
└── CLAUDE.md # Conventions for agents (and a good read for humans)
Requires Ruby and Bundler. No Node toolchain.
bundle install
bundle exec jekyll serve # http://127.0.0.1:4000/lab-website/, rebuilds on change
bundle exec jekyll build # production output in _site/Add _projects/<name>.md:
---
layout: project
title: "My Project"
description: "One sentence; it's the home card text and the page summary."
tech_stack: ["TypeScript", "WebGL2"]
stack: Function prediction methods
github_url: "https://github.com/zeikar/my-project"
demo_url: "https://zeikar.dev/my-project/"
image: "/assets/images/projects/my-project.png"
sequence: 21
gadget_no: 21
---sequenceis the order on the home page and the projects page.gadget_nois the UNIT number, assigned by build order, and never changes.stackis one ofproject_stacksin_config.yml. The projects page lists everything until a stack filter is selected.- The card shows the first six
tech_stackentries. Leave out version numbers. demo_urlandimageare optional. Without animage, the social card comes from DOGimg.- Keep
imagea PNG, since it's also the social card. Drop a smaller.webpwith the same name next to it and the card and project page use that instead.
The page body has no fixed template. See CLAUDE.md for how the pages are written.
Add _members/<name>.md. The file does not get its own page. /members/ groups people by group and sorts each group by sequence.
---
name: "Ada Lovelace"
group: student
position: "PhD student"
image: "/assets/images/members/ada.png"
sequence: 1
---
One or two paragraphs. This body is the bio, shown when the card is opened.groupis one ofleader,postdoc,student,staff,alumni.positionis shown for students, research staff, and alumni.imageis optional. A same-named.webpnext to the PNG is used on the card.- Leader, postdoc, student, and staff cards open the bio. Alumni do not, so leave their body empty.
sitemap.xml is an index. It points to sitemap-main.xml, which lists this site's pages, posts, and projects.
- A project whose
demo_urlis on this site'surljoinssitemap-main.xmlautomatically. - Any other same-site path goes in
extra_sitemap_urlsin_config.yml.