CLAUDE.md
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
What this is
A personal blog (“Master the Disaster”, by Amit Netanel) hosted at abbabon.github.io via GitHub Pages. It is built on the Beautiful Jekyll theme (by Dean Attali) — the theme’s full source lives in this repo (it doubles as the theme gem, see beautiful-jekyll-theme.gemspec). Most files come from the upstream theme; day-to-day work is editing content and _config.yml, not theme internals.
Commands
./run_site.sh # bundle exec jekyll serve — local dev server with live reload
bundle install # install gem dependencies after touching the Gemfile/gemspec
Ruby setup (one-time, RVM-based) is in install_ruby.sh; the theme targets Ruby ~2.7. There is no test/lint suite — this is a static content site. Deployment is automatic: pushing to master triggers GitHub Pages to build and publish.
Content model
- Published posts live in
_posts/namedYYYY-MM-DD-title.md. Permalinks are/:year-:month-:day-:title/(set in_config.yml). Each post starts with YAML front matter:layout: post,title,tags: [...], optionalcover-img/share-img/share-img-twitter,comments: true. Markdown is GFM (kramdown + rouge highlighter). - Drafts in
drafts/are works-in-progress not yet published — move a file to_posts/with a dated filename to publish it. archive/holds the theme’s original demo posts. They are not the author’s content; leave them unless explicitly asked.- Standalone pages (
about.md,contact.md,assets.md,tags.html) uselayout: pageby default (set viadefaultsin_config.yml). privacy/contains privacy-policy pages for the author’s mobile apps (e.g. AraratFM, ocdisocdat). Each sets an explicitpermalinkand is unrelated to the blog itself — treat them as independent landing pages.- Images go in
assets/img/(post images underassets/img/posts/).
Theme structure (rarely edited)
_layouts/— page templates;post.html,page.html,home.htmlextendbase.html._includes/— reusable HTML partials pulled into layouts._data/ui-text.yml— translatable UI strings._config.yml— site-wide settings: navbar links, social links, analytics, comments (Disqus), and the custom Dracula color palette (the author overrides many theme color variables here). Changes to_config.ymlrequire restarting the Jekyll server to take effect.
GitHub authentication
This repo belongs to the Abbabon GitHub account. ALWAYS authenticate as Abbabon for every GitHub operation here — both gh commands (PRs, etc.) and plain git push/git fetch. The machine also has an amitnglaive account — do not use it here.
The remote is HTTPS (https://github.com/Abbabon/abbabon.github.io.git). Before any push or gh command, make Abbabon the active account, and route git’s HTTPS credentials through gh so plain git push uses the same account:
gh auth switch --user Abbabon # make Abbabon the active gh account
gh auth setup-git # make git use the active gh account for HTTPS (one-time per machine)
Note: the machine’s osxkeychain credential helper can otherwise serve a different cached token to git push regardless of the active gh account, so always verify with gh auth status (active account must be Abbabon) before pushing.
Conventions
- The site is excluded from production for
README.md,CHANGELOG.md,Gemfile,LICENSE,screenshot.png(seeexclude:in_config.yml) — these are theme/repo docs, not site content. - Pagination is 5 posts per page (
jekyll-paginate); a sitemap is generated byjekyll-sitemap.