A plain Jekyll site designed for a clean, old-school academic group page. It uses a shared layout with includes and minimal CSS. No third-party themes or plugins are used.
Approach
- Plain Jekyll layouts + includes (
_layouts/default.html,_includes/nav.html). - Minimal, readable CSS in
assets/style.css. - Two-column layout with a left navigation sidebar.
Structure
_config.ymlcontains only the essential site settings._layouts/default.htmldefines the sidebar + main content layout._includes/nav.htmlholds the navigation links.assets/style.cssholds all styling.- Top‑level
.mdfiles are pages (index.md,people.md, etc.).
Edit Navigation
- Update links in
_includes/nav.html. - Keep URLs relative and prefixed with
{{ site.baseurl }}for GitHub Pages compatibility.
Add a New Page
- Create a new
.mdfile at the repo root. - Add front matter with
layout: defaultandtitle: Your Page Title. - Add a link in
_includes/nav.html.
GitHub Pages Build
- GitHub Pages typically builds from the
masterbranch and the repository root for user/organization sites. - The workflow in
.github/workflows/jekyll-docker.ymlrunsjekyll buildin a Docker container on pushes tomasteras a build check (it does not deploy). - No unsupported plugins are used, so the site is GitHub Pages compatible.
Local Preview (Bundler)
- Use a modern Ruby (rbenv/asdf recommended; avoid macOS system Ruby).
bundle installbundle exec jekyll serve
Docker Preview
docker run --rm -it -p 4000:4000 -v "$PWD":/srv/jekyll -w /srv/jekyll jekyll/jekyll:pages jekyll serve --host 0.0.0.0
Notes
Gemfile.lockis not tracked to avoid Bundler/Ruby version pinning issues; GitHub Pages uses its own pinned versions during deployment.