CLAUDE.md
Project Overview
Personal technical blog hosted on GitHub Pages.
Tech Stack
- Static site generator: Jekyll with GitHub Pages (
github-pagesgem) - Theme: So Simple v3.2.0 (remote theme)
- Math rendering: MathJax (tex-mml-chtml combo, AMS tags)
- Markdown engine: kramdown with Rouge syntax highlighting
- Pre-commit: pre-commit hooks (large file check, trailing whitespace, line endings, etc.)
Project Structure
1
2
3
4
5
6
7
8
9
10
_posts/ # Published blog posts (Markdown with YAML front matter)
_drafts/ # Work-in-progress notes (not published)
_layouts/ # HTML layout templates
_includes/ # Reusable HTML partials
_data/ # Site data (navigation, authors, text)
_sass/ # Stylesheets
_site/ # Generated site (do not edit, gitignored)
assets/ # CSS and JS assets
images/ # Post images
_config.yml # Jekyll site configuration
Workflow
masteris the publishing branch. GitHub Pages deploys directly frommaster._drafts/for work-in-progress notes;_posts/for published posts.- To hold back a published post for editing: move it from
_posts/to_drafts/, push to update the live site. - Development: work on a feature branch (e.g.,
draft/<topic>), commit freely, then use/create-prto open a PR tomaster. Always squash merge the PR to keep master history clean.
Common Commands
1
2
3
4
5
# Install dependencies
bundle install
# Local preview (includes drafts, port 4001)
bundle exec jekyll serve --port 4001 --drafts
Writing Posts
- Posts go in
_posts/with filename format:YYYY-MM-DD-Title.md - Drafts go in
_drafts/with no date prefix needed - Posts use
layout: postby default (configured in_config.ymlfront matter defaults) - Math: use
$...$for inline and$$...$$for display math (MathJax enabled) - Images: place in
images/, reference as/images/filename.png - Code blocks: use fenced code blocks with language identifier; Rouge provides syntax highlighting with line numbers