VERSION 1.6.0

v1.6.0

Config-driven layout switching for blog and release notes, subscribe and feedback CTAs, and edit link fixes.

February 25, 2026
·12 changes

New Features

6 new additions

  • Blog layout switcher — choose between 'modern' (gradient hero, animated card grid, author bio cards, related posts) and 'minimal' (clean typography-driven list with featured post hero) via blog.layout in config/site.ts

  • Release notes layout switcher — choose between 'modern' (gradient featured hero, icon-decorated section cards with item counts) and 'changelog' (simple card list with colored section badges) via releaseNotes.layout in config/site.ts

  • Subscribe CTA — set subscribeUrl in config/site.ts to show a "Never Miss an Update" call-to-action on blog and release notes landing pages. Supports both URLs and email addresses

  • Image width control — set custom widths on images via the markdown title attribute: ![alt](src "50%"), ![alt](src "400px"), or ![alt](src "width=75%"). Default remains 60% of content width. Click-to-zoom lightbox still works on resized images

  • Customizable role chip colors — add a roleColor map to config/site.ts to assign per-role background colors to role chips. Text color (black or white) is auto-calculated based on contrast. Roles without a custom color fall back to the theme's --primary color

  • Code block title bar — fenced code blocks now support title="filename.ts" in the meta string to render a filename bar above the code block

Improvements

2 enhancements

  • Layout architecture refactored — blog and release notes pages are now thin orchestrators (data fetching, metadata, static params) that delegate rendering to layout components in components/blog/layouts/ and components/release-notes/layouts/
  • Release notes section parsing — new lib/release-notes-utils.ts utility parses ## Added, ## Changed, ## Fixed, ## Removed headings from release note markdown into structured sections with icons and item counts for the modern layout

Bug Fixes

4 issues resolved

  • Edit this page linksdoc.filePath now stores a relative path (via path.relative()) instead of an absolute filesystem path, fixing broken "Edit this page" URLs. Both main project and template use the same simplified URL construction

  • Blog author card spacing — added bottom margin (mb-12) to the author card so it no longer sits flush against the footer

  • Image 404s on subdirectory deployments — images in MDX content (e.g., ![alt](/img/photo.png)) now correctly resolve when deployed under a basePath (like GitHub Pages at username.github.io/repo-name/). The ImageLightbox component prepends NEXT_PUBLIC_BASE_PATH to absolute image paths

  • Upgrade compatibility with older configs — framework code that references newer config properties (blog, releaseNotes, subscribeUrl, feedbackUrl) now uses as any casts with optional chaining, so projects with older config/site.ts files build without TypeScript errors