update: moved footer to footer.md and docs updated

This commit is contained in:
Wayne Sutton
2025-12-30 17:29:11 -08:00
parent e81c814bc2
commit 86e9c4cf5b
29 changed files with 215 additions and 28 deletions

View File

@@ -1,2 +0,0 @@
published: true
unlisted: true

View File

@@ -12,8 +12,6 @@ blogFeatured: false
aiChat: false
image: /images/1225-changelog.png
excerpt: "Thank you for the stars, forks, and feedback. More AI-first publishing features are coming."
authorName: "Wayne Sutton"
authorImage: "/images/authors/markdown.png"
---
# Happy holidays and thank you

View File

@@ -2,15 +2,17 @@
title: "How I added WorkOS to my Convex app with Cursor"
description: "A timeline of adding WorkOS AuthKit authentication to my markdown blog dashboard using Cursor, prompt engineering, and vibe coding. From PRD import to published feature."
date: "2025-12-30"
slug: "how-i-added-workos-with-cursor"
slug: "workos-with-convex-cursor"
tags: ["cursor", "workos", "convex", "prompt-engineering", "ai-coding"]
readTime: "8 min read"
featured: false
newsletter: false
featuredOrder: 5
published: true
unlisted: true
layout: "sidebar"
excerpt: "How I used Cursor, prompt engineering, and Claude to add WorkOS authentication to my Convex dashboard. A real timeline from PRD import to published feature."
authorName: "Wayne Sutton"
---
# How I added WorkOS to my Convex app with Cursor

View File

@@ -1085,6 +1085,8 @@ Pages appear automatically in the navigation when published.
**Home intro content:** Create `content/pages/home.md` (slug: `home-intro`) to sync homepage intro text from markdown. Headings (h1-h6) use blog post styling (`blog-h1` through `blog-h6`) with clickable anchor links. Lists, blockquotes, horizontal rules, and links also use blog styling for consistent typography. Set `textAlign: "left"`, `"center"`, or `"right"` to control alignment. Run `npm run sync` to update homepage text instantly without redeploying. Falls back to `siteConfig.bio` if `home-intro` page not found.
**Footer content via markdown:** Create `content/pages/footer.md` (slug: `footer`) to manage footer content via markdown sync instead of hardcoding in siteConfig.ts. Run `npm run sync` to update footer text instantly without touching code. Supports full markdown including links, paragraphs, and line breaks. Falls back to `siteConfig.footer.defaultContent` if page not found.
**Sidebar layout:** Add `layout: "sidebar"` to any post or page frontmatter to enable a docs-style layout with a table of contents sidebar. The sidebar extracts headings (H1, H2, H3) automatically and provides smooth scroll navigation. Only appears if headings exist in the content.
**Right sidebar:** When enabled in `siteConfig.rightSidebar.enabled`, posts and pages can display a right sidebar containing the CopyPageDropdown at 1135px+ viewport width. Add `rightSidebar: true` to frontmatter to enable. Without this field, pages render normally with CopyPageDropdown in the nav bar. When enabled, CopyPageDropdown moves from the navigation bar to the right sidebar on wide screens. The right sidebar is hidden below 1135px, and CopyPageDropdown returns to the nav bar automatically.
@@ -1093,7 +1095,7 @@ Pages appear automatically in the navigation when published.
**Image lightbox:** Images in blog posts and pages automatically open in a full-screen lightbox when clicked (if enabled in `siteConfig.imageLightbox.enabled`). This allows readers to view images at full size. The lightbox can be closed by clicking outside the image, pressing Escape, or clicking the close button. To disable this feature, set `imageLightbox.enabled: false` in `src/config/siteConfig.ts`.
**Footer:** Footer content can be set in frontmatter (`footer` field) or use `siteConfig.footer.defaultContent`. Control visibility globally via `siteConfig.footer.enabled` and per-page via `showFooter: true/false` frontmatter.
**Footer:** Footer content can be managed three ways: (1) Create `content/pages/footer.md` to sync footer content via markdown (recommended), (2) set in frontmatter `footer` field for per-page overrides, or (3) use `siteConfig.footer.defaultContent` for static content. The markdown page takes priority over siteConfig when present. Control visibility globally via `siteConfig.footer.enabled` and per-page via `showFooter: true/false` frontmatter.
**Social footer:** Display social icons and copyright below the main footer. Configure via `siteConfig.socialFooter`. Control visibility per-page via `showSocialFooter: true/false` frontmatter.

View File

@@ -10,6 +10,29 @@ layout: "sidebar"
All notable changes to this project.
![](https://img.shields.io/badge/License-MIT-yellow.svg)
## v2.2.0
Released December 30, 2025
**Footer content via markdown page**
- New `content/pages/footer.md` for managing footer content via markdown sync
- Footer content syncs with `npm run sync` without redeploy needed
- Edit footer text, links, and formatting through markdown instead of code
- Falls back to `siteConfig.footer.defaultContent` when page not found
- Set `showInNav: false` to hide from navigation (page remains accessible via direct URL)
- Supports full markdown including links, paragraphs, and line breaks
**Technical details:**
- New file: `content/pages/footer.md` with frontmatter (slug: "footer", showInNav: false)
- Updated: `src/pages/Home.tsx` to fetch footer page by slug "footer"
- Updated: `src/pages/Blog.tsx` to fetch footer page by slug "footer"
- Footer component now prioritizes page content over siteConfig.defaultContent
- Pattern matches `home-intro` page for consistent content management
Updated files: `content/pages/footer.md`, `src/pages/Home.tsx`, `src/pages/Blog.tsx`, `files.md`, `changelog.md`, `content/pages/changelog-page.md`, `FORK_CONFIG.md`, `TASK.md`
## v2.1.0
Released December 30, 2025

View File

@@ -146,6 +146,8 @@ order: 1
Content here...
```
### Frontmatter options
| Field | Required | Description |
| ------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `title` | Yes | Nav link text |
@@ -216,6 +218,38 @@ Your homepage intro text here.
**Fallback:** If `home-intro` page is not found, the homepage falls back to `siteConfig.bio` text.
### Footer content
The footer content can be synced from markdown via `content/pages/footer.md` (slug: `footer`). This allows you to update footer text without touching code.
**Create footer content:**
1. Create `content/pages/footer.md`:
```markdown
---
title: "Footer"
slug: "footer"
published: true
showInNav: false
order: -1
---
Built with [Convex](https://convex.dev) for real-time sync and deployed on [Netlify](https://netlify.com).
Created by [Your Name](https://x.com/yourhandle). Follow on [Twitter/X](https://x.com/yourhandle) and [GitHub](https://github.com/yourusername).
```
2. Run `npm run sync` to sync to Convex
3. Footer content appears on homepage and blog page instantly (no rebuild needed)
**Markdown support:** Footer content supports full markdown including links, paragraphs, line breaks, and images. External links automatically open in new tabs.
**Fallback:** If `footer` page is not found, the footer falls back to `siteConfig.footer.defaultContent`.
**Relationship with siteConfig:** The `content/pages/footer.md` page takes priority over `siteConfig.footer.defaultContent` when present. Use the markdown page for dynamic content that changes frequently, or keep using siteConfig for static footer content.
### Sidebar layout
Posts and pages can use a docs-style layout with a table of contents sidebar. Add `layout: "sidebar"` to the frontmatter:

11
content/pages/footer.md Normal file
View File

@@ -0,0 +1,11 @@
---
title: "Footer"
slug: "footer"
published: true
showInNav: false
order: -1
---
Built with [Convex](https://convex.dev) for real-time sync and deployed on [Netlify](https://netlify.com). Read the [project on GitHub](https://github.com/waynesutton/markdown-site) to fork and deploy your own. View [real-time site stats](/stats).
Created by [Wayne](https://x.com/waynesutton) with Convex, Cursor, and Claude Opus 4.5. Follow on [Twitter/X](https://x.com/waynesutton), [LinkedIn](https://www.linkedin.com/in/waynesutton/), and [GitHub](https://github.com/waynesutton). This project is licensed under the MIT [License](https://github.com/waynesutton/markdown-site?tab=MIT-1-ov-file).