Personal website built with Jekyll and the minimal-mistakes theme, hosted on GitHub Pages.
Install dependencies once:
bundle install
Then serve the site locally:
bundle exec jekyll serve --livereload --limit_posts 5 --config _config.yml,_config_dev.yml
Open http://localhost:4000. The server watches files and rebuilds on save
(--livereload auto-refreshes the browser).
Don't add
--incremental. With it, a post added while the server is running gets its own page built, but listing pages (/blog/, the tag pages, the feed) are not regenerated — so the new post is invisible in the blog index even though its URL works. The dev config already builds in ~2-3s, so incremental buys nothing here. If a new post isn't showing up, stop the server,rm -rf _site .jekyll-metadata, and start it again.
Production builds (GitHub Pages) use only _config.yml, which pulls the theme
from GitHub via remote_theme on every build — slow (~3 min). For local work,
_config_dev.yml overrides this for a ~6s startup by:
minimal-mistakes-jekyll gem instead of the
remote theme download,jekyll-spaceship plugin,assets/images, assets/presentations, ...).Flag reference:
--config _config.yml,_config_dev.yml — layer the dev overrides on top.--livereload — auto-refresh the browser on changes.--limit_posts 5 — build only the 5 newest posts. Drop this if you need the
full blog archive.To build without serving (output to _site/), replace serve with build.
Note: the local gem may be a slightly newer minor version than the pinned
remote_theme, so treat tiny styling differences as expected. For a production-faithful build, omit--config _config.yml,_config_dev.yml.
.md files (research.md, programming.md, travel.md,
misc.md, ...)._data/navigation.yml._posts/._data/travel_locations.yml.656 commits
HTML
30.8%
SCSS
30.1%
TeX
25.4%
Python
11.5%
JavaScript
1.7%
Personal website built with Jekyll and the minimal-mistakes theme, hosted on GitHub Pages.
Install dependencies once:
bundle install
Then serve the site locally:
bundle exec jekyll serve --livereload --limit_posts 5 --config _config.yml,_config_dev.yml
Open http://localhost:4000. The server watches files and rebuilds on save
(--livereload auto-refreshes the browser).
Don't add
--incremental. With it, a post added while the server is running gets its own page built, but listing pages (/blog/, the tag pages, the feed) are not regenerated — so the new post is invisible in the blog index even though its URL works. The dev config already builds in ~2-3s, so incremental buys nothing here. If a new post isn't showing up, stop the server,rm -rf _site .jekyll-metadata, and start it again.
Production builds (GitHub Pages) use only _config.yml, which pulls the theme
from GitHub via remote_theme on every build — slow (~3 min). For local work,
_config_dev.yml overrides this for a ~6s startup by:
minimal-mistakes-jekyll gem instead of the
remote theme download,jekyll-spaceship plugin,assets/images, assets/presentations, ...).Flag reference:
--config _config.yml,_config_dev.yml — layer the dev overrides on top.--livereload — auto-refresh the browser on changes.--limit_posts 5 — build only the 5 newest posts. Drop this if you need the
full blog archive.To build without serving (output to _site/), replace serve with build.
Note: the local gem may be a slightly newer minor version than the pinned
remote_theme, so treat tiny styling differences as expected. For a production-faithful build, omit--config _config.yml,_config_dev.yml.
.md files (research.md, programming.md, travel.md,
misc.md, ...)._data/navigation.yml._posts/._data/travel_locations.yml.656 commits
HTML
30.8%
SCSS
30.1%
TeX
25.4%
Python
11.5%
JavaScript
1.7%