CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
What this is
Personal blog (deepskyblue86.github.io), built on Jekyll + the Beautiful Jekyll theme (beautiful-jekyll-theme gem, v6.0.1). Content topics: C++, Rust, systems programming. Hosted on GitHub Pages.
Commands
bundle install # install gems (first time / after Gemfile changes)
./serve.sh # live-reload dev server: save -> auto rebuild -> browser auto-refresh, http://localhost:4000
bundle exec jekyll build # build static site into _site/
./serve.sh wraps bundle exec jekyll serve --livereload. Plain bundle exec jekyll serve also works but needs a manual browser refresh after each edit (no --livereload); jekyll serve --detach disables auto-regeneration entirely.
See notes.txt for the author’s other working notes (markdown syntax refs, etc).
No test suite, linter, or CI build step exists for this repo. .github/ only contains theme-inherited workflow config, not project CI.
Structure
_posts/— blog posts, filename formatYYYY-MM-DD-title.md. Each post needs Jekyll front matter (layout: post,title, optionaltags,footer-extra)._layouts/— page templates (post.html,page.html,home.html,default.html,base.html,minimal.html). Most theme logic lives inbase.html/default.html;post.htmlextends these for article pages._includes/— partials pulled into layouts: nav, header/footer, analytics (Google Analytics/gtag, GTM, Cloudflare, Matomo), comments (giscus, Disqus, utterances, staticman, CommentBox, Facebook), social sharing, MathJax, search, read-time._data/— Jekyll data files (YAML) consumed by includes/layouts._config.yml— all site-wide settings: title, author, nav links, colors, analytics IDs, comments backend (currently giscus, mapped to GitHub Discussions ondeepskyblue86/deepskyblue86.github.io), AdSense pub ID, permalink format (/:year-:month-:day-:title/), markdown engine (kramdown + GFM parser), highlighter (rouge).assets/— images, CSS, JS for the theme.staticman.yml— config for the (currently unused/commented-out) Staticman comment backend.
Working with posts
- New posts go in
_posts/, namedYYYY-MM-DD-title.md, front matter matching existing posts (see any file in_posts/for the pattern). - Markdown flavor is kramdown with GFM extensions — see https://kramdown.gettalong.org/syntax.html for the exact syntax this renders.
- Comments are handled via giscus (GitHub Discussions), configured in
_config.yml— no per-post setup needed. - Reference docs the author uses: https://jekyllrb.com/docs/liquid/tags/, https://beautifuljekyll.com/2020-02-28-sample-markdown/.