Home

>

Tools

>

Ghost

>

Releases

>

1.24.0

Ghost Release: 1.24.0

Tag Name: 1.24.0

Release Date: 6/5/2018

Ghost LogoGhost

Open-source publishing platform specifically designed for professional bloggers and publications. Focuses on clean, minimalist writing and publishing experience.

TL;DR

Ghost 1.24.0 introduces Dynamic Routing Beta, a major architectural improvement that centralizes routing management and provides more flexibility for content organization. This release also fixes issues with short URLs in private blogs, improves error handling, and enhances the Koenig editor with drag & drop image uploads and new text formatting options. The update represents a significant step forward in Ghost's content management capabilities, though users of the undocumented channels feature should be cautious about upgrading.

Highlight of the Release

    • Dynamic Routing Beta - a centralized system for managing content routes and URLs
    • Fixed short URLs when private blogging is enabled
    • Koenig editor improvements including drag & drop image uploads
    • New text formatting options with superscript and subscript support
    • Improved error handling and messaging

Migration Guide

for Dynamic Routing Beta

Important Note for Channels Users: If you are currently using the undocumented config.channels.json feature, it's recommended to delay upgrading until Dynamic Routing exits beta, as it doesn't yet support the full feature set.

For Developers:

  • If you've built custom code that interacts with Ghost's routing system, you may need to update it
  • Replace usages of urlService.utils.urlFor with urlService.getByResourceId for resources (posts, authors, tags)
  • Be aware that URLs are now generated at bootstrap rather than runtime
  • Review the new routing hierarchy if you have custom routes that might conflict with built-in functionality

For All Users:

  • No specific action is required for standard installations
  • The update maintains backward compatibility with existing permalink structures
  • If you encounter 503 errors after upgrading, this may be because the URL service is still generating resource URLs - these should resolve once the process completes

Upgrade Recommendations

Standard Installations: This update is recommended for most Ghost users as it includes important bug fixes and enhancements to the editor experience.

For Users with Custom Routing: If you're using the standard Ghost installation without the undocumented channels feature, this update is safe to install.

For Channels Feature Users: If you are using the undocumented config.channels.json feature, it's recommended to delay upgrading until Dynamic Routing exits beta.

Upgrade Process: Follow the standard Ghost upgrade process. After upgrading, if you encounter any 503 errors, these should resolve once the URL service finishes generating resource URLs.

Bug Fixes

  • Fixed short URLs when private blogging is enabled (#9628)
  • Fixed broken scrolling and scroll bars in Code Injection inputs
  • Fixed incorrect return value for publicAPI from the configuration endpoint
  • Fixed error handling when Ghost fails to start due to native errors
  • Corrected documentation in content/settings/README.md regarding routing types
  • Fixed single lodash import to use proper path notation (lodash/get instead of dot notation)

New Features

Dynamic Routing Beta

The centerpiece of this release is the new Dynamic Routing system, which represents a significant architectural improvement:

  • Centralizes routing management in server/services/routing
  • Introduces distinct router types for collections, static routes, taxonomies, RSS feeds, and post previews
  • Provides a cleaner, more maintainable approach to URL generation
  • Enables unmounting and refreshing routes without server restart
  • Improves routing hierarchy with clear precedence rules (e.g., static pages take precedence over apps)
  • Maintains backward compatibility with existing permalink structures
  • Includes comprehensive YAML validation for route configuration

Koenig Editor Enhancements

The Koenig editor beta continues to improve with:

  • Drag & drop image card creation with automatic upload
  • New text formatting options:
    • ^superscript^ text expansion support
    • ~subscript~ text expansion support

Security Updates

No specific security fixes were mentioned in this release.

Performance Improvements

Impact Summary

Ghost 1.24.0 represents a significant architectural advancement with the introduction of Dynamic Routing Beta. This new system centralizes and streamlines how Ghost handles URLs and content organization, providing a more flexible foundation for future features.

The update to the routing system is largely invisible to end users but provides developers with more powerful tools for customizing content organization. Content creators will appreciate the improvements to the Koenig editor, particularly the addition of drag & drop image uploads and new text formatting options.

Several important bug fixes are included, most notably addressing issues with short URLs in private blogs and fixing scrolling problems in the Code Injection interface. The codebase continues to modernize with ES6 improvements and removal of legacy code.

For most users, this is a worthwhile upgrade that improves both the editing experience and the underlying architecture. However, users of the undocumented channels feature should approach with caution as the new Dynamic Routing system is still in beta and doesn't yet support all previous functionality.

Full Release Notes

  • ✨Dynamic Routing Beta (#9596)
  • 🐛Fixed short urls when private blogging is enabled (#9628)
  • 🐛Fixed broken scrolling/scroll bars in Code Injection inputs

Updates to the Koenig editor beta (release announcement):

  • ✨ Koenig - Drag & drop image card creation + upload
  • ✨ Koenig - ^superscript^ and ~subscript~ text expansion support

You can see the full change log for the details of every change included in this release.

ATTENTION: config.channels.json ❗️❗️

If you are using the undocumented channels feature (config.channels.json), it's not recommended to update your blog till Dynamic Routing is out of Beta, because it does not support the full feature set yet.

Statistics:

File Changed269
Line Additions8,649
Line Deletions8,269
Line Changes16,918
Total Commits14

User Affected:

  • Can leverage the new Dynamic Routing system for more flexible content organization
  • Need to be aware of changes to URL handling and generation
  • May need to update code that relies on the undocumented channels feature
  • Will benefit from cleaner codebase with ES6 improvements and removed legacy code

Contributors:

kirrg001ErisDShkd987tiendq