This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a Jekyll-based blog hosted on GitHub Pages, originally migrated from Blogger.com. The site uses the Skinny Bones Jekyll template with modifications to work in a “/blog” subdirectory on GitHub Pages.
_config.yml - Main Jekyll configuration_posts/ - Blog post content in Jekyll format (YYYY-MM-DD-title.md).github/workflows/jekyll.yml - GitHub Actions workflow for building and deploying the siteindex.md - Main index pageREADME.md - Project documentationTo build the site locally for testing:
bundle install
bundle exec jekyll build
The repository uses a GitHub Actions workflow in .github/workflows/jekyll.yml that:
actions/jekyll-build-pages@v1master branchThe workflow is designed with a separation between build and deploy jobs, following GitHub’s official documentation for Jekyll sites hosted on GitHub Pages.
master branch_config.ymlif: github.ref == 'refs/heads/master')When converting Blogger archive posts from _archives/techblog/2003/06/ or similar directories:
.shtml files_posts/YYYY/ directoryTo convert archive posts, use the provided conversion scripts:
./convert-archive.sh <archive_file.shtml> to convert a single archive fileconvert-archive.rb for the actual conversion process.claude/skills/convert-archive-posts.mdProblem: Links in the post grid were not working correctly on GitHub Pages deployment due to improper base URL handling.
Solution: Modified _includes/post-grid.html to use Jekyll’s relative_url filter instead of https://tgharold.github.io which properly handles the base URL context for both local development and GitHub Pages deployment.
When creating git commits for these conversions, please include the following co-authored by line:
Co-Authored-By: Qwen3-Coder-30B-A3B-Instruct-MLX-6bit
All blog posts should follow the naming convention:
For example: “macOS 26, VS Code Dev Containers and SSL errors on feature loading” becomes “2026-04-12-macos-26-vs-code-dev-containers-and-ssl-errors-on-feature-loading.md”
During the migration from Blogger to Jekyll, various artifacts were left behind in the blog post content. These included:
To clean up these conversion artifacts, a Python script was created and run to remove all instances of these elements from the blog posts, leaving only the clean, original content.