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: truein 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.mdfor course-specific content[tool]-memo.mdfor 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
pushblogafter creating or modifying content files to deploy changes to the blog.