docs: expand README + add CLAUDE.md for dev guidance
This commit is contained in:
@@ -0,0 +1,36 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Development Commands
|
||||||
|
|
||||||
|
- **Start Dev Server**: `npm run dev`
|
||||||
|
- **Build Site**: `npm run build`
|
||||||
|
- **Local Preview**: `npm run preview` (Uses Wrangler to simulate Cloudflare environment)
|
||||||
|
- **Deploy**: `npm run deploy` (Builds and deploys to Cloudflare Pages)
|
||||||
|
- **Type Check & Deploy Dry-run**: `npm run check`
|
||||||
|
- **Generate Types**: `npm run types` (Generates Wrangler/Cloudflare types)
|
||||||
|
|
||||||
|
## Architecture & Structure
|
||||||
|
|
||||||
|
This is an **Astro 5** project configured for **Cloudflare Pages/Workers (SSR)**.
|
||||||
|
|
||||||
|
### Core Structure
|
||||||
|
- `src/content/`: Content collections for blog posts. Schema-driven via Astro's Content Layer.
|
||||||
|
- `src/pages/`: File-based routing. Includes `.astro`, `.md`, and `.mdx` files.
|
||||||
|
- `src/components/`: Reusable Astro components.
|
||||||
|
- `src/layouts/`: Global page wrappers.
|
||||||
|
- `wrangler.json`: Cloudflare Pages configuration.
|
||||||
|
- `astro.config.mjs`: Astro configuration using the `@astrojs/cloudflare` adapter.
|
||||||
|
|
||||||
|
### Technology Stack
|
||||||
|
- **Framework**: Astro (SSR Mode)
|
||||||
|
- **Deployment**: Cloudflare Pages
|
||||||
|
- **Styling**: Standard CSS (within Astro components)
|
||||||
|
- **Content**: MDX, Markdown
|
||||||
|
- **Language**: TypeScript (Strict mode)
|
||||||
|
|
||||||
|
### Key Patterns
|
||||||
|
- **Content Collections**: Use `getCollection('blog')` to fetch content.
|
||||||
|
- **SSR**: The project is configured for server-side rendering on Cloudflare Workers.
|
||||||
|
- **Wrangler**: Used for local simulation of Cloudflare features and deployment.
|
||||||
@@ -1 +1,46 @@
|
|||||||
# Jimmy Gan Blog
|
# Jimmy Gan Blog
|
||||||
|
|
||||||
|
Personal website and blog built with [Astro](https://astro.build/) and deployed on [Cloudflare Pages](https://pages.cloudflare.com/).
|
||||||
|
|
||||||
|
## 🚀 Features
|
||||||
|
|
||||||
|
- **Astro 5**: Modern web framework for content-driven websites.
|
||||||
|
- **TypeScript**: Typed JavaScript for better developer experience.
|
||||||
|
- **Cloudflare Pages**: High-performance hosting with SSR support.
|
||||||
|
- **MDX Support**: Use React components in Markdown.
|
||||||
|
- **Sitemap & RSS**: Built-in support for SEO and feed readers.
|
||||||
|
|
||||||
|
## 🛠️ Development
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
- Node.js (Latest LTS recommended)
|
||||||
|
- npm
|
||||||
|
|
||||||
|
### Setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Commands
|
||||||
|
|
||||||
|
| Command | Action |
|
||||||
|
| :--- | :--- |
|
||||||
|
| `npm run dev` | Starts local dev server at `localhost:4321` |
|
||||||
|
| `npm run build` | Build your production site to `./dist/` |
|
||||||
|
| `npm run preview` | Preview your build locally with Wrangler |
|
||||||
|
| `npm run deploy` | Build and deploy to Cloudflare Pages |
|
||||||
|
| `npm run check` | Run type-checks and dry-run deployment |
|
||||||
|
|
||||||
|
## 📁 Project Structure
|
||||||
|
|
||||||
|
- `src/content/`: Blog posts and other content collections.
|
||||||
|
- `src/pages/`: File-based routing for your pages.
|
||||||
|
- `src/components/`: Reusable Astro components.
|
||||||
|
- `src/layouts/`: Page layouts.
|
||||||
|
- `public/`: Static assets like images and favicons.
|
||||||
|
|
||||||
|
## 📄 License
|
||||||
|
|
||||||
|
All rights reserved.
|
||||||
|
|||||||
Reference in New Issue
Block a user