Site source for the UESL (Urban Energy Systems Lab) Energy and AI page, published via GitHub Pages.
.
├── _config.yml # Jekyll site config
├── _layouts/ # Page templates (default, docs)
├── _includes/ # Shared header/footer partials
├── assets/css/ # Stylesheet
├── docs/ # Content pages: papers, projects, tools
├── index.md # Landing page
└── .github/workflows/pages.yml # Build & deploy to GitHub Pages
Each content page holds a list of entries. Open the file, copy the template block from the HTML comment at the top, paste it below the last entry, and fill it in. The template comment stays in the file and does not appear on the website.
- Research papers: docs/papers.md — title, year, authors (first three then et al.), the AI method, and a short summary of method / usage / relation to AI. Entries go under one of the five sub-field sections; the index at the top of the page builds itself.
- Projects: docs/projects.md — put each entry under Lead projects (UESL leads it) or Contributor projects (UESL is one of the partners).
- Urban energy systems: docs/domain.md — domain context and partners.
- Landing page: index.md — intro and contacts. The counts on it are computed from the pages above, so they update themselves.
Entries are written newest-first. Delete the _No entries yet._ line once a page has
real content.
To add a whole new section, create another .md file under docs/ with front
matter — it appears in the sidebar automatically, ordered by nav_order:
---
title: My Page
nav_order: 4
---Requires Ruby + Bundler.
bundle install
bundle exec jekyll serveThen open http://localhost:4000/energy-and-AI/.
Pushing to main triggers .github/workflows/pages.yml, which builds the Jekyll
site and publishes it to GitHub Pages. In the repo's Settings → Pages, set
Build and deployment → Source to GitHub Actions (one-time setup).
If the entry lists grow large enough that hand-editing Markdown becomes awkward, the next
step is moving them to structured data files (_data/papers.yml etc.) with generated listing
pages — and potentially a JS-based framework (e.g. Astro) after that.