diff options
| -rw-r--r-- | .claude/settings.local.json | 17 | ||||
| -rw-r--r-- | CLAUDE.md | 72 | ||||
| -rw-r--r-- | SPRINT.md | 18 | ||||
| -rw-r--r-- | src/content.config.ts | 2 |
4 files changed, 108 insertions, 1 deletions
diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..a291091 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,17 @@ +{ + "permissions": { + "allow": [ + "Bash(pnpm dev)", + "Bash(pnpm build)", + "Bash(pnpm postbuild)", + "Bash(pnpm preview)", + "Bash(pnpm lint)", + "Bash(pnpm format)", + "Bash(pnpm format:*)", + "Bash(pnpm check)", + "Bash(pnpm install)", + "Bash(git *)" + ], + "deny": [] + } +} diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..e5b1ce2 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,72 @@ +# CLAUDE.md + +## Project Overview + +Personal website and blog for Dawid Rycerz (rycerz.xyz). Built with Astro 5, featuring DevOps/web development blog posts, Pleroma microblog integration, full-text search, and dynamic OG image generation. Based on the Astro Cactus theme. + +## Commands + +```bash +pnpm dev # Start dev server +pnpm build # Build to ./dist/ +pnpm postbuild # Generate Pagefind search index +pnpm preview # Preview built site +pnpm deploy # Build + deploy to Cloudflare Pages +pnpm lint # Biome linting +pnpm format # Full formatting (Biome + Prettier + imports) +pnpm check # Astro type checking +``` + +## Architecture + +- **Framework:** Astro 5 (static site generator) with TypeScript (strictest mode) +- **Styling:** TailwindCSS 4 with Typography plugin +- **Content:** Markdown/MDX blog posts in `src/content/post/`, tags in `src/content/tag/` +- **Pleroma loader:** Custom content loader fetching posts from `social.craftknight.com` (`src/loaders/pleroma.ts`) +- **Custom plugins:** Remark admonitions (`src/plugins/remark-admonitions.ts`), Rehype image captions (`src/plugins/rehype-image-captions.ts`) +- **OG images:** Generated dynamically with Satori + Sharp (`src/pages/og-image/`) +- **Search:** Pagefind (indexed at postbuild) +- **Package manager:** pnpm + +### Key directories + +``` +src/ +├── components/ # Astro components (layout/, blog/) +├── content/ # Content collections (post/, tag/, pleroma) +├── data/ # Static data files +├── i18n/ # Internationalization +├── layouts/ # Page layouts (Base, BlogPost) +├── loaders/ # Custom content loaders +├── pages/ # Routes and dynamic pages +├── plugins/ # Remark/Rehype plugins +├── styles/ # Global styles +├── utils/ # Utility functions +├── content.config.ts # Content collection schemas +└── site.config.ts # Site-wide configuration +``` + +### Key config files + +- `astro.config.ts` - Astro configuration, integrations, markdown plugins +- `biome.json` - Linter/formatter (2-space indent, 100 char width, tabs) +- `tailwind.config.ts` - TailwindCSS with custom prose styling +- `tsconfig.json` - Strict TypeScript, `@/*` path alias to `src/*` + +## Conventions + +- TypeScript strict mode throughout +- Formatting: tabs, 100 char line width, trailing commas (Biome + Prettier) +- Path alias: `@/*` maps to `src/*` +- Astro components use `.astro` extension +- Blog posts use Markdown/MDX with YAML frontmatter +- Pre-commit hooks via Husky + +## Commit Rules + +**IMPORTANT:** Before completing any task, you MUST run `/commit` to commit your changes. + +- Only commit files YOU modified in this session - never commit unrelated changes +- Use atomic commits with descriptive messages +- If there are no changes to commit, skip this step +- Do not push unless explicitly asked diff --git a/SPRINT.md b/SPRINT.md new file mode 100644 index 0000000..1a3f411 --- /dev/null +++ b/SPRINT.md @@ -0,0 +1,18 @@ +# Sprint Backlog + +## Current Sprint: Setup +Started: 2026-01-29 +Goal: Initialize project tooling for Claude Code + +## In Progress + +## Backlog (Prioritized) + +## Completed This Sprint +- [x] **[CHORE-001]** Initial Claude Code setup + - Completed: 2026-01-29 + - Notes: Added CLAUDE.md, SPRINT.md, .claude/settings.local.json + +## Blocked + +## Sprint History diff --git a/src/content.config.ts b/src/content.config.ts index 0c97338..27c16d6 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -65,7 +65,7 @@ const pleroma = defineCollection({ "#termowizja", "#wlochy", "#włochy", - "#sycylia" + "#sycylia", ], }), schema: baseSchema.extend({ |
