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 portfolio website showcasing technical writing, content design projects, and a blog. The site includes an interactive resume API demo that serves JSON data from a local file.
Architecture
- Jekyll Static Site: Built with Jekyll using the minima theme with custom CSS overrides
- Resume API Demo: JavaScript-based simulation of a REST API using local JSON data (
resume.json) - Resume Data: Structured JSON following JSON Schema (
_data/resume_schema.json) - Python Flask API: Experimental Flask API (
resume_api.py) for serving resume data from GitHub - Content Structure:
_posts/: Blog posts in Markdown_layouts/: Jekyll layout templates_includes/: Reusable components (likeapi_demo.html)_data/: Structured data filesassets/: Static assets (CSS, images, PDFs)
Development Commands
Since Ruby/Jekyll tools are not installed in this environment:
- Local Development: Requires Jekyll installation (
bundle install,bundle exec jekyll serve) - Python API Testing:
python resume_api.py(requires Flask and flask-cors) - Content Updates: Edit Markdown files directly; Jekyll will rebuild automatically
Key Files
_config.yml: Jekyll configuration, site settings, and pluginsresume.json: Main resume data file (duplicates_data/resume.json)_includes/api_demo.html: Interactive resume API demonstration componentGemfile: Ruby dependencies (Jekyll)_sass/: Custom SCSS files for styling
Content Guidelines
- Blog posts go in
_posts/with YYYY-MM-DD-title.md format - Resume updates require changes to both
resume.jsonand_data/resume.json - Custom styling is in
_sass/andassets/css/style.css - All external links and PDFs are in
assets/other/
API Demo
The resume API demo simulates REST endpoints:
/api/resume- Full resume data/api/contactinfo- Contact information/api/objective- Professional objective/api/experience- Work experience array/api/education- Education details
The demo loads data from resume.json and provides interactive buttons to “fetch” different endpoints.