CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

What this is

The source for the personal site at https://vikrant.dev — a Quarto static website. Content is authored in .qmd (Quarto Markdown) files; there is no application code, build framework, or test suite.

Commands

  • quarto preview — live-reloading local server while editing.
  • quarto render — build the static site into _site/.
  • quarto publish gh-pages — render and push to the gh-pages branch, which GitHub Pages serves at the vikrant.dev custom domain (set by CNAME). There is no CI workflow; publishing is manual from a working copy.

Requires the quarto CLI (developed against 1.8.x).

Layout & conventions

  • _quarto.yml is the single source of site config: title, navbar entries, social links, and the cosmo HTML theme. Any new top-level page must be added to the navbar here or it won’t be linked.
  • Top-level pages are .qmd files at the repo root (index.qmd, trainings.qmd, talks.qmd, writing.qmd). index.qmd uses the about page template.
  • The blog is a Quarto listing page (blog/index.qmd) that auto-indexes posts under blog/posts/. To add a post, create blog/posts/<slug>/index.qmd with front-matter including title, date, description, and categories — those fields drive the listing.
  • Cross-page links use relative .qmd paths (e.g. trainings.qmd, ../../../trainings.qmd from a post). Quarto rewrites these to .html at render time — keep the .qmd extension in source.
  • styles.css holds site-wide CSS overrides on top of the theme.

Do not edit / do not commit

  • _site/ (render output) and .quarto/ (cache) are generated and git-ignored — never hand-edit them.
  • Editor autosave/lock files (e.g. emacs #name#, name~) sometimes appear under content dirs; they are git-ignored cruft, not real content.