CLAUDE.md

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 format YYYY-MM-DD-title.md. Each post needs Jekyll front matter (layout: post, title, optional tags, footer-extra).
  • _layouts/ — page templates (post.html, page.html, home.html, default.html, base.html, minimal.html). Most theme logic lives in base.html/default.html; post.html extends 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 on deepskyblue86/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/, named YYYY-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/.