docs: update changelog page with v1.24.3 and v1.24.4 releases

- Added v1.24.4 entry documenting showInNav field and hardcodedNavItems configuration
- Added v1.24.3 entry documenting inner page logo configuration
- Includes configuration examples and updated file lists
- Maintains consistent format with existing changelog entries
This commit is contained in:
Wayne Sutton
2025-12-23 17:01:22 -08:00
parent 3d6700739d
commit fa9651f62e
22 changed files with 537 additions and 31 deletions

View File

@@ -2,7 +2,7 @@
---
Type: page
Date: 2025-12-23
Date: 2025-12-24
---
An open-source publishing framework for AI agents and developers. Write markdown, sync from the terminal. Your content is instantly available to browsers, LLMs, and AI agents. Built on Convex and Netlify.

View File

@@ -2,11 +2,84 @@
---
Type: page
Date: 2025-12-23
Date: 2025-12-24
---
All notable changes to this project.
## v1.24.4
Released December 23, 2025
**Navigation visibility control and hardcoded nav items**
- `showInNav` field for pages to control navigation visibility
- Pages can be published and accessible but hidden from navigation menu
- Set `showInNav: false` in page frontmatter to hide from nav
- Defaults to `true` for backwards compatibility (all existing pages show in nav)
- Pages with `showInNav: false` remain:
- Published and accessible via direct URL
- Searchable via search indexes
- Available via API endpoints
- Just hidden from the navigation menu
- Matches the pattern used for `blogPage.showInNav` in siteConfig.ts
- Hardcoded navigation items configuration for React routes
- Add React route pages (like `/stats`, `/write`) to navigation via `siteConfig.hardcodedNavItems`
- Configure navigation order, title, and visibility per route
- Set `showInNav: false` to hide from nav while keeping route accessible
- Navigation combines Blog link, hardcoded nav items, and markdown pages
- All nav items sorted by `order` field (lower = first)
Example configuration:
```typescript
// src/config/siteConfig.ts
hardcodedNavItems: [
{
slug: "stats",
title: "Stats",
order: 10,
showInNav: true,
},
{
slug: "write",
title: "Write",
order: 20,
showInNav: true,
},
],
```
Updated files: `convex/schema.ts`, `convex/pages.ts`, `scripts/sync-posts.ts`, `src/pages/Write.tsx`, `src/config/siteConfig.ts`, `src/components/Layout.tsx`
Documentation updated: `content/pages/docs.md`, `content/blog/setup-guide.md`
## v1.24.3
Released December 23, 2025
**Inner page logo configuration**
- Logo displays in header on blog page, individual posts, and static pages
- Desktop: logo positioned on the left (before back button)
- Mobile: logo positioned on the right (smaller size for compact header)
- Configurable via `siteConfig.innerPageLogo.enabled` and `siteConfig.innerPageLogo.size`
- Does not affect homepage logo (controlled separately)
- Logo links to homepage when clicked
Configuration:
```typescript
// src/config/siteConfig.ts
innerPageLogo: {
enabled: true, // Set to false to hide logo on inner pages
size: 28, // Logo height in pixels (keeps aspect ratio)
},
```
Updated files: `src/config/siteConfig.ts`, `src/pages/Blog.tsx`, `src/pages/Post.tsx`, `src/styles/global.css`
## v1.24.2
Released December 23, 2025

View File

@@ -2,7 +2,7 @@
---
Type: page
Date: 2025-12-23
Date: 2025-12-24
---
You found the contact page. Nice

View File

@@ -2,7 +2,7 @@
---
Type: page
Date: 2025-12-23
Date: 2025-12-24
---
Reference documentation for setting up, customizing, and deploying this markdown framework.
@@ -120,6 +120,7 @@ Content here...
| `slug` | Yes | URL path |
| `published` | Yes | `true` to show |
| `order` | No | Nav order (lower = first) |
| `showInNav` | No | Show in navigation menu (default: `true`) |
| `excerpt` | No | Short text for card view |
| `image` | No | Thumbnail for featured card view |
| `featured` | No | `true` to show in featured section |
@@ -128,6 +129,8 @@ Content here...
| `authorImage` | No | Round author avatar image URL |
| `layout` | No | Set to `"sidebar"` for docs-style layout with TOC |
**Hide pages from navigation:** Set `showInNav: false` to keep a page published and accessible via direct URL, but hidden from the navigation menu. Pages with `showInNav: false` remain searchable and available via API endpoints. Useful for pages you want to link directly but not show in the main nav.
### Sidebar layout
Posts and pages can use a docs-style layout with a table of contents sidebar. Add `layout: "sidebar"` to the frontmatter:
@@ -319,7 +322,7 @@ Edit `src/config/siteConfig.ts`:
export default {
name: "Site Name",
title: "Tagline",
logo: "/images/logo.svg", // null to hide
logo: "/images/logo.svg", // null to hide homepage logo
intro: "Introduction text...",
bio: "Bio text...",
@@ -330,7 +333,28 @@ export default {
title: "Blog", // Nav link and page title
order: 0, // Nav order (lower = first)
},
displayOnHomepage: true, // Show posts on homepage
// Hardcoded navigation items for React routes
hardcodedNavItems: [
{
slug: "stats",
title: "Stats",
order: 10,
showInNav: true, // Set to false to hide from nav
},
{
slug: "write",
title: "Write",
order: 20,
showInNav: true,
},
],
// Inner page logo configuration
innerPageLogo: {
enabled: true, // Set to false to hide logo on inner pages
size: 28, // Logo height in pixels (keeps aspect ratio)
},
// Featured section
featuredViewMode: "list", // 'list' or 'cards'
@@ -354,6 +378,21 @@ export default {
};
```
**Logo configuration:**
- `logo`: Homepage logo path (set to `null` to hide). Uses `public/images/logo.svg` by default.
- `innerPageLogo`: Logo shown on blog page, posts, and static pages. Desktop: top left. Mobile: top right. Set `enabled: false` to hide on inner pages while keeping homepage logo.
**Navigation structure:**
Navigation combines three sources sorted by `order`:
1. Blog link (if `blogPage.enabled` and `blogPage.showInNav` are true)
2. Hardcoded nav items (React routes from `hardcodedNavItems`)
3. Markdown pages (from `content/pages/` with `showInNav: true`)
All items sort by `order` (lower first), then alphabetically by title.
### Featured items
Posts and pages appear in the featured section when marked with `featured: true` in frontmatter.
@@ -603,6 +642,11 @@ Mobile sizes defined in `@media (max-width: 768px)` block.
The `npm run sync` command only syncs markdown text content. Images are deployed when Netlify builds your site.
**Logo options:**
- **Homepage logo:** Configured via `logo` in `siteConfig.ts`. Set to `null` to hide.
- **Inner page logo:** Configured via `innerPageLogo` in `siteConfig.ts`. Shows on blog page, posts, and static pages. Desktop: top left corner. Mobile: top right corner (smaller). Set `enabled: false` to hide on inner pages while keeping homepage logo.
## Search
Press `Command+K` (Mac) or `Ctrl+K` (Windows/Linux) to open the search modal. Click the search icon in the nav or use the keyboard shortcut.

View File

@@ -2,7 +2,7 @@
---
Type: page
Date: 2025-12-23
Date: 2025-12-24
---
This markdown framework is open source and built to be extended. Here is what ships out of the box.

View File

@@ -564,10 +564,12 @@ To use a different letter or icon, edit the SVG directly or replace the file.
### Change the Site Logo
The logo appears on the homepage. Edit `src/pages/Home.tsx`:
The site uses two logo configurations:
**Homepage logo:** Edit `src/config/siteConfig.ts`:
```typescript
const siteConfig = {
export default {
logo: "/images/logo.svg", // Set to null to hide the logo
// ...
};
@@ -575,6 +577,17 @@ const siteConfig = {
Replace `public/images/logo.svg` with your own logo file. Recommended: SVG format, 512x512 pixels.
**Inner page logo:** Shows on blog page, individual posts, and static pages. Configure in `src/config/siteConfig.ts`:
```typescript
innerPageLogo: {
enabled: true, // Set to false to hide logo on inner pages
size: 28, // Logo height in pixels (keeps aspect ratio)
},
```
The inner page logo appears in the top left corner on desktop and top right on mobile. It uses the same logo file as the homepage logo. Set `enabled: false` to hide it on inner pages while keeping the homepage logo.
### Change the Default Open Graph Image
The default OG image is used when a post does not have an `image` field in its frontmatter. Replace `public/images/og-default.svg` with your own image.
@@ -595,6 +608,7 @@ Edit `src/config/siteConfig.ts` to customize:
export default {
name: "Your Name",
title: "Your Title",
logo: "/images/logo.svg", // null to hide homepage logo
intro: "Your introduction...",
bio: "Your bio...",
@@ -605,7 +619,28 @@ export default {
title: "Blog", // Nav link and page title
order: 0, // Nav order (lower = first)
},
displayOnHomepage: true, // Show posts on homepage
// Hardcoded navigation items for React routes
hardcodedNavItems: [
{
slug: "stats",
title: "Stats",
order: 10,
showInNav: true, // Set to false to hide from nav
},
{
slug: "write",
title: "Write",
order: 20,
showInNav: true,
},
],
// Inner page logo configuration
innerPageLogo: {
enabled: true, // Set to false to hide logo on inner pages
size: 28, // Logo height in pixels (keeps aspect ratio)
},
// Featured section options
featuredViewMode: "list", // 'list' or 'cards'
@@ -821,6 +856,39 @@ Cards display post thumbnails (from `image` frontmatter field), titles, excerpts
**View preference:** User's view mode choice is saved to localStorage and persists across page visits.
### Hardcoded Navigation Items
Add React route pages (like `/stats`, `/write`) to the navigation menu via `siteConfig.ts`. These pages are React components, not markdown files.
Configure in `src/config/siteConfig.ts`:
```typescript
hardcodedNavItems: [
{
slug: "stats",
title: "Stats",
order: 10,
showInNav: true, // Set to false to hide from nav
},
{
slug: "write",
title: "Write",
order: 20,
showInNav: true,
},
],
```
Navigation combines three sources in this order:
1. Blog link (if `blogPage.enabled` and `blogPage.showInNav` are true)
2. Hardcoded nav items (from `hardcodedNavItems` array)
3. Markdown pages (from `content/pages/` with `showInNav: true`)
All items sort by `order` field (lower numbers first), then alphabetically by title.
**Hide from navigation:** Set `showInNav: false` to keep a route accessible but hidden from the nav menu. The route still works at its URL, just won't appear in navigation links.
### Scroll-to-top button
A scroll-to-top button appears after scrolling down on posts and pages. Configure it in `src/components/Layout.tsx`:
@@ -916,6 +984,7 @@ Your page content here...
| `slug` | Yes | URL path (e.g., `/about`) |
| `published` | Yes | Set `true` to show |
| `order` | No | Display order (lower = first) |
| `showInNav` | No | Show in navigation menu (default: `true`) |
| `authorName` | No | Author display name shown next to date |
| `authorImage` | No | Round author avatar image URL |
| `layout` | No | Set to `"sidebar"` for docs-style layout with TOC |
@@ -924,6 +993,8 @@ Your page content here...
Pages appear automatically in the navigation when published.
**Hide pages from navigation:** Set `showInNav: false` in page frontmatter to keep a page published and accessible via direct URL, but hidden from the navigation menu. Useful for pages like `/projects` that you want to link directly but not show in the main nav. Pages with `showInNav: false` remain searchable and available via API endpoints.
**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.
### Update SEO Meta Tags