CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Repository Overview
This is a Hugo-powered personal blog repository containing academic notes, research documentation, and technical memos. The blog covers topics in machine learning, systems programming, parallel computing, and software development tools.
Site Structure
content/posts/
- All blog post content in Markdown format
themes/hugo-theme-nostyleplease/
- Minimalist Hugo theme with under 3KB CSS
static/
- Static assets including images and attachmentspublic/
- Generated static site files (auto-generated by Hugo)
Content Categories
Academic Course Notes
- 5002/ - Data mining and knowledge discovery course materials
- CSAPP, CUDA, MPI, OpenMP, Pthread memos - Systems programming notes
Research and ML Topics
- Machine Learning: Quantization, tensor cores, BERT/transformer studies
- GPU Computing: CUDA programming, Blackwell architecture notes
- Distributed Systems: MPI and parallel programming documentation
Development Tools
- Terminal/Shell: iTerm, tmux, yabai window manager configurations
- Editors: LazyVim, VS Code setup and usage
- Programming Languages: Python, algorithm templates and references
Development Commands
Hugo Site Management
# Build the site (generates public/ directory)
hugo
# Serve locally with live reload (default: http://localhost:1313)
hugo server
# Serve with drafts included
hugo server --buildDrafts
# Clean build
hugo --cleanDestinationDir
Content Management
# Create new post
hugo new posts/post-name.md
# Create new post in subdirectory
hugo new posts/category/post-name.md
Deployment
The repository includes multiple deployment options:
Primary deployment command (preferred):
# Custom zsh command that builds and uploads to GitHub web server
pushblog
Alternative deployment script:
# Build, commit, and push to GitHub Pages
./upload.sh
The upload.sh
script runs:
hugo
- Build the static sitegit add .
- Stage all changesgit commit -m 'just upload'
- Commit changesgit push
- Deploy to remote repository
Content Structure
Post Format
All posts use Hugo front matter with this structure:
---
title: "Post Title"
date: 2025-01-01T00:00:00Z
draft: false
tags: [tag1, tag2]
---
# Content starts here
Theme Configuration
The site uses the hugo-theme-nostyleplease
theme configured in:
hugo.toml
- Main site configurationthemes/hugo-theme-nostyleplease/config.toml
- Theme-specific settings
Key theme features:
- Minimal CSS (under 3KB)
- Light/dark/auto appearance modes
- MathJax support for mathematical content
- Table of contents generation
- Responsive design
Asset Management
Images and Attachments:
- Stored in
static/attachments/
- Referenced in posts as
/attachments/filename.png
- Automatically copied to
public/attachments/
during build
Writing Workflow
Adding New Content
- Create new post:
hugo new posts/topic-name.md
- Edit content using Markdown with front matter
- Add any images to
static/attachments/
- Test locally:
hugo server
- Deploy:
pushblog
(preferred) or./upload.sh
Content Guidelines
- Use descriptive filenames with hyphens (e.g.,
cuda-programming-notes.md
) - Include appropriate tags for categorization
- Add table of contents for long posts using
toc: true
in front matter - Use code blocks with language specification for syntax highlighting
Theme Customization
Menu Structure
Edit themes/hugo-theme-nostyleplease/data/menu.toml
to modify navigation:
- Post lists can be filtered by section
- Supports nested menu structures
- Custom URL and title configurations
Styling
- Main styles:
themes/hugo-theme-nostyleplease/assets/css/main.scss
- Dark mode automatically inverts colors via CSS
invert()
function - Images can use
class="ioda"
to force inversion in dark mode
File Organization Patterns
Academic Notes
Organized by course/topic with consistent naming:
5002-[topic]-memo.md
for course-specific content[tool]-memo.md
for software/tool documentation
Research Documentation
- Technical deep-dives on ML/systems topics
- Implementation notes and architectural analysis
- Performance optimization studies
Reference Materials
- Programming language syntax references
- Algorithm templates and problem-solving patterns
- Tool configuration and setup guides
User Memory
- ‘pushblog’ command defined by user, written in zshrc. To compile hugo files, and upload it the remote server for blog viewing.
- You need to add a prefix just like other file, to make it compatible with hugo.
- IMPORTANT: Always run
pushblog
after creating or modifying content files to deploy changes to the blog.