CLAUDE.md
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is a Jekyll-based personal blog using the Minimal Mistakes theme. The site is built with Jekyll, uses Ruby gems for dependencies, and includes JavaScript build processes for asset optimization.
Architecture
- Jekyll Static Site Generator: Uses Minimal Mistakes theme (v4.21.0) via remote_theme
- Content Structure:
    - _posts/directories organized by category (- musings/,- opinions/,- workbench/)
- _pages/for static pages (about, 404, categories, etc.)
- _includes/,- _layouts/,- _sass/for theme components
 
- Asset Management: JavaScript files are concatenated and minified via npm scripts
- Deployment: GitHub Pages compatible with Travis CI configuration
Development Commands
Building and Serving
# Install Ruby dependencies
bundle install
# Install Node dependencies  
npm install
# Build the site locally
bundle exec jekyll build
# Serve locally with auto-reload (default Jekyll command)
bundle exec jekyll serve
# Advanced preview with custom auto-regeneration
bundle exec rake preview
Asset Processing
# Build optimized JavaScript assets
npm run build:js
# Watch JavaScript files for changes
npm run watch:js
# Minify JavaScript files
npm run uglify
# Add banner to minified files
npm run add-banner
Content Guidelines
Posts
- Posts are organized in category-specific _posts/directories
- Categories: musings,opinions,workbench
- Follow Jekyll naming convention: YYYY-MM-DD-title.md
- Front matter should include appropriate category and tags
Pages
- Static pages go in _pages/directory
- Use appropriate layout (typically single)
- Set author_profile: falseunless needed
Configuration
Main Config
- Site configuration in _config.yml
- Theme: Minimal Mistakes with “contrast” skin
- Analytics: Google Analytics enabled
- Social links: Twitter, LinkedIn, GitHub configured
Build Process
- Jekyll excludes development files (node_modules, package.json, etc.)
- Sass compilation configured with compressed output
- HTML compression enabled for production
Key Files
- _config.yml: Main Jekyll configuration
- package.json: Node.js dependencies and build scripts
- Gemfile: Ruby gem dependencies
- Rakefile: Custom rake tasks including preview functionality
- banner.js: Script to add banners to built assets