CLAUDE.md
CLAUDE.md
This file provides guidance to AI assistants (like Claude) working on this repository.
Project Overview
This is mehty.github.io, a personal portfolio website for Amirmehdi Sharifzad (data scientist / ML engineer). It is a static site built with Jekyll and hosted on GitHub Pages at https://mehty.github.io/.
Tech Stack
- Static Site Generator: Jekyll 3.9.5 (via
github-pagesgem) - Theme: Minima
- Markdown: Kramdown with GitHub-Flavored Markdown
- CSS Framework: W3.CSS (CDN), Bootstrap 3.3.7 (CDN)
- Icons: Font Awesome 4.7.0 (CDN)
- Fonts: Montserrat (Google Fonts)
- Diagrams: jekyll-mermaid plugin
- No JavaScript framework — vanilla JS only, no npm/Node tooling
Repository Structure
mehty.github.io/
├── .github/
│ └── workflows/
│ └── jekyll-docker.yml # CI/CD: builds site on push to master
├── _blogs/ # Blog post source files (Markdown)
│ └── ai-ds-helper.md
├── blogs/
│ └── index.html # Blog listing page (Liquid template)
├── images/ # Images and assets used across the site
├── resume/ # PDF resume files
├── _config.yml # Jekyll site configuration
├── Gemfile / Gemfile.lock # Ruby dependency management
├── index.html # Main portfolio landing page
├── README.md
└── .gitignore # Ignores _site/ and .DS_Store
Key Configuration
_config.yml
title: Mehtyurl: https://mehty.github.iomarkdown: kramdowntheme: minimacollections.blogs.output: truewith permalink/blogs/:name/plugins: [jekyll-mermaid]
.gitignore
_site/— generated build output, never committed.DS_Store— macOS metadata
Local Development
This project uses Ruby/Bundler. There is no Node.js or npm involved.
# Install dependencies
bundle install
# Serve locally with live reload
bundle exec jekyll serve
# Build for production (same as CI)
bundle exec jekyll build --future
The local server runs at http://localhost:4000 by default. The --future flag is used in CI to include posts with future dates.
Adding Blog Posts
- Create a new Markdown file in
_blogs/with this front matter:
---
title: "Your Post Title"
description: "Brief description"
date: YYYY-MM-DD
layout: post
permalink: /blogs/your-post-slug/
---
- Write content in Markdown below the front matter.
- The post will automatically appear in
blogs/index.htmlvia the Liquid loop oversite.blogs.
Mermaid diagrams are supported via the jekyll-mermaid plugin:
graph TD;
A-->B;
Deployment / CI
Workflow: .github/workflows/jekyll-docker.yml
- Trigger: Push to
masterbranch or pull requests targetingmaster - Mechanism: Docker container (
jekyll/builder:latest) - Build command:
jekyll build --future - Output:
_site/directory (artifact, not committed)
GitHub Pages serves the site directly from the master branch. The Actions workflow validates the build; actual serving is handled by GitHub Pages infrastructure.
Editing the Landing Page
index.html is a single-file portfolio page. It is not generated from a Jekyll layout — it is plain HTML with W3.CSS classes. Key sections (by anchor):
| Anchor | Content |
|---|---|
#home |
Hero / name banner |
#about |
Bio and featured projects |
#blogs |
Link to /blogs/ |
#music |
Embedded SoundCloud iframes |
#contact |
Location, phone, email |
Navigation is a fixed W3.CSS sidebar. The color scheme is black (#1b1b1b) with grey text.
Conventions
- No build step for CSS/JS — all styling is done via CDN-linked frameworks and inline styles in HTML.
- Images go in
images/. Use relative paths (e.g.,images/my_icon.jpg). - Resumes (PDFs) go in
resume/. - Blog posts go in
_blogs/as.mdfiles. - Keep
_site/out of version control — it is in.gitignore. - The site is responsive via W3.CSS responsive classes (
w3-hide-small, etc.).
Social / Contact Links
Update these in index.html footer if they change:
- GitHub: https://github.com/mehty
- LinkedIn: https://www.linkedin.com/in/amirmehdi-sh
- Twitter: https://twitter.com/ASharifzad
- SoundCloud: https://soundcloud.com/amsharifzad