Home

>

Tools

>

Ghost

>

Releases

>

0.8.0

Ghost Release: 0.8.0

Tag Name: 0.8.0

Release Date: 5/18/2016

Ghost LogoGhost

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

TL;DR

Ghost 0.8.0 introduces significant new features including Subscribers (Beta), Slack integration, and social media profile support. This release also brings performance improvements to the image uploader and editor, adds HTTP2 Preload headers for speed optimization, and fixes JSON-LD structured data errors. Note that this version contains breaking changes to the Theme API that theme developers need to address.

Highlight of the Release

    • Introduction of Subscribers feature (Beta) to collect email addresses from blog visitors
    • New Slack integration for publishing notifications
    • Twitter and Facebook profile support for improved structured data and SEO
    • HTTP2 Preload headers for performance optimization with CloudFlare
    • Completely rewritten image uploader with improved performance
    • Breaking changes to the Theme API requiring theme updates

Migration Guide

Theme API Breaking Changes

Handlebars Update to v4

Ghost now uses Handlebars v4 which introduces some breaking changes:

  1. Partials must use .hbs extension

    • Update all partial includes to use the .hbs extension
    • Example: Change {{> my-partial}} to {{> my-partial.hbs}}
  2. Changes to depthed paths (../)

    • Handlebars v4 conditionally pushes paths onto the stack
    • If a helper uses the same context, a new stack is not created
    • Review all instances of ../ in your templates
    • In most cases, you'll need to reduce the number of ../ instances or leave them as is
  3. HTML escaping changes

    • The = character is now HTML escaped
    • Always quote attributes when their values are generated from a mustache to avoid potential issues
    • Example: Change <div foo={{bar}}> to <div foo="{{bar}}">

Social Media URL Changes

If you've built custom themes or apps that interact with user or blog social media URLs:

  1. Ghost now stores only usernames (not full URLs) for Twitter and Facebook
  2. Use the new {{twitter_url}} and {{facebook_url}} helpers to generate full URLs
  3. Update any custom code that expects full URLs in these fields

Navigation Settings

If you've built custom code that interacts with navigation settings:

  1. Ghost now uses a custom transform for navigation settings
  2. The JSON string is transformed to/from an array of NavigationItem objects
  3. Update any custom code that manipulates navigation settings directly

Upgrade Recommendations

For Blog Owners

This is a recommended upgrade for all Ghost users. The new features like Subscribers and Slack integration provide valuable functionality, while the performance improvements enhance the overall experience.

For Theme Developers

This is a required upgrade if you maintain Ghost themes. You must update your themes to be compatible with the breaking changes in the Theme API, particularly regarding Handlebars v4 and partial templates.

Upgrade Steps

  1. Back up your Ghost installation and database before upgrading
  2. Follow the standard upgrade process for your installation method
  3. If you're using a custom theme, test it thoroughly after upgrading and make necessary adjustments
  4. Review the Theme API changes and update your theme accordingly
  5. After upgrading, check the Labs section to enable new features like Subscribers

Theme Compatibility

Refer to the official guide for detailed instructions on making your theme compatible with Ghost 0.8.0.

Bug Fixes

JSON-LD Structured Data Fixes

  • Fixed errors in JSON-LD output for the 'People' type on author pages
  • Changed publisher to a full 'Organisation' for the 'Article' type on posts
  • Prevented sameAs property from being filled with null values
  • Switched to using HTTPS for schema.org references to prevent mixed content warnings

Editor and UI Fixes

  • Fixed broken editor when content contains wrapped images
  • Fixed cmd-s shortcut not saving changes in text fields with focusout
  • Fixed drag-n-drop files from Chrome's download bar
  • Fixed loss of private settings when saving in certain circumstances
  • Fixed initial loading of a route with an invalid session
  • Fixed unwanted clearing of social inputs on blur with no edits
  • Fixed display of server-provided validation errors when adding subscribers
  • Allowed table content to be selectable by overriding global user-select style

Other Fixes

  • Fixed issue where blog logo was being overridden in metadata
  • Fixed issue with adding subscribers when collection is empty
  • Fixed validation handling for social media URLs
  • Fixed issue with import when user ID is 0

New Features

Subscribers (Beta)

  • New feature to collect email addresses from blog visitors
  • Includes admin UI for managing subscribers
  • Supports CSV import/export functionality
  • Accessible via a new /subscribe/ route
  • Can be enabled in Labs settings

Slack Integration

  • Sends notifications to a Slack channel when new posts are published
  • Configurable webhook URL in a new Apps section
  • Includes test notification functionality
  • Uses Ghost branding for notifications

Social Media Profiles

  • Added support for Twitter and Facebook profiles at both blog and user levels
  • Improves structured data output with proper social media metadata
  • Validates social media URLs and usernames
  • Adds new helpers: {{twitter_url}} and {{facebook_url}}

HTTP2 Preload Headers

  • Automatically inserts Link rel="preload" headers
  • Optimizes page loading when used with CloudFlare or other CDNs
  • Improves overall site performance

Internal Apps Improvements

  • Added proper configuration path for internal apps
  • Middleware/routes setup for any internal apps with the function
  • Improved permission handling for internal apps

Security Updates

Security Improvements

  • Improved error handling for subscriber operations to prevent information disclosure
  • Enhanced validation for incoming data with null value handling
  • Added permission improvements for the subscribers feature
  • Updated dependencies to address security concerns

Performance Improvements

Image Uploader and Editor Performance

  • Completely rewritten image uploader using Ember components instead of jQuery
  • ~10x speedup in processing time for keypress events when many images/upload components are in the editor
  • Added throttling to preview rendering to prevent queued renders
  • Optimized DOM manipulation by editing in memory before changing the page to avoid double-rendering

Subscribers Table Performance

  • Fixed performance issues with the subscribers table
  • Moved table definition from component to controller
  • Implemented manual table row manipulation instead of using live-query
  • Added debounce and throttle for scroll triggers in infinite pagination

Other Performance Improvements

  • Synchronous feature service implementation for faster feature flag checks
  • Improved PaginationRoute mixin for better handling of paginated API resources
  • Added config URLs to CORS whitelist for better performance with trusted sources

Impact Summary

Ghost 0.8.0 represents a significant update with both exciting new features and important breaking changes. The addition of Subscribers functionality (in beta) provides a crucial tool for blog owners to build their audience by collecting email addresses directly through Ghost. The Slack integration enables better workflow notifications, while social media profile support enhances SEO and structured data output.

Performance improvements are substantial, particularly in the editor where image handling has been completely rewritten for a 10x speed improvement with many images. HTTP2 Preload headers further optimize site loading speeds when used with modern CDNs.

The most impactful change for developers is the update to Handlebars v4, which requires theme updates to maintain compatibility. Theme developers must update partial references to use the .hbs extension and review template paths. This is a breaking change that requires immediate attention from theme maintainers.

Overall, this release balances new user-facing features with important infrastructure improvements, setting the foundation for Ghost's continued evolution as a professional publishing platform.

Full Release Notes

Note: this release contains breaking changes to the Theme API, please read the release blog post for more details.

Highlights

  • [New] Subscribers (Beta) - enable in labs to collect email addresses from your blog
  • [New] Slack integration - notify a slack channel whenever a new blog post is published
  • [New] Twitter & Facebook support - add your social profiles to your blog and users, get a meta data boost
  • [New] HTTP2 Preload headers - get super speed with CloudFlare
  • [Changed] Image uploader - improved editor performance and a smoother upload experience
  • [Changed] theme API breaking changes - see here for the details
  • [Fixed] Errors in JSON-LD structured data output on blog posts & author pages

The full change log contains a list of all changes.

Statistics:

File Changed289
Line Additions11,069
Line Deletions2,102
Line Changes13,171
Total Commits177

User Affected:

  • Can now collect email addresses from blog visitors with the new Subscribers feature (Beta)
  • Can integrate with Slack to receive notifications when new posts are published
  • Can add Twitter and Facebook profiles to improve blog metadata and SEO
  • Will benefit from HTTP2 Preload headers for faster page loading with CloudFlare

Contributors:

kevinansfieldErisDSacburdinesebgiejoerxjaswilliterinjokesgreenkeeperio-botkirrg001aileendbaldersJohnONolan