mirror of
https://github.com/waynesutton/markdown-site.git
synced 2026-01-12 04:09:14 +00:00
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:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
---
|
||||
Type: page
|
||||
Date: 2025-12-23
|
||||
Date: 2025-12-24
|
||||
---
|
||||
|
||||
You found the contact page. Nice
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user