Repository Guidelines
Project Structure & Module Organization
- Jekyll powers the site. Top-level pages live in
pages/
, each with YAML front matter (layout
, permalink
, navbar_active
).
- Blog articles sit under
blog/<Category>/_posts/
using YYYY-MM-DD-title.md
; related images belong in assets/img/
or category folders.
_includes/
and _layouts/
host Liquid partials and templates—extend them instead of duplicating HTML.
_data/
supplies JSON/CSV that drives dynamic sections (news, CV, projects). scripts/python/
regenerates Markdown from these data files.
_site/
is generated output; never edit or commit it.
Build, Test, and Development Commands
bundle exec jekyll serve
(or make serve
) runs the site locally on http://127.0.0.1:4000.
scripts/run
wipes _site/
and serves with incremental rebuild + live reload—use during active editing.
bundle exec jekyll build
(or make build
) compiles the production site; run before committing to catch Liquid errors.
make clean
clears _site/
and .jekyll-cache/
; make format
triggers Prettier across HTML, CSS, JS, JSON, Markdown, and YAML.
Coding Style & Naming Conventions
- Prettier enforces 2-space indentation, semicolons, and a 125-character wrap; always run
make format
after large edits.
- Stylelint (Primer + Prettier config) governs CSS/SCSS. Lint styles with
npx stylelint "assets/css/**/*.scss"
when touching stylesheets.
- Keep filenames lowercase and hyphenated; co-locate assets with their content. Ensure front matter stays minimal but complete (
layout
, title
, description
, navbar_active
).
Testing Guidelines
- There is no automated test suite. Validate changes with
bundle exec jekyll build
and scan the output for warnings/errors.
- After running any generator in
scripts/python/
, review the diffed Markdown under projects/pages/
(or the relevant folder) before committing.
- Manually spot-check key pages locally—especially navigation, search, and any sections fed from
_data/
.
Commit & Pull Request Guidelines
- Follow the existing, concise, imperative commit style (e.g.,
Update intro to drills post
). Group related content + asset updates together.
- Pull requests should explain the change, link issues when available, and add screenshots for visual updates.
- Confirm a clean
bundle exec jekyll build
run and formatting pass before requesting review.
Configuration & Content Tips
- Site-wide toggles (analytics, pagination, search) live in
_config.yml
; document any changes in the PR description.
- Do not commit credentials beyond the public Firebase keys already present. Store sensitive values in private infrastructure instead.