mirror of
https://github.com/waynesutton/markdown-site.git
synced 2026-01-12 04:09:14 +00:00
Update version to 1.0.0 across package.json and changelog. Configure netlify.toml with Convex deployment URL (agreeable-trout-200.convex.site). Verify TypeScript type-safety for src and convex directories. Confirm Netlify build passes with SPA 404 fallback configured. Update TASK.md with deployment steps and files.md with complete file structure.
144 lines
6.7 KiB
Markdown
144 lines
6.7 KiB
Markdown
# Markdown Site - File Structure
|
|
|
|
A brief description of each file in the codebase.
|
|
|
|
## Root Files
|
|
|
|
| File | Description |
|
|
| ---------------- | ---------------------------------------------- |
|
|
| `package.json` | Dependencies and scripts for the blog |
|
|
| `tsconfig.json` | TypeScript configuration |
|
|
| `vite.config.ts` | Vite bundler configuration |
|
|
| `index.html` | Main HTML entry with SEO meta tags and JSON-LD |
|
|
| `netlify.toml` | Netlify deployment and Convex HTTP redirects |
|
|
| `README.md` | Project documentation |
|
|
| `files.md` | This file - codebase structure |
|
|
| `changelog.md` | Version history and changes |
|
|
| `TASK.md` | Task tracking and project status |
|
|
|
|
## Source Files (`src/`)
|
|
|
|
### Entry Points
|
|
|
|
| File | Description |
|
|
| --------------- | ------------------------------------------ |
|
|
| `main.tsx` | React app entry point with Convex provider |
|
|
| `App.tsx` | Main app component with routing |
|
|
| `vite-env.d.ts` | Vite environment type definitions |
|
|
|
|
### Pages (`src/pages/`)
|
|
|
|
| File | Description |
|
|
| ---------- | ------------------------------------------------------- |
|
|
| `Home.tsx` | Landing page with intro, featured essays, and post list |
|
|
| `Post.tsx` | Individual blog post view with JSON-LD injection |
|
|
|
|
### Components (`src/components/`)
|
|
|
|
| File | Description |
|
|
| ---------------------- | ---------------------------------------------------------- |
|
|
| `Layout.tsx` | Page wrapper with theme toggle container |
|
|
| `ThemeToggle.tsx` | Theme switcher (dark/light/tan/cloud) |
|
|
| `PostList.tsx` | Year-grouped blog post list |
|
|
| `BlogPost.tsx` | Markdown renderer with syntax highlighting |
|
|
| `CopyPageDropdown.tsx` | Share dropdown for LLMs (ChatGPT, Claude, Cursor, VS Code) |
|
|
|
|
### Context (`src/context/`)
|
|
|
|
| File | Description |
|
|
| ------------------ | ---------------------------------------------------- |
|
|
| `ThemeContext.tsx` | Theme state management with localStorage persistence |
|
|
|
|
### Styles (`src/styles/`)
|
|
|
|
| File | Description |
|
|
| ------------ | ---------------------------------------------------------------- |
|
|
| `global.css` | Global CSS with theme variables, font config for all four themes |
|
|
|
|
## Convex Backend (`convex/`)
|
|
|
|
| File | Description |
|
|
| ------------------ | ------------------------------------------------- |
|
|
| `schema.ts` | Database schema (posts, pages, viewCounts tables) |
|
|
| `posts.ts` | Queries and mutations for blog posts, view counts |
|
|
| `pages.ts` | Queries and mutations for static pages |
|
|
| `http.ts` | HTTP endpoints: sitemap, API, Open Graph metadata |
|
|
| `rss.ts` | RSS feed generation (standard and full content) |
|
|
| `convex.config.ts` | Convex app configuration |
|
|
| `tsconfig.json` | Convex TypeScript configuration |
|
|
|
|
### HTTP Endpoints (defined in `http.ts`)
|
|
|
|
| Route | Description |
|
|
| --------------- | -------------------------------------- |
|
|
| `/rss.xml` | RSS feed with descriptions |
|
|
| `/rss-full.xml` | RSS feed with full content for LLMs |
|
|
| `/sitemap.xml` | Dynamic XML sitemap for search engines |
|
|
| `/api/posts` | JSON list of all posts |
|
|
| `/api/post` | Single post as JSON or markdown |
|
|
| `/meta/post` | Open Graph HTML for social crawlers |
|
|
|
|
## Content (`content/blog/`)
|
|
|
|
Markdown files with frontmatter for blog posts. Each file becomes a blog post.
|
|
|
|
| Field | Description |
|
|
| ------------- | -------------------------------------- |
|
|
| `title` | Post title |
|
|
| `description` | Short description for SEO |
|
|
| `date` | Publication date (YYYY-MM-DD) |
|
|
| `slug` | URL path for the post |
|
|
| `published` | Whether post is public |
|
|
| `tags` | Array of topic tags |
|
|
| `readTime` | Estimated reading time |
|
|
| `image` | Header/Open Graph image URL (optional) |
|
|
|
|
## Static Pages (`content/pages/`)
|
|
|
|
Markdown files for static pages like About, Projects, Contact.
|
|
|
|
| Field | Description |
|
|
| ----------- | ----------------------------------------- |
|
|
| `title` | Page title |
|
|
| `slug` | URL path for the page |
|
|
| `published` | Whether page is public |
|
|
| `order` | Display order in navigation (lower first) |
|
|
|
|
## Scripts (`scripts/`)
|
|
|
|
| File | Description |
|
|
| --------------- | -------------------------------------------- |
|
|
| `sync-posts.ts` | Syncs markdown files to Convex at build time |
|
|
|
|
## Netlify (`netlify/edge-functions/`)
|
|
|
|
| File | Description |
|
|
| ------------ | ------------------------------------------------ |
|
|
| `botMeta.ts` | Edge function for social media crawler detection |
|
|
|
|
## Public Assets (`public/`)
|
|
|
|
| File | Description |
|
|
| ------------- | ---------------------------------------------- |
|
|
| `favicon.svg` | Site favicon |
|
|
| `_redirects` | SPA redirect rules for static files |
|
|
| `robots.txt` | Crawler rules for search engines and AI bots |
|
|
| `llms.txt` | AI agent discovery file (llmstxt.org standard) |
|
|
|
|
### Images (`public/images/`)
|
|
|
|
| File | Description |
|
|
| ---------------- | -------------------------------------------- |
|
|
| `logo.svg` | Site logo displayed on homepage |
|
|
| `og-default.svg` | Default Open Graph image for social sharing |
|
|
| `*.png/jpg/svg` | Blog post images (referenced in frontmatter) |
|
|
|
|
## Cursor Rules (`.cursor/rules/`)
|
|
|
|
| File | Description |
|
|
| --------------- | ----------------------------------------- |
|
|
| `sec-check.mdc` | Security guidelines and audit checklist |
|
|
| `dev2.mdc` | Development guidelines and best practices |
|
|
| `help.mdc` | Core development guidelines |
|
|
| `convex2.mdc` | Convex-specific guidelines and examples |
|