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 attachments
public/ - 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:

  1. hugo - Build the static site
  2. git add . - Stage all changes
  3. git commit -m 'just upload' - Commit changes
  4. git 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 configuration
  • themes/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

  1. Create new post: hugo new posts/topic-name.md
  2. Edit content using Markdown with front matter
  3. Add any images to static/attachments/
  4. Test locally: hugo server
  5. 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

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.