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 blog website for samwize.com, deployed on GitHub Pages. The site uses a custom, dark-first editorial theme and focuses on iOS/Swift development content.

Development Commands

Build and Serve

# Install dependencies
bundle install

# Serve locally with live reload
bundle exec jekyll serve

# Build for production
JEKYLL_ENV=production bundle exec jekyll build

# Deploy to GitHub Pages
./deploy.sh

Content Creation

# Create new blog post (using jekyll-compose)
bundle exec jekyll post "Post Title"

# Create new draft
bundle exec jekyll draft "Draft Title"

# Publish draft
bundle exec jekyll publish _drafts/draft-filename.md

Slides with Marp

# Create slides from markdown and watch for changes
marp _slides/slide-name.md -o slides/slide-name.html -w

Architecture

Directory Structure

  • _posts/ - Published blog posts (markdown files with date prefix)
  • _drafts/ - Unpublished draft posts
  • _slides/ - Presentation slides using Marp
  • _templates/ - Jekyll templates for new posts/drafts/pages
  • _layouts/ - HTML templates (default, post, page)
  • _includes/ - Reusable HTML components
  • _sass/ - Sass/SCSS stylesheets
  • assets/ - Static assets (images, etc.)
  • _config.yml - Jekyll configuration
  • Gemfile - Ruby dependencies

Key Configuration

  • Theme: Custom editorial theme with dark and light modes
  • Timezone: Asia/Singapore
  • Deployment: GitHub Pages via octopress deploy
  • Main branch: gh-pages (not master)
  • Pagination: 30 posts per page
  • Markdown: Kramdown with Rouge syntax highlighting

Content Guidelines

  • Posts use front matter with layout, title, date, categories
  • Images referenced as /images/filename.jpg with optional {:.border} class
  • YouTube embeds use iframe with specific parameters
  • Code blocks use Rouge syntax highlighting
  • Hard wrap enabled for line breaks

Deployment Process

  1. Build with production environment
  2. Deploy using Octopress deploy command
  3. Target branch is gh-pages for GitHub Pages

Writing Style

  • Keep blog post short and sweet, with focus on key code snippets