Changelog
All notable changes to JSONBlog packages are documented here.
cli
v3.1.1
- •Updated dependencies []:
- •@jsonblog/generator-boilerplate@5.0.0
v3.1.0
- •Add generator configuration support
- •Added `GeneratorConfigSchema` for validating generator configuration
- •Added optional `generator` field to `BlogSchema` with nested `name` and `config` properties
- •Both `name` and `config` fields are optional for maximum flexibility
- •Added `getGeneratorName()` helper to extract generator name from blog.json (takes precedence over CLI flag)
- •Added `getGeneratorConfig()` helper to extract generator configuration
- •Updated `build()` function to pass configuration as 3rd parameter to generators
- •Updated `build` and `watch` commands to use new configuration system
- •Added logging to show when generator config is being used
- •Updated function signature to accept optional 3rd parameter: `generatorConfig: Record<string, any> = {}`
- •Both `@jsonblog/generator-boilerplate` and `@jsonblog/generator-tailwind` now support configuration
- •Generators log whether config is provided via `hasConfig` flag
- •Backward compatible: config parameter is optional with empty object default
- •Updated dependencies []:
- •@jsonblog/schema@3.1.0
- •@jsonblog/generator-boilerplate@4.0.0
v3.0.2
- •Updated dependencies with professional design improvements
- •@jsonblog/generator-boilerplate@3.2.0
- •Redesigned header with semantic HTML and cleaner navigation
- •Post title now at top with date underneath for better hierarchy
- •Simplified AI indicator to subtle "AI-generated" badge
- •Tags moved to footer section after content
- •Professional styling inspired by Stripe, Linear, Vercel
- •Footer now links to jsonblog.dev
- •Enhanced spacing and typography throughout
v3.0.1
- •Updated dependencies with major typography improvements
- •@jsonblog/generator-boilerplate@3.1.0
- •Typography improvements (19px font, 816px width, system fonts)
- •Automatic syntax highlighting with Highlight.js
- •Better list indentation and spacing
- •Improved code block styling
- •Enhanced readability throughout
v3.0.0
- •# Major Release: Monorepo Migration & Package Renaming
- •`jsonblog-schema` → `@jsonblog/schema`
- •`jsonblog-generator-boilerplate` → `@jsonblog/generator-boilerplate`
- •`jsonblog-cli` → `@jsonblog/cli`
- •Packages now provide **dual ESM + CJS builds** for maximum compatibility
- •CLI is ESM-only (requires Node.js 20+)
- •Proper package exports with TypeScript types
- •⚡ Faster builds with Turborepo caching
- •📦 Better package management with pnpm workspaces
- •🔄 Coordinated releases with Changesets
- •🎯 Modern ESM/CJS dual builds
- •🛠️ Improved TypeScript support
- •Built with **tsup** for fast, optimized bundles
- •External dependencies properly handled (no bundling issues)
- •ESM-compatible with `import.meta.url` support
- •Fixed `__dirname` usage for ESM compatibility
- •Updated dependencies
- •@jsonblog/schema@3.0.0
- •@jsonblog/generator-boilerplate@3.0.0
schema
v3.1.0
- •Add generator configuration support
- •Added `GeneratorConfigSchema` for validating generator configuration
- •Added optional `generator` field to `BlogSchema` with nested `name` and `config` properties
- •Both `name` and `config` fields are optional for maximum flexibility
- •Added `getGeneratorName()` helper to extract generator name from blog.json (takes precedence over CLI flag)
- •Added `getGeneratorConfig()` helper to extract generator configuration
- •Updated `build()` function to pass configuration as 3rd parameter to generators
- •Updated `build` and `watch` commands to use new configuration system
- •Added logging to show when generator config is being used
- •Updated function signature to accept optional 3rd parameter: `generatorConfig: Record<string, any> = {}`
- •Both `@jsonblog/generator-boilerplate` and `@jsonblog/generator-tailwind` now support configuration
- •Generators log whether config is provided via `hasConfig` flag
- •Backward compatible: config parameter is optional with empty object default
v3.0.0
- •# Major Release: Monorepo Migration & Package Renaming
- •`jsonblog-schema` → `@jsonblog/schema`
- •`jsonblog-generator-boilerplate` → `@jsonblog/generator-boilerplate`
- •`jsonblog-cli` → `@jsonblog/cli`
- •Packages now provide **dual ESM + CJS builds** for maximum compatibility
- •CLI is ESM-only (requires Node.js 20+)
- •Proper package exports with TypeScript types
- •⚡ Faster builds with Turborepo caching
- •📦 Better package management with pnpm workspaces
- •🔄 Coordinated releases with Changesets
- •🎯 Modern ESM/CJS dual builds
- •🛠️ Improved TypeScript support
- •Built with **tsup** for fast, optimized bundles
- •External dependencies properly handled (no bundling issues)
- •ESM-compatible with `import.meta.url` support
- •Fixed `__dirname` usage for ESM compatibility
generator-boilerplate
v5.0.0
- •Implement directory-based pretty URLs and add interactive particle animation
- •Posts: `post-slug.html` → `post-slug/index.html`
- •Pages: `about.html` → `about/index.html`
- •Tags: `tag/javascript.html` → `tag/javascript/index.html`
- •Categories: `category/tutorial.html` → `category/tutorial/index.html`
- •Pagination: `page/2.html` → `page/2/index.html`
- •✅ Pretty URLs work everywhere (GitHub Pages, Netlify, Vercel, S3, etc.)
- •✅ No server configuration required
- •✅ Industry-standard approach (same as Jekyll, Hugo, Gatsby)
- •✅ SEO-friendly clean URLs
- •RSS feed URLs now use trailing slashes
- •Sitemap URLs now use trailing slashes
- •Dev server routing updated to handle directory structure
- •Blue particle network matching site accent color (#0066cc)
- •Interactive on hover - particles connect when mouse is near
- •Smooth, performant animation with 40 particles
- •Subtle opacity and size animations
- •~100KB library size via CDN
- •**Vercel**: Works automatically, no changes needed
- •**Netlify**: Works automatically, no changes needed
- •**GitHub Pages**: Works automatically, no changes needed
- •**Nginx**: Add `try_files $uri $uri/ $uri/index.html =404;`
- •**Apache**: Already works with default settings
- •Dev servers updated to serve `/path/index.html` for `/path` requests
- •Template links remain unchanged (already used extensionless URLs)
- •All generators maintain consistent behavior
v4.0.0
- •Add generator configuration support
- •Added `GeneratorConfigSchema` for validating generator configuration
- •Added optional `generator` field to `BlogSchema` with nested `name` and `config` properties
- •Both `name` and `config` fields are optional for maximum flexibility
- •Added `getGeneratorName()` helper to extract generator name from blog.json (takes precedence over CLI flag)
- •Added `getGeneratorConfig()` helper to extract generator configuration
- •Updated `build()` function to pass configuration as 3rd parameter to generators
- •Updated `build` and `watch` commands to use new configuration system
- •Added logging to show when generator config is being used
- •Updated function signature to accept optional 3rd parameter: `generatorConfig: Record<string, any> = {}`
- •Both `@jsonblog/generator-boilerplate` and `@jsonblog/generator-tailwind` now support configuration
- •Generators log whether config is provided via `hasConfig` flag
- •Backward compatible: config parameter is optional with empty object default
- •Updated dependencies []:
- •@jsonblog/schema@3.1.0
v3.2.0
- •Redesign blog template for professional appearance
- •Redesigned header with semantic HTML (header/nav/main tags)
- •Removed old sidebar/hamburger navigation patterns
- •Cleaner navigation with improved spacing and hover states
- •Footer now links to jsonblog.dev instead of GitHub
- •Post title now appears at top (larger, more prominent at 2.75rem)
- •Date displays underneath title for better hierarchy
- •Simplified AI indicator to subtle "AI-generated" badge
- •Tags moved to footer section after content
- •Better visual hierarchy with improved spacing
- •Enhanced header with subtle bottom border for separation
- •Professional AI indicator styling (subtle gray badge)
- •Better spacing throughout (3rem margins, 2rem padding)
- •Cleaner navigation without heavy borders
- •Improved article title sizing and letter spacing
v3.1.0
- •a8442c7: Improve typography and add automatic syntax highlighting
- •Increased base font size from 16px to 19px (20% larger) for better readability
- •Improved line-height from 1.6 to 1.75 for better breathing room
- •Increased max-width from 680px to 816px (20% wider)
- •Changed to system fonts for body text for native feel across devices
- •Improved heading hierarchy with larger sizes and better spacing
- •Better paragraph and list spacing throughout
- •Added Highlight.js for automatic syntax highlighting
- •Supports 190+ languages with auto-detection
- •Atom One Dark theme for professional code appearance
- •Dark code blocks with improved padding and border-radius
- •Fixed ordered/unordered list indentation
- •Improved spacing between list items and nested lists
- •Better inline code styling with distinct backgrounds
- •Enhanced blockquotes, tables, and other elements
- •Updated link colors to #0066cc for better contrast
- •Improved responsive breakpoints
- •Better table styling with zebra striping
- •Enhanced overall visual hierarchy
v3.0.0
- •# Major Release: Monorepo Migration & Package Renaming
- •`jsonblog-schema` → `@jsonblog/schema`
- •`jsonblog-generator-boilerplate` → `@jsonblog/generator-boilerplate`
- •`jsonblog-cli` → `@jsonblog/cli`
- •Packages now provide **dual ESM + CJS builds** for maximum compatibility
- •CLI is ESM-only (requires Node.js 20+)
- •Proper package exports with TypeScript types
- •⚡ Faster builds with Turborepo caching
- •📦 Better package management with pnpm workspaces
- •🔄 Coordinated releases with Changesets
- •🎯 Modern ESM/CJS dual builds
- •🛠️ Improved TypeScript support
- •Built with **tsup** for fast, optimized bundles
- •External dependencies properly handled (no bundling issues)
- •ESM-compatible with `import.meta.url` support
- •Fixed `__dirname` usage for ESM compatibility
- •Updated dependencies
- •@jsonblog/schema@3.0.0
generator-tailwind
v4.3.0
- •Add `itemsSource` field for loading grid items from external JSON files
- •**Keep blog.json clean**: Grid items can now be stored in separate files (e.g., `videos.json`, `projects.json`)
- •**New field**: `itemsSource` - path to JSON file containing array of grid items
- •**Automatic loading**: Items are fetched and parsed automatically during build
- •**Backward compatible**: Inline `items` arrays still work
- •**Recommended pattern**: Use `itemsSource` for large lists to avoid bloating blog.json
v4.2.0
- •Add grid layout support for pages (videos, projects, portfolios)
- •**New page layouts**: Pages can now specify `layout: "grid"` for grid-based layouts
- •**Grid items**: Add `items` array to pages for structured content (videos, projects, etc.)
- •**Featured items**: Support `featured: true` to display items prominently at the top
- •**Rich metadata**: Items support title, description, url, image/thumbnail, date, and tags
- •**Responsive grid**: Automatic 2-column desktop grid that collapses to single column on mobile
- •**New types**: Added `PageGridItem` interface to TypeScript types
- •**Documentation**: Comprehensive README section explaining grid layout usage and examples
v4.1.0
- •Improve content width, remove duplicate titles, and add syntax highlighting
- •**Increased max-width**: Content width increased from 720px to 960px for better readability on modern screens
- •**Fixed duplicate H1**: Post pages no longer show duplicate title (removed H1 from markdown content since title is in template)
- •**Syntax highlighting**: Added Highlight.js with Atom One Dark theme for code blocks
- •All code blocks now have proper syntax highlighting across 190+ languages
v4.0.1
- •Fix CSS stylesheet path in HTML templates
- •Fixed critical bug where generated HTML referenced `/templates/tailwind.css` instead of `/main.css`
- •This caused 404 errors and completely unstyled pages in production
- •All generated HTML now correctly links to `/main.css`
v4.0.0
- •Transform to AI Lab Notebook aesthetic with dark theme and typographic swagger
- •**Dark theme**: Muted charcoal/ink backgrounds (#0A0B0D) with soft chalk text (#F8F9FA)
- •**Blueprint grid**: Subtle 32px grid pattern background (0.04 opacity)
- •**Typography-driven hierarchy**: Fonts do the heavy lifting, minimal color usage
- •**System UI language**: Monospace fonts for all metadata (timestamps, tags, navigation)
- •**Technical but friendly**: Readable at 2am, appeals to VCs and Dota teammates alike
- •Drop caps, pull quotes, gradient dividers, editorial serif fonts
- •Light off-white background, burgundy/forest/golden colors
- •Heavy 2px borders
- •Dark ink backgrounds with blueprint grid
- •Blue accent for links only, 1px soft borders
- •Mono font for system UI, simple blockquotes
- •Minimal color usage - hierarchy via weight and size
v3.2.1
- •Fix publishing issue from 3.2.0 where workspace dependencies were not properly transformed
- •v3.2.0 was published with `npm publish` which left `workspace:*` dependencies untransformed
- •v3.2.1 published correctly with `pnpm publish` to properly transform workspace dependencies
- •v3.2.0 has been deprecated - please use v3.2.1 or v3.1.0 instead
v3.2.0
- •Add comprehensive generator testing documentation and scripts
- •Created TESTING-GENERATORS.md with 6 testing strategies
- •Added test:generator npm script for quick testing
- •Included sample test-blog content for development
- •Added visual regression, snapshot, and performance testing approaches
- •Improved development workflow documentation
v3.1.0
- •Transform generator-tailwind with sophisticated Editorial/Magazine aesthetic
- •Replace IBM Plex Mono with editorial font stack: Playfair Display (headings), Lora (body), DM Sans (UI)
- •Dramatic typographic hierarchy with larger, more elegant sizing
- •Uppercase tracking for navigation and metadata
- •Primary: Burgundy (#8B2635) replacing generic blue
- •Secondary: Forest Green (#2C5F4D) for tags and accents
- •Tertiary: Golden (#C79F5C) for decorative elements
- •Warm neutrals with off-white background
- •Remove tsparticles animation; add centered editorial header with gradient dividers
- •Featured first post with large title and "Continue Reading" link
- •2-column responsive grid for remaining posts
- •Magazine-style post cards with refined hover effects
- •Drop caps on first paragraph (4.5rem burgundy Playfair)
- •Pull quotes with large decorative quotation marks
- •Elegant gradient dividers
- •Sophisticated spacing (1.8 line-height, generous margins)
- •Refined "AI-assisted" badge (replacing "[AI-Generated]")
- •Staggered fade-in-up animations on post cards
- •Smooth hover transitions on tags (forest green fill)
- •Animated arrows on "Continue Reading" links
- •Mobile-optimized typography scaling
- •Single column on mobile, 2-column grid on desktop
- •Responsive drop caps and pull quotes
v3.0.0
- •Implement directory-based pretty URLs and add interactive particle animation
- •Posts: `post-slug.html` → `post-slug/index.html`
- •Pages: `about.html` → `about/index.html`
- •Tags: `tag/javascript.html` → `tag/javascript/index.html`
- •Categories: `category/tutorial.html` → `category/tutorial/index.html`
- •Pagination: `page/2.html` → `page/2/index.html`
- •✅ Pretty URLs work everywhere (GitHub Pages, Netlify, Vercel, S3, etc.)
- •✅ No server configuration required
- •✅ Industry-standard approach (same as Jekyll, Hugo, Gatsby)
- •✅ SEO-friendly clean URLs
- •RSS feed URLs now use trailing slashes
- •Sitemap URLs now use trailing slashes
- •Dev server routing updated to handle directory structure
- •Blue particle network matching site accent color (#0066cc)
- •Interactive on hover - particles connect when mouse is near
- •Smooth, performant animation with 40 particles
- •Subtle opacity and size animations
- •~100KB library size via CDN
- •**Vercel**: Works automatically, no changes needed
- •**Netlify**: Works automatically, no changes needed
- •**GitHub Pages**: Works automatically, no changes needed
- •**Nginx**: Add `try_files $uri $uri/ $uri/index.html =404;`
- •**Apache**: Already works with default settings
- •Dev servers updated to serve `/path/index.html` for `/path` requests
- •Template links remain unchanged (already used extensionless URLs)
- •All generators maintain consistent behavior
v2.2.0
- •Add animated header background and generator metadata to footer
- •Added subtle animated gradient background that appears on hover
- •Dual-layer gradient animation: hover gradient and slow pulsing gradient
- •Smooth opacity transitions for professional feel
- •Background animates over 4 seconds with subtle pulse effect
- •Added generator name and version to footer
- •Dynamically reads from package.json at build time
- •Displays as "Generated by @jsonblog/generator-tailwind v2.2.0"
- •Smaller, subtle text styling in gray
- •Added `pulseSlow` keyframe animation to input.css
- •Generator reads package.json metadata at module initialization
- •Passes generatorName and generatorVersion to all template contexts
- •Z-index layering ensures content stays above animated backgrounds
v2.1.0
- •Enhance header design, reduce font sizes, and remove .html extensions
- •Enhanced header with bold title, blue accent underline, italic description
- •Animated navigation underlines that grow on hover
- •Header hover effect with blue accent line sweep
- •Base font: 19px → 17px
- •All headings and UI elements scaled proportionally
- •Removed .html extensions from all links
- •Configure hosting with `cleanUrls: true` for Vercel
v2.0.1
- •Fix Tailwind generator to use proper utility classes
- •Updated `input.css` to remove semantic component classes, keeping only base styles and content utilities
- •Converted all templates (layout, index, post, page, tag, category) to use Tailwind utility classes
- •Added subtle animations (fade-in on page load, hover effects on cards and buttons)
- •Implemented hover states with scale and color transitions
- •Maintained professional design inspired by jsonblog.dev homepage
- •Reduced CSS bundle size from 14KB to 12KB
- •IBM Plex Mono font for monospace aesthetic
- •Clean black/white/gray color scheme with #0066cc accent
- •Smooth transitions on all interactive elements
- •Hover effects: cards translate up, buttons scale and invert colors
- •Fade-in animation on page load for header and content
- •Responsive design with mobile-first approach
- •AI-generated post badges with distinct styling
- •Post cards have subtle hover lift effect
- •Tags and pagination buttons have smooth color inversion on hover
- •Navigation links have color transition on hover
- •Proper spacing and typography hierarchy
- •Professional, minimal aesthetic matching homepage
v2.0.0
- •Add generator configuration support
- •Added `GeneratorConfigSchema` for validating generator configuration
- •Added optional `generator` field to `BlogSchema` with nested `name` and `config` properties
- •Both `name` and `config` fields are optional for maximum flexibility
- •Added `getGeneratorName()` helper to extract generator name from blog.json (takes precedence over CLI flag)
- •Added `getGeneratorConfig()` helper to extract generator configuration
- •Updated `build()` function to pass configuration as 3rd parameter to generators
- •Updated `build` and `watch` commands to use new configuration system
- •Added logging to show when generator config is being used
- •Updated function signature to accept optional 3rd parameter: `generatorConfig: Record<string, any> = {}`
- •Both `@jsonblog/generator-boilerplate` and `@jsonblog/generator-tailwind` now support configuration
- •Generators log whether config is provided via `hasConfig` flag
- •Backward compatible: config parameter is optional with empty object default
- •Updated dependencies []:
- •@jsonblog/schema@3.1.0
v1.0.0
- •Initial release of Tailwind CSS generator
- •Build-time Tailwind CSS compilation with CLI
- •Utility-first CSS approach with optimized bundle (~14KB)
- •All features from generator-boilerplate (tags, pagination, RSS, sitemap)
- •Professional design matching boilerplate aesthetics
- •Customizable via tailwind.config.js
- •Same API and template structure as generator-boilerplate
- •Modern utility-first CSS framework
- •Excellent for rapid prototyping
- •Easy theme customization
- •Responsive design built-in
- •Industry-standard approach
- •--
v3.2.0
- •Redesign blog template for professional appearance
- •Redesigned header with semantic HTML (header/nav/main tags)
- •Removed old sidebar/hamburger navigation patterns
- •Cleaner navigation with improved spacing and hover states
- •Footer now links to jsonblog.dev instead of GitHub
- •Post title now appears at top (larger, more prominent at 2.75rem)
- •Date displays underneath title for better hierarchy
- •Simplified AI indicator to subtle "AI-generated" badge
- •Tags moved to footer section after content
- •Better visual hierarchy with improved spacing
- •Enhanced header with subtle bottom border for separation
- •Professional AI indicator styling (subtle gray badge)
- •Better spacing throughout (3rem margins, 2rem padding)
- •Cleaner navigation without heavy borders
- •Improved article title sizing and letter spacing
v3.1.0
- •a8442c7: Improve typography and add automatic syntax highlighting
- •Increased base font size from 16px to 19px (20% larger) for better readability
- •Improved line-height from 1.6 to 1.75 for better breathing room
- •Increased max-width from 680px to 816px (20% wider)
- •Changed to system fonts for body text for native feel across devices
- •Improved heading hierarchy with larger sizes and better spacing
- •Better paragraph and list spacing throughout
- •Added Highlight.js for automatic syntax highlighting
- •Supports 190+ languages with auto-detection
- •Atom One Dark theme for professional code appearance
- •Dark code blocks with improved padding and border-radius
- •Fixed ordered/unordered list indentation
- •Improved spacing between list items and nested lists
- •Better inline code styling with distinct backgrounds
- •Enhanced blockquotes, tables, and other elements
- •Updated link colors to #0066cc for better contrast
- •Improved responsive breakpoints
- •Better table styling with zebra striping
- •Enhanced overall visual hierarchy
v3.0.0
- •# Major Release: Monorepo Migration & Package Renaming
- •`jsonblog-schema` → `@jsonblog/schema`
- •`jsonblog-generator-boilerplate` → `@jsonblog/generator-boilerplate`
- •`jsonblog-cli` → `@jsonblog/cli`
- •Packages now provide **dual ESM + CJS builds** for maximum compatibility
- •CLI is ESM-only (requires Node.js 20+)
- •Proper package exports with TypeScript types
- •⚡ Faster builds with Turborepo caching
- •📦 Better package management with pnpm workspaces
- •🔄 Coordinated releases with Changesets
- •🎯 Modern ESM/CJS dual builds
- •🛠️ Improved TypeScript support
- •Built with **tsup** for fast, optimized bundles
- •External dependencies properly handled (no bundling issues)
- •ESM-compatible with `import.meta.url` support
- •Fixed `__dirname` usage for ESM compatibility
- •Updated dependencies
- •@jsonblog/schema@3.0.0