This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Hugo personal website for Badran Elshenawy (bioinformatician, Oxford postdoc). Uses the Coder theme, deployed on Netlify. Contains 85+ blog posts across multiple tutorial series.
hugo server -D # Local dev server with drafts
hugo server # Local dev server without drafts
hugo # Production build (output to public/)- Config:
hugo.toml(site metadata, theme, social links, nav, taxonomies) - Deploy:
netlify.toml(Hugo v0.141.0) - Theme:
themes/Coder/(git submodule — do not edit directly) - Archetype:
archetypes/default.md(uses+++TOML front matter, but actual posts use---YAML)
Every blog post exists as two files: a .rmd source and a rendered .md file. Both are committed. The .rmd is the source of truth; the .md is generated via hugodown::md_document.
Files use {series_name}_part_{N}.md format with underscores:
scrna_seq_series_part_15.mdclaude_series_part_8.mdbulk_RNA_Seq_part_10.mdtidyverse_series_part_14.md- Standalone posts:
my_first_post.md,vs_code_quarto_visual_mode.md
Required fields for blog posts:
title: "Series Name – Post N: Subtitle"
author: "Badran Elshenawy"
date: 2026-01-01T08:00:00Z
categories: [...]
tags: [...]
description: "..."
slug: "url-friendly-slug"
draft: false
output: hugodown::md_document
summary: "..."
rmd_hash: <hash>Optional: aliases, featured
Four taxonomy types are configured: categories, series, tags, authors.
- Post-specific images:
content/posts/images/ - Site-wide images (avatar, etc.):
static/images/
markup.goldmark.renderer.unsafe = true— raw HTML is allowed in markdown (needed for Rmd rendering)- Pagination: 6 posts per page
- Color scheme:
autowith toggle enabled
Lowercase, descriptive format: {series} post {N}: {topic}
Examples: claude series post 8: subagents, scRNA-Seq series post 15: pea theory
Auto-deploys to Netlify on push to main. Live at: https://badran-elshenawy.netlify.app/