Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Project Structure & Module Organization

AsyncTalk is an Astro content site for a Chinese web development podcast. Source code lives in `src/`: pages in `src/pages`, layouts in `src/layouts`, shared UI in `src/components`, global styles in `src/global.css`, and content configuration in `src/content.config.ts`. Podcast episodes are MDX files in `src/content/posts` using names such as `ep59.mdx`. Episode media belongs under `src/assets/<episode>/` when imported by Astro; public static files live in `public/`.
AsyncTalk is an Astro content site for a Chinese web development podcast. Source code lives in `src/`: pages in `src/pages`, layouts in `src/layouts`, shared UI in `src/components`, global styles in `src/global.css`, and content configuration in `src/content.config.ts`. Podcast episodes are MDX files in `src/content/posts` using names such as `ep59.mdx`. Episode media belongs under `src/assets/<episode>/` when imported by Astro; public static files live in `public/`. Two pieces of episode media are resolved by path convention rather than frontmatter, so they appear as soon as the file lands and are skipped while it is missing: square cover art at `src/assets/<episode>/cover.{jpg,jpeg,png,webp}` and subtitles at `public/subtitles/<episode>.srt`.

## Build, Test, and Development Commands

Expand Down
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ This is a content-driven static site using Astro's content collections system:

- **No Testing Framework**: This project currently has no automated tests. When implementing features, manual testing is required.
- **Content Management**: New episodes should be added as MDX files in `src/content/posts/` following the existing naming pattern (epX.mdx).
- **Episode Media**: Cover art and subtitles are declared in frontmatter, both optional. `cover` is a path relative to the MDX file (e.g. `../../assets/ep73/cover.png`), resolved by the schema's `image()` helper; it renders beside the title at its natural aspect ratio and feeds JSON-LD `image` plus the RSS `<itunes:image>`. `srt` is a path under `public/` (e.g. `/subtitles/ep73.srt`), parsed at build time into an on-page 文字稿 section, a download link, and JSON-LD `transcript` — a declared file that is missing fails the build.
- **Build Process**: Always run `pnpm astro check` before building to catch TypeScript errors in Astro components.
- **Episode Metadata**: Ensure all required frontmatter fields are properly filled when creating new episodes to maintain RSS feed compatibility.
- **Chinese Language**: All content and UI copy should be in Chinese. Pay attention to proper font rendering and character encoding.
Loading