generated from Nicholai/astro-template
79 lines
2.2 KiB
Markdown
79 lines
2.2 KiB
Markdown
# CLAUDE.md
|
|
|
|
Development guidance for this minimal Astro template repository.
|
|
|
|
## Commands
|
|
|
|
### Core Development
|
|
```bash
|
|
pnpm dev # Development server
|
|
pnpm build # Build for production
|
|
pnpm preview # Preview build with Wrangler
|
|
pnpm deploy # Deploy to Cloudflare Pages
|
|
```
|
|
|
|
### Utilities
|
|
```bash
|
|
pnpm commit # AI-powered commit messages
|
|
pnpm convert:avif:all # Convert all images to AVIF
|
|
pnpm convert:avif:jpeg
|
|
pnpm convert:avif:png
|
|
pnpm cf-typegen # Generate Cloudflare types
|
|
```
|
|
|
|
## Change Documentation
|
|
|
|
**IMPORTANT**: Update `dev/continuity.md` when making changes to document:
|
|
- What changed and why
|
|
- Decisions made
|
|
- Next steps
|
|
|
|
## Architecture
|
|
|
|
Minimal Astro template with barebones structure:
|
|
|
|
### Content Layer (`src/content/`)
|
|
- **blog/** - MDX blog posts with schema validation (title, description, pubDate, updatedDate, heroImage, category, tags)
|
|
|
|
Schema defined in `src/content.config.ts`
|
|
|
|
### Component Layer
|
|
Minimal components only:
|
|
- **BaseHead.astro** - Basic SEO metadata
|
|
- **BlogCard.astro** - Simple blog post card
|
|
- **FormattedDate.astro** - Date formatting utility
|
|
|
|
### Routes
|
|
- `/` - Homepage with links to blog and contact
|
|
- `/blog` - Blog index listing all posts
|
|
- `/blog/[slug]` - Individual blog post pages
|
|
- `/contact` - Basic contact form
|
|
- `/404` - 404 error page
|
|
|
|
### Layouts
|
|
- **BaseLayout.astro** - Basic HTML structure with head
|
|
- **BlogPost.astro** - Blog post layout with metadata
|
|
|
|
## Styling
|
|
|
|
Minimal global CSS in `src/styles/global.css`:
|
|
- Basic typography
|
|
- Simple prose styles for markdown content
|
|
- No elaborate themes, animations, or custom styling
|
|
|
|
## Image Handling
|
|
- `src/assets/` - Processed by Astro (use for heroImage in frontmatter)
|
|
- `public/media/` - Served as-is (use absolute paths like `/media/file.mp4`)
|
|
- AVIF conversion utility available
|
|
|
|
## Deployment
|
|
- Cloudflare Pages adapter configured
|
|
- Image service: "compile" mode
|
|
- Platform proxy enabled for development
|
|
|
|
## Utility Scripts
|
|
|
|
- **`src/utils/convert-to-avif.js`** - Image optimization
|
|
- **`src/utils/git-commit.js`** - AI commit message generation (requires OpenRouter API key in `src/utils/.env`)
|
|
- **`src/utils/reading-time.ts`** - Calculate reading time for blog posts
|