CLAUDE.md - Personal Website
Context
Personal website for Joshua Michael Hall at https://joshuamichaelhall.com. Built with Jekyll and hosted on GitHub Pages. Serves as professional portfolio showcasing cloud security expertise for federal defense contractor positions.
Live Site
- URL: https://joshuamichaelhall.com
- Hosting: GitHub Pages
- Framework: Jekyll with Minima theme
Repository Structure
joshuamichaelhall.github.io/
├── _config.yml # Site configuration
├── _data/ # Structured data (skills.yml, projects.yml)
├── _includes/ # Reusable components
├── _layouts/ # Page templates
├── _posts/ # Blog posts (YYYY-MM-DD-title.md)
├── pages/ # Main site pages (portfolio, blog, about, contact)
├── assets/ # CSS, JavaScript, images
├── resources/ # Downloadable resources
└── .github/ # GitHub Actions workflows
Local Development
Prerequisites
- Ruby 2.7.0+
- Bundler gem
Commands
# Install dependencies
bundle install
# Run development server
bundle exec jekyll serve
# View at http://localhost:4000
Content Management
Adding Blog Posts
- Create file in
_posts/with format:YYYY-MM-DD-title.md - Include front matter:
--- layout: post title: "Post Title" date: YYYY-MM-DD categories: [category] ---
Updating Portfolio
- Edit
_data/projects.ymlfor project listings - Edit
_data/skills.ymlfor skill categories
Updating Pages
- Main pages are in
pages/directory - About page:
about.markdown - Home page:
index.html
Configuration
Key settings in _config.yml:
title,description- Site metadataheader_pages- Navigation menu itemsgoogle_analytics- Tracking ID
GitHub Actions
devto-publish.yml- Auto-publishes posts to Dev.to- Automatic deployment on push to main branch
Theme Customization
- Base theme: Minima
- Custom styles in
assets/css/ - Custom layouts in
_layouts/
Do Not Edit Directly
Gemfile.lock- Generated by bundler.jekyll-cache/- Build cache_site/- Generated output (if present locally)