mirror of
https://github.com/waynesutton/markdown-site.git
synced 2026-01-12 12:19:18 +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.
3.4 KiB
3.4 KiB
title, description, date, slug, published, tags, readTime
| title | description | date | slug | published | tags | readTime | |||
|---|---|---|---|---|---|---|---|---|---|
| Writing Markdown with Code Examples | A sample post showing how to write markdown with syntax-highlighted code blocks, tables, and more. | 2025-01-17 | markdown-with-code-examples | true |
|
5 min read |
Writing Markdown with Code Examples
This post demonstrates how to write markdown content with code blocks, tables, and formatting. Use it as a reference when creating your own posts.
Frontmatter
Every post starts with frontmatter between --- delimiters:
---
title: "Your Post Title"
description: "A brief description for SEO"
date: "2025-01-17"
slug: "your-url-slug"
published: true
tags: ["tag1", "tag2"]
readTime: "5 min read"
---
Code Blocks
TypeScript
import { query } from "./_generated/server";
import { v } from "convex/values";
export const getPosts = query({
args: {},
returns: v.array(
v.object({
_id: v.id("posts"),
title: v.string(),
slug: v.string(),
}),
),
handler: async (ctx) => {
return await ctx.db.query("posts").collect();
},
});
React Component
import { useQuery } from "convex/react";
import { api } from "../convex/_generated/api";
export function PostList() {
const posts = useQuery(api.posts.getPosts);
if (posts === undefined) {
return <div>Loading...</div>;
}
return (
<ul>
{posts.map((post) => (
<li key={post._id}>
<a href={`/${post.slug}`}>{post.title}</a>
</li>
))}
</ul>
);
}
Bash Commands
# Install dependencies
npm install
# Start development server
npm run dev
# Sync posts to Convex
npm run sync
# Deploy to production
npm run deploy
JSON
{
"name": "markdown-blog",
"version": "1.0.0",
"scripts": {
"dev": "vite",
"build": "vite build",
"sync": "npx ts-node scripts/sync-posts.ts"
}
}
Inline Code
Use backticks for inline code like npm install or useQuery.
Reference files with inline code: convex/schema.ts, src/pages/Home.tsx.
Tables
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run sync |
Sync markdown to Convex |
npx convex dev |
Start Convex dev server |
Lists
Unordered
- Write posts in markdown
- Store in Convex database
- Deploy to Netlify
- Updates sync in real-time
Ordered
- Fork the repository
- Set up Convex backend
- Configure Netlify
- Start writing
Blockquotes
Markdown files in your repo are simpler than a CMS. Version controlled, AI-editable, and no separate admin panel.
Links
External links open in new tabs: Convex Docs
Internal links: Setup Guide
Emphasis
Use bold for strong emphasis and italics for lighter emphasis.
Horizontal Rule
Images
Place images in public/ and reference them:

File Structure Reference
content/blog/
├── about-this-blog.md
├── markdown-with-code-examples.md
├── setup-guide.md
└── your-new-post.md
Tips
- Keep slugs URL-friendly (lowercase, hyphens)
- Set
published: falsefor drafts - Run
npm run syncafter adding posts - Use descriptive titles for SEO