CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
What this is
Personal site + blog for Patrik Šíma (Senior .NET & Azure consultant, creator of RosterIQ),
served at patriksima.github.io. It is a Jekyll site built on the Beautiful Jekyll theme
(by Dean Attali) — this repo is a fork of the theme, so most infrastructure files are upstream and
the actual owned content is a thin layer on top (see “What’s yours vs the theme’s” below).
Almost all reader-facing content is in Czech (language: cs, timezone: Europe/Prague).
GitHub Pages builds and deploys automatically on push to master; there is no separate CI/deploy step.
Commands
bundle install # one-time: install Ruby gems
bundle exec jekyll serve # local dev server with live reload at http://localhost:4000
bundle exec jekyll serve --drafts # also render files in _drafts/
bundle exec jekyll build # build static site into _site/ (gitignored)
There is no test/lint suite — this is content, not application code. Validation is visual via the local server. Ruby + Bundler must be installed.
Environment: Windows. Run shell commands via PowerShell, not Bash/POSIX tools (no awk, wc,
grep one-liners). Use PowerShell cmdlets or the dedicated Grep/Glob/Read tools instead.
Content model
- Blog posts live in
_posts/and must be namedYYYY-MM-DD-slug.md. The live URL is/:year-:month-:day-:title/(seepermalinkin_config.yml), so the date in the filename is part of the public URL — don’t rename a published post’s file. - Standalone pages are top-level
.md/.htmlfiles (e.g.aboutme.md,cv.md,services.md,sluzby.md,hireme.md,rosteriq.md,bsc-spoluprace.md). Anything not in_postsdefaults to thepagelayout. The navbar is hand-curated in_config.ymlundernavbar-links— adding a page file does NOT add it to the nav. - Some pages exist as English/Czech pairs (e.g.
services.md↔sluzby.md). Keep both in sync when editing service offerings.
Post front matter convention
Follow the pattern of existing posts in _posts/, e.g.:
---
layout: post # inherited as default; usually omit
title: "..."
subtitle: "..."
tags: [management, leadership, ...] # lowercase, drives /tags page
excerpt: "..." # shown on the feed page and in SEO
---
Czech long-form posts typically open with an English summary as a > blockquote immediately after
the front matter, often ending with a CTA link to /services/. Match this house style when adding or
editing articles. comments: true and social-share: true are applied to all posts via defaults.
What’s yours vs the theme’s
When making changes, edit the owned content; avoid touching theme internals unless intentionally customizing the theme.
- Owned content:
_posts/, the top-level page files listed above,index.html(custom hero landing with inline styles),_config.yml,assets/img/,assets/pdf/. - Upstream theme (change with care):
_layouts/,_includes/,assets/css/beautifuljekyll*.css,_data/ui-text.yml,README.md,CHANGELOG.md,beautiful-jekyll-theme.gemspec,staticman.yml,404.html,feed.xml,tags.html. The 19KBREADME.mdis the theme’s docs, not project docs.
Site config notes (_config.yml)
- Comments: Disqus (
disqus: patriksima78). Other comment backends are present but commented out. - Analytics: Google
gtagis active. - Markdown is kramdown with GFM input; syntax highlighting via rouge.
- Plugins:
jekyll-paginate(5/page),jekyll-sitemap,jekyll-seo-tag. exclude:keepsREADME.md,CHANGELOG.md,Gemfile*,LICENSE,screenshot.png,docs/out of the built site.