<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Ghost Dev]]></title><description><![CDATA[git push -f upstream master]]></description><link>https://dev.ghost.org/</link><image><url>https://dev.ghost.org/favicon.png</url><title>Ghost Dev</title><link>https://dev.ghost.org/</link></image><generator>Ghost 1.9</generator><lastBuildDate>Sat, 30 Sep 2017 00:56:11 GMT</lastBuildDate><atom:link href="https://dev.ghost.org/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Primary Tags]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Any post in Ghost can have multiple tags, but Ghost also pays attention to the order of those tags. The first tag entered is considered the most important, and is treated as a special case.</p>
<p>For a while now, you've been able to drag and drop the order of tags</p></div>]]></description><link>https://dev.ghost.org/primary-tags/</link><guid isPermaLink="false">59803d60b574570022f336a8</guid><category><![CDATA[Themes]]></category><dc:creator><![CDATA[John O'Nolan]]></dc:creator><pubDate>Tue, 01 Aug 2017 09:35:01 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>Any post in Ghost can have multiple tags, but Ghost also pays attention to the order of those tags. The first tag entered is considered the most important, and is treated as a special case.</p>
<p>For a while now, you've been able to drag and drop the order of tags in admin to set the correct primary tag, and also access a post's first tag using <code>{{tags.[0]}}</code>. This syntax is less than ideal, however, and it's hardly discoverable for theme developers, so we've introduced a new data object: <code>{{primary_tag}}</code> - to accomplish the same thing in a more friendly way.</p>
<p>Now if you're developing a theme and you just want to render the single most important categorisation label, you can directly access properties of the first tag with  <code>{{primary_tag.name}}</code> to easily achieve this. If you want to do more, you can open a block with <code>{{#primary_tag}}{{/primary_tag}}</code> to get access to all the context-sensitive helpers like <code>{{url}}</code> &amp; <code>{{img_url}</code>.</p>
<h2 id="exampleusage">Example usage</h2>
<p>If a post has tags of <code>News</code>, <code>Design</code>, <code>Architecture</code> - there are several ways to work with them:</p>
<p>Using the default <code>{{tags}}</code> helper will render a simple list of all post tags, linked to their respective archives:  <a href="https://dev.ghost.org/primary-tags/#">News</a>, <a href="https://dev.ghost.org/primary-tags/#">Design</a>, <a href="https://dev.ghost.org/primary-tags/#">Architecture</a></p>
<p>If you just wanted to output the primary tag and create a special link for that one case, then you could do what we do in Casper 2.0:</p>
<pre><code>{{#primary_tag}}
    &lt;a href=&quot;{{url}}&quot;&gt;{{name}}&lt;/a&gt;
{{/primary_tag}}
</code></pre>
<p>This way you can still have fairly liberal use of tags to determine posts which are related and belong together, but still keep a neat category-like taxonomy for output on the front end.</p>
<p>Hopefully this gives you a little more power and flexibility when building your next theme. If you're interested in finding out what else you can do, this and other theme API functionality is all documented over on <a href="http://themes.ghost.org/">http://themes.ghost.org/</a>.</p>
<hr>
<p>This change was released in <strong>Ghost 1.2.0</strong>. Self hosted developers can use <a href="https://docs.ghost.org/docs/ghost-cli">Ghost-CLI</a> to get this feature by running <code>$ ghost update</code> to install the <a href="https://github.com/TryGhost/ghost/releases">latest release</a>. Ghost(Pro) users will be upgraded automatically, soon.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Ghost 1.0.0 - React, redux and redis??]]></title><description><![CDATA[<div class="kg-card-markdown"><p><em>jk lol</em> 🤓 <em>here's what really happened...</em></p>
<p><a href="https://github.com/TryGhost/Ghost/releases/tag/1.0.0">Ghost 1.0.0</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>.</p>
<p>No seriously. It's done! In fact... there's a 1.0.2 😬!</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[New]</strong> Editor, default theme, new user tour, nightshift mode, and many other admin improvements. More details in the announcement</li></ul></div>]]></description><link>https://dev.ghost.org/ghost-1-0-0/</link><guid isPermaLink="false">597998972d8ba900246f9069</guid><category><![CDATA[Releases]]></category><dc:creator><![CDATA[Hannah Wolfe]]></dc:creator><pubDate>Thu, 27 Jul 2017 10:58:41 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p><em>jk lol</em> 🤓 <em>here's what really happened...</em></p>
<p><a href="https://github.com/TryGhost/Ghost/releases/tag/1.0.0">Ghost 1.0.0</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>.</p>
<p>No seriously. It's done! In fact... there's a 1.0.2 😬!</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[New]</strong> Editor, default theme, new user tour, nightshift mode, and many other admin improvements. More details in the announcement blog post <a href="https://blog.ghost.org/1-0/">here</a></li>
<li><strong>[New]</strong> Config with <a href="https://github.com/indexzero/nconf">nconf</a>, logging with <a href="https://github.com/trentm/node-bunyan">bunyan</a>, and debug output using <a href="https://github.com/visionmedia/debug">debug</a>.</li>
<li><strong>[Improved]</strong> Publish menu which brings scheduling front and centre, instead of it being an after thought</li>
<li><strong>[Improved]</strong> Simplified content screen with filtering makes it easier to find</li>
<li><strong>[Improved]</strong> The importer has had a complete overhaul, is now more robust and outputs much, much better error &amp; warning messages when things do go awry</li>
<li><strong>[Changed]</strong> Internal tags is no longer in labs, and the Public API Beta is now enabled by default (we're getting there!)</li>
<li><strong>[Changed]</strong> Various aspects of the Theme API, see the <a href="https://themes.ghost.org/docs/changelog">theme changelog</a> for more details...</li>
<li><strong>[Fixed]</strong> Addressed many issues with session handling, so you get logged out far less often or maybe even not at all</li>
<li>And much, much, much more...</li>
</ul>
<p>You can see the <a href="https://gist.github.com/kevinansfield/44cca4727892fcfc9e4d9a1aeab97dcc">full change log</a> for the details of all changes included in this release.</p>
<h2 id="indetail">In Detail</h2>
<p>Ok everyone, grab yourself a coffee and settle down - this is gonna be a big one! ☕️</p>
<p>Ghost 1.0.0 is a major rework and as a result there are a plethora of developer-facing changes that should make both our, and <em>your</em> life easier. Here's the ins and outs of what's changed...</p>
<h3 id="simplifyinginstallsupgrades">Simplifying Installs &amp; Upgrades</h3>
<p>We always dreamed of a Ghost that was easy to install &amp; upgrade. This was the original thought behind picking SQLite3 - no need to configure or setup databases. Unfortunately the binary dependency has always caused more problems than we ultimately solved.</p>
<p>Time for an entirely new approach &amp; the introduction of <a href="https://docs.ghost.org/docs/ghost-cli">Ghost CLI</a>.</p>
<p>The main aim of Ghost CLI is to make it possible to install and update Ghost with a <em>single command</em>.</p>
<p>To achieve this, we've simplified things and focused on creating a single path to success, with a <a href="https://docs.ghost.org/docs/hosting#section-recommended-stack">recommended stack</a> that should always result in a smooth, robust install &amp; upgrade process.</p>
<p>The TL;DR instructions for Ghost-CLI are:</p>
<ul>
<li>on your server, with a non-root user, run</li>
<li><code>sudo npm install -g ghost-cli</code></li>
<li>in an empty folder, run</li>
<li><code>ghost install</code></li>
<li>fill out the info you are prompted for</li>
<li>the end 💥</li>
</ul>
<p>When a new version of Ghost is released, you'll be able to upgrade by going to your ghost directory and running <code>ghost update</code>.</p>
<p>The <a href="https://docs.ghost.org">developer docs</a> feature a full step-by-step guide to preparing your server and getting Ghost <a href="https://docs.ghost.org/docs/install">installed</a> as well as a <a href="https://docs.ghost.org/docs/ghost-cli">cli reference guide</a> and details of <a href="https://docs.ghost.org/docs/config">the configuration</a> options available to you.</p>
<h3 id="rethinkingdatabases">Rethinking Databases</h3>
<p>As I mentioned earlier, one of the biggest drivers for using SQLite3 was to make Ghost installs easy. With the introduction of Ghost CLI we now have a new approach, and had the opportunity to rethink our database support.</p>
<p>As of Ghost 1.0.0 we no longer support PostgreSQL. This change was explained in detail in <a href="https://dev.ghost.org/dropping-support-for-postgresql/">this blog post</a>, the TL;DR being that the maintenance overhead was too high.</p>
<p>We are also now defaulting to MySQL for production blogs as a future-proofing measure. Ghost works great on SQLite3 right now, however we envisage building features that will be better suited to MySQL.  SQLite3 is still available as a development option.</p>
<p>If you inspect your database in Ghost 1.0.0 you may also notice that we've switched away from using standard auto-incrementing integer IDs to using ObjectID for all primary keys. ObjectID comes from MongoDB and creates a 24-char unique sequential string ID. This provides many benefits, including making it easier to replicate databases, providing us some interesting options for handling import/exports and much more.</p>
<p>We've also moved a lot of the migration and initialisation code out of Ghost itself and into <a href="https://github.com/TryGhost/knex-migrator">knex-migrator</a>. A command line tool that makes it easy to reset, initialise &amp; migrate databases. Ghost CLI uses this tool, but if you're doing manual installs or contributing, you'll need to install it in order to manage your databases 💾 .</p>
<h3 id="overhaulofcoretooling">Overhaul of core tooling</h3>
<p>Inside of Ghost itself, we've replaced and improved the core tooling to make it easier to both configure and debug.</p>
<h4 id="configwithnconf">Config with nconf</h4>
<p>One of the biggest changes that self-hosters will encounter with Ghost 1.0.0 is the change to using <a href="https://www.npmjs.com/package/nconf">nconf</a> for configuration. Gone is the old <code>config.js</code> file with multiple environments in one file, and in its place are shiny new <code>config.[env].json</code> files, which are only required if you need to override the defaults and so are no longer generated by Ghost.</p>
<p>Ghost CLI will automatically create any config files that you need. If you're installing without Ghost CLI or developing on Ghost core you may need to create a <code>config.development.json</code> or <code>config.production.json</code> file in the root of Ghost.</p>
<p>The default configuration for Ghost lives in <a href="https://github.com/TryGhost/Ghost/tree/master/core/server/config">/core/server/config</a>, but you should never edit these core files. Always create your own config file in the Ghost root folder. There are more details of how configuration has changed in the <a href="https://dev.ghost.org/nconf/">nconf blog post</a> and in the <a href="https://docs.ghost.org/docs/config">config docs</a>.</p>
<h4 id="loggingdebugging">Logging &amp; Debugging</h4>
<p>We have added a much better system for logging, using <a href="https://github.com/trentm/node-bunyan">bunyan</a> to create configurable logging output. By default in development mode, Ghost will output to stdout and stderr. In production mode, log files will be written to <code>/content/logs</code>. All of this behaviour is <a href="https://docs.ghost.org/docs/config#section-logging">configurable</a>.</p>
<p>We are also now using the popular <a href="https://github.com/visionmedia/debug">debug module</a> in Ghost, which is also used by several of our dependencies. If you're trying to debug Ghost, you can start it with the debug environment variable set, E.g. <code>DEBUG=ghost:*</code> or <code>DEBUG=*</code> to get additional output.</p>
<h3 id="errors">Errors</h3>
<p>Although less visible, we have also overhauled our error objects in 1.0.0. We now have a GhostError class with extended properties, and all other types of error extend this. This allows us to provide more detailed and consistent error messages throughout Ghost.</p>
<p>Many of these changes - logging, debug and errors - are being provided through a new module called <a href="https://github.com/TryGhost/Ignition">Ignition</a>, which is a collection of reusable tools that we are using across multiple projects (including Ghost, Ghost-CLI &amp; GScan) to provide consistency. Ignition also provides a generalised wrapper for nconf that is used in several projects but not Ghost, which has a slightly special setup ✨.</p>
<h3 id="betterstructure">Better structure</h3>
<p>Ghost's server side now has the admin, API and blog frontend split into 3 separate express apps each with their own middleware, routes and error handling. This will reduce weird bugs and regressions and make it far easier for us to add new features.</p>
<p>In addition, we've now been able to fully separate the Ghost-Admin Ember.js app so that it is no longer dependent on Ghost injecting data into the base template 🤓. This means that developers can run the Ember.js app independently with full support for tests and live reload. Everything a Ghost client needs is now fully provided via the API, which gives us lots of scope for the future.</p>
<p>In Ghost-Admin, the underlying code has been heavily componentised and reusable data like settings &amp; config have been moved into synchronous services. This significantly reduces complexity in the codebase, and should result in fewer regressions.</p>
<p>We've also added proper loading states and unified our networking, so all calls go through our own ajax service instead of being split between custom ajax and ember data. Meanwhile, we've upgraded through 6 major Ember.js versions and we've switched to using SVG icons to improve performance.</p>
<p>We have also upgraded the concept of adapters to a first class citizen. Custom storage or scheduling adapters can be added in <code>/content/adapters/</code>, more information about that <a href="https://github.com/TryGhost/Ghost/tree/master/content/adapters">here</a>. We'll be using adapters to improve our email support in future, and making it possible to install them with Ghost CLI. Awesome things are coming 🦄 !</p>
<h3 id="neweditorandtheapi">New Editor and the API</h3>
<p>As explained in the <a href="https://blog.ghost.org/1-0/">announcement post</a> the new editor is based on the <a href="https://github.com/bustle/mobiledoc-kit">MobileDoc</a> format. After extensive research, we decided that the most important factor in any WYSIWYG editor is the underlying data format. This change is explained in detail in the <a href="https://github.com/TryGhost/Ghost/issues/7429">original issue</a>.</p>
<p>MobileDoc is a great example of collaborative Open Source development in action. It's an MIT project being worked on by <a href="https://www.bustle.com/labs">Bustle</a>, <a href="https://ghost.org">Ghost</a>, <a href="http://www.201-created.com/">201Created</a>, and a number of other <a href="https://github.com/bustle/mobiledoc-kit/graphs/contributors">contributors</a>. Every time one of us makes an improvement, everyone benefits.</p>
<p>It's a great shame when multiple open source projects end up developing the same functionality due to hostile license choices - and this is often the case with editors. Our biggest hope is that more open source applications are able to take our work from both MobileDoc and Koenig and freely benefit from using it in their projects.</p>
<h3 id="publicapichanges">Public API Changes</h3>
<p>From Ghost 1.0.0 the Public API Beta feature is enabled by default. This is a step towards moving it out of labs, please let us know if you find any problems and please be aware there <em>will</em> be one last set of <a href="https://github.com/TryGhost/Ghost/issues/8605">breaking changes</a> when we do finally move it out of beta.</p>
<p>Note: If you're using the Public API on a 3rd party site you will need to update your site after upgrading to Ghost 1.0.0 so that it is still able to pull data from your Ghost site. See the <a href="http://api.ghost.org/docs/getting-started#section-migrating-to-ghost-1-0-0">API migration guide</a> for the details.</p>
<p>There are also several changes to the fields &amp; resources provided by the API. With the new editor, the <code>markdown</code> field has been removed in favour of a new <code>mobiledoc</code> field, which you can read more about in the <a href="http://api.ghost.org/docs/post#section-mobiledoc">API docs</a>. We also introduced a new <code>plaintext</code> field added a new <code>formats</code> param to the posts API, to make it possible to select which formats, E.g. html, plaintext, mobiledoc, that you want to fetch.</p>
<p>In addition, each image field that was called simply <code>image</code> or <code>cover</code> has been renamed to be more descriptive, E.g. posts image is now called <code>feature_image</code>. The unused <code>language</code> field that appeared on posts and users was renamed to <code>locale</code>. Users now have a <code>last_seen</code> instead of a <code>last_login</code> and invited users are no longer stored in the <code>users</code> table until they accept their invite - they live in the <code>invites</code> table instead.</p>
<h3 id="themeapichanges">Theme API Changes</h3>
<p>Themes have had a lot of love in 1.0.0 ❤️. All of the code for managing, uploading and activating themes has been rewritten and moved to a single <a href="https://github.com/TryGhost/Ghost/tree/master/core/server/themes">location</a> &amp; this coupled with the express app restructuring should help to reduce the number of cache related theme issues.</p>
<p>We also now validate all themes using <a href="https://github.com/TryGhost/gscan">GScan</a>. GScan is a tool which runs a set of checks to make sure a theme will work before it is activated. You can always test a theme by visiting <a href="https://gscan.ghost.org">https://gscan.ghost.org</a> and uploading it there first or by installing gscan on your machine and using it as a <a href="https://github.com/TryGhost/gscan#cli-usage">cli tool</a>.</p>
<p>There are quite a few changes to the theme API in Ghost 1.0, most notably removing features that were previously deprecated, changing the names of image-related properties and introducing the concept of theme config.</p>
<p>The <a href="https://themes.ghost.org/docs/changelog">theme changelog</a> has full details of what has changed, and the <a href="https://themes.ghost.org/v1.0.0/docs/migrate-to-ghost-1-0-0">theme migration guide</a> will talk you through step by step how to update your theme for 1.0.</p>
<h3 id="developertooling">Developer tooling</h3>
<p>All Ghost &amp; Ghost-Admin dependency management is now done with <a href="https://yarnpkg.com/lang/en/">yarn</a>, which is not only much faster, but also gives us reliable idempotent installs.</p>
<p>Lastly, we've switched our recommended Node.js version to the <strong>Node.js v6 LTS</strong> and suggest using at least <strong>v6.11.1</strong>. We highly recommend upgrading to v6 before installing 1.0.0, if you haven't already. The docs have full details of our  <a href="https://docs.ghost.org/docs/supported-node-versions">supported Node.js versions</a>.</p>
<h2 id="howtoupgradetoghost10">How to upgrade to Ghost 1.0</h2>
<p>This is our first major release which breaks backwards compatibility, so the upgrade process is more involved than usual.</p>
<p><strong>If you don't have a Ghost site:</strong> Try it out for free with our <a href="https://ghost.org/pricing">14 day trial on Ghost(Pro)</a>. All new sites automatically run on Ghost 1.0.</p>
<p><strong>If you have an existing Ghost(Pro) site:</strong> The upgrade process will be mostly automated for you, with a couple of steps. We're upgrading people in batches over the coming weeks and once your account is ready to be migrated, you'll see an &quot;Upgrade to Ghost 1.0&quot; button when you log into <a href="http://Ghost.org">Ghost.org</a>, with instructions for what to do next.</p>
<img style="max-width:830px;margin-bottom:20px;" src="https://dev.ghost.org/content/images/2017/07/upgrade.png" alt="GhostPro Upgrade">
<p><strong>If you self-host Ghost:</strong> You will need to set up a new Ghost 1.0 install, and export/import your content over. We've put together <a href="https://docs.ghost.org/docs/migrating-to-ghost-1-0-0">a full migration guide</a> which should help.</p>
<p>Because the upgrade process is more complex this time around, we've marked Ghost 0.11 as a Long Term Support (LTS) release. We will continue to provide maintenance and security updates for Ghost 0.11 for the next 6 months.</p>
<h2 id="credits">Credits</h2>
<p>This release was lovingly crafted by Kevin Ansfield, Katharina Irrgang, Hannah Wolfe, Aileen Nowak, Austin Burdine, John O'Nolan, David Wolfe, Ryan McCarvill, Tobias Bieniek, Vivek Kannan, Patrick Kim, Sebastian Gierlinger, Kenneth Ashley, John O'Mahoney, Felix Rieseberg, vitalie maldur, sahand12, janvt, ivan sebastian, Rodney Folz, Rei, Rabbi Hossain, Myles Braithwaite, Matt Enlow, Marc Bachmann, Jimmy Cai, Gabor Javorszky, Fixer, David Balderston, Cezary Kluczyński, Ben Vibhagool and André Borud.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Ghost 0.11.11]]></title><description><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.11">Ghost 0.11.11</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>. This is primarily a bugfix and 1.0 migration preparation release.</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[New]</strong> Forwards compatibility has been added for Ghost 1.0 themes to allow for smoother upgrades</li>
<li><strong>[Improved]</strong> Protections against invalid dates in imports were added</li></ul></div>]]></description><link>https://dev.ghost.org/ghost-0-11-11/</link><guid isPermaLink="false">597998972d8ba900246f9068</guid><category><![CDATA[Releases]]></category><dc:creator><![CDATA[Kevin Ansfield]]></dc:creator><pubDate>Tue, 18 Jul 2017 13:10:12 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.11">Ghost 0.11.11</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>. This is primarily a bugfix and 1.0 migration preparation release.</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[New]</strong> Forwards compatibility has been added for Ghost 1.0 themes to allow for smoother upgrades</li>
<li><strong>[Improved]</strong> Protections against invalid dates in imports were added - previously it was possible to import invalid dates which would then cause the front-end to hang on certain requests</li>
<li><strong>[Fixed]</strong> Autosaving of new posts is now behaving correctly again</li>
</ul>
<p>You can see the <a href="https://gist.github.com/kevinansfield/46d028d21631df4fb8240fd77d8c2676">full change log</a> for the details of every change included in this release.</p>
<h2 id="indetail">In Detail</h2>
<p>0.11.11 is a pretty small release, the main headline change is that forwards compatibility<br>
with Ghost 1.0 themes has been added.</p>
<p>Forwards compatibility will allow you to install a 1.0 compatible theme prior to making the switch to Ghost 1.0. Please note: Ghost 1.0 has built-in compatibility checking, whereas Ghost LTS does not. To be absolutely sure a theme is compatible, please upload it to Ghost 1.0 or use <a href="https://gscan.ghost.org">https://gscan.ghost.org</a>.</p>
<h3 id="themeapichanges">Theme API Changes</h3>
<p>Image properties that were <a href="https://themes.ghost.org/docs/changelog#ghost-100-beta">renamed in 1.0</a> have been aliased to the old values so these will work in 0.11.11:</p>
<ul>
<li><code>{{@blog.cover_image}}</code></li>
<li><code>{{post.feature_image}}</code></li>
<li><code>{{tag.feature_image}}</code></li>
<li><code>{{user.profile_image}}</code></li>
<li><code>{{user.cover_image}}</code></li>
</ul>
<p>The <a href="https://themes.ghost.org/v1.0.0/docs/img_url"><code>{{img_url}}</code></a> helper has also been added for forwards compatibility.</p>
<p>See the <a href="http://themes.ghost.org/docs/changelog">theme API docs</a> for full details of what changed in Ghost 0.11.11. The theme documentation is frequently updated with more details and better examples. Please also use the <strong>suggest edits</strong> feature if you find something is missing or out of date.</p>
<h2 id="howtoupgrade">How to Upgrade</h2>
<p>All Ghost(Pro) users are being <strong>automatically updated</strong> and will be running Ghost 0.11.11 shortly. You're welcome :)</p>
<p>For people running Ghost on their own servers, you can <a href="https://ghost.org/developers/">download Ghost 0.11.11</a> and then check out the <a href="https://docs.ghost.org/v0.11.9/docs/how-to-upgrade-ghost">upgrade documentation</a> over on our <a href="http://docs.ghost.org">developer docs site</a>.</p>
<p>Enjoy!</p>
<h2 id="credits">Credits</h2>
<p>This release was lovingly crafted by Kevin Ansfield, Katharina Irrgang and David Wolfe.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Ghost 1.0 RC1]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Today we're announcing the first release candidate of Ghost 1.0 - which is (hopefully) the <em>last</em> step toward a final release. You can <a href="https://docs.ghost.org/docs/getting-started-guide">install this version via Ghost-CLI</a> for <strong>production usage</strong>. If you want to migrate your LTS (0.11) site to 1.0, check out the <a href="https://docs.ghost.org/docs/migrating-to-ghost-version-100">migration guide</a></p></div>]]></description><link>https://dev.ghost.org/ghost-1-0-0-rc-1/</link><guid isPermaLink="false">597998972d8ba900246f9067</guid><dc:creator><![CDATA[Katharina Irrgang]]></dc:creator><pubDate>Tue, 11 Jul 2017 17:34:52 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>Today we're announcing the first release candidate of Ghost 1.0 - which is (hopefully) the <em>last</em> step toward a final release. You can <a href="https://docs.ghost.org/docs/getting-started-guide">install this version via Ghost-CLI</a> for <strong>production usage</strong>. If you want to migrate your LTS (0.11) site to 1.0, check out the <a href="https://docs.ghost.org/docs/migrating-to-ghost-version-100">migration guide</a>.</p>
<p>Meanwhile, here's what's changed since the last beta:</p>
<ul>
<li><strong>[fixed]</strong> A bug where empty posts could be published</li>
<li><strong>[fixed]</strong> An edge case that would send Casper's infinite scroll into an infinite loop</li>
<li><strong>[fixed]</strong> Broken positioning on welcome tour elements</li>
<li><strong>[fixed]</strong> Minor visual bugs with SVG icons</li>
<li><strong>[fixed]</strong> Session sync issues with multiple tabs/refreshes</li>
<li><strong>[fixed]</strong> A regex issue with Ghost subdirectory URLs</li>
<li><strong>[fixed]</strong> Re-enabled custom robots.txt via themes</li>
<li><strong>[improved]</strong> Editor now focuses on the content area by default rather than the title</li>
<li><strong>[improved]</strong> Tag management performance for sites with many (hundreds) of tags</li>
</ul>
<p>You can see the <a href="https://gist.github.com/kirrg001/c19aefb9ff19346b81eaa3c2f5b422a0">full change log</a> for the details of all changes included in this release.</p>
<h2 id="updateddocumentation">Updated documentation</h2>
<p><a href="https://docs.ghost.org">Documentation for Ghost 1.0</a> is available and complete. If you spot any errors or have any trouble, please come and find us on <a href="https://slack.ghost.org">slack</a>.</p>
<h2 id="breakingchangesforthemeactivations">Breaking changes for theme activations</h2>
<p>In a <a href="https://dev.ghost.org/1-0-0-beta/">previous beta release post</a> we announced some upcoming breaking changes for themes. In Ghost 1.0 all themes are <a href="https://github.com/TryGhost/gscan">scanned</a> for compatibility when they're uploaded. If a fatal error is detected, the theme will not be activated.</p>
<p>Here's an overview of all fatal errors and their solutions:</p>
<ul>
<li><strong>[fatal]</strong> Usage of <code>{{pageUrl}}</code>, please use <code>{{page_url}}</code></li>
<li><strong>[fatal]</strong> Usage of <code>{{image}}</code>, please use <code>{{feature_image}}</code>, <code>{{cover_image}}</code> or <code>{{profile_image}}</code> (depending on context)</li>
<li><strong>[fatal]</strong> Usage of <code>{{author.image}}</code>, please use <code>{{author.profile_image}}</code></li>
<li><strong>[fatal]</strong> Usage of <code>{{post.image}}</code>, please use <code>{post.feature_image}}</code></li>
<li><strong>[fatal]</strong> Usage of <code>{{@blog.cover}}</code>, please use <code>{{@blog.cover_image}}</code></li>
<li><strong>[fatal]</strong> Usage of <code>{{author.cover}}</code>, please use <code>{{author.cover_image}}</code></li>
<li><strong>[fatal]</strong> Usage of <code>{{tag.image}}</code>, please use <code>{{tag.feature_image}}</code></li>
<li><strong>[fatal]</strong> Usage of <code>{{post.author.image}}</code>, please use <code>{{post.author. feature_image}}</code></li>
<li><strong>[fatal]</strong> Usage of <code>{{post.author.cover}}</code>, please use <code>{{post.author. cover_image}}</code></li>
<li><strong>[fatal]</strong> Usage of <code>{{post.tags.[#].image}}</code>, please use <code>{{post.tags.[#].feature_image}}</code></li>
<li><strong>[fatal]</strong> Usage of <code>{{tags.[#].image}}</code>, please use <code>{{tags.[#].feature_image}}</code></li>
<li><strong>[fatal]</strong> A template file called index.hbs must be present</li>
<li><strong>[fatal]</strong> A template file called post.hbs must be present.</li>
<li><strong>[fatal]</strong> Any unknown handlebars helper</li>
</ul>
<p>You can always test your theme in advance on <a href="http://gscan.ghost.org">http://gscan.ghost.org</a>. Furthermore, please read through the <a href="http://themes.ghost.org/docs/changelog">theme change log</a> for more information.</p>
<h2 id="nodev6">Node v6</h2>
<p>Our officially recommended version of Node.js is now &gt;= v6.9. Node v4 is still supported. <a href="https://docs.ghost.org/docs/supported-node-versions">Full list of supported Node versions</a>.</p>
<h2 id="ghostcli10">Ghost-CLI 1.0</h2>
<p>We've also released a new version of Ghost-CLI — 1.0.0-rc.1. You have to update to the newest version by running <code>npm install -g ghost-cli@latest</code>.</p>
<p><strong>Please ensure <code>ghost --version</code> shows <code>1.0.0-rc.2</code>.</strong></p>
<p>Please see <a href="https://docs.ghost.org/docs/getting-started-guide">here</a> for details on how to setup your server and install Ghost.</p>
<h2 id="credits">Credits</h2>
<p>Kevin Ansfield, Aileen Nowak, Patrick Kim, John O'Nolan, Hannah Wolfe, Fixer, Austin Burdine and Katharina Irrgang.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Ghost 1.0 Beta2]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Following Ghost 1.0.0-beta.1 a couple of weeks ago, today we're releasing Ghost 1.0.0-beta.2 - which is the next step towards a final release. We're anticipating that this will be the last beta, and the next package to be built will be a release-candidate.</p>
<p>Since</p></div>]]></description><link>https://dev.ghost.org/1-0-0-beta-2/</link><guid isPermaLink="false">597998972d8ba900246f9066</guid><dc:creator><![CDATA[Katharina Irrgang]]></dc:creator><pubDate>Fri, 23 Jun 2017 09:02:10 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>Following Ghost 1.0.0-beta.1 a couple of weeks ago, today we're releasing Ghost 1.0.0-beta.2 - which is the next step towards a final release. We're anticipating that this will be the last beta, and the next package to be built will be a release-candidate.</p>
<p>Since the first beta, a significant number of bugs have been found and fixed:</p>
<ul>
<li><strong>[fixed]</strong> ghost uninstall won't screw up your instance list</li>
<li><strong>[fixed]</strong> local process manager won't die if your .ghostpid file has gone away</li>
<li><strong>[fixed]</strong> Casper is now updated during <code>ghost update</code></li>
<li><strong>[improved]</strong> Commands that require sudo are shown in gray before they are run (future improvement will be to prompt)</li>
<li><strong>[fixed]</strong> Remove trailing slash for <code>{{@blog.url}}</code></li>
<li><strong>[improved]</strong> Theme activation error messages</li>
<li><strong>[changed]</strong> Enable public API by default</li>
<li><strong>[changed]</strong> set spellchecker to &quot;off&quot; by default</li>
</ul>
<p>You can see the <a href="https://gist.github.com/kirrg001/5ab1e5d9b733f05664c42d3e357d5bb1">full change log</a> for the details of all changes included in this release.</p>
<h2 id="anewclirelease">A new CLI release</h2>
<p>We've also released a new version of Ghost-CLI — 1.0.0-alpha.19. You can update by running <code>npm install -g ghost-cli@latest</code>. This includes and important fix so that the Casper theme is updated during <code>ghost update</code>.</p>
<h2 id="casper20">Casper 2.0</h2>
<p>Ghost 1.0.0-beta.2 also contains the most-visible change of the upcoming release, which is a brand new default theme.</p>
<p>Casper was originally designed for the functionality of Ghost 0.3, and as Ghost has grown and had new features added to it - those features have been tacked-on to the original design as an afterthought. Now, 4 years later, Casper has had a total rewrite to natively support all of the features which Ghost has in 2017.</p>
<p>We'll talk more about this in the full release post, but from a developer perpective the relevant changes are:</p>
<ul>
<li>More performant, cleaner use of handlebars</li>
<li>Significantly more inline code documentation to help new Ghost theme developers understand how our theme API works</li>
<li>Gulp + PostCSS now used to build and minify theme assets</li>
<li>New use of the <code>{{#get}}</code> helper to pull content from the API (which is now switched-on by default)</li>
<li>Proper support for Ghost's subscribers (beta) feature</li>
<li>Better handling of RSS feeds via Feedly, rather than raw XML</li>
<li>Better author meta data with extended use of new social profile fields</li>
<li>Google fonts replaced with system fonts</li>
<li>Icon font replaced with inline SVG icons</li>
<li>Significantly improved mobile support</li>
</ul>
<p><img src="https://dev.ghost.org/content/images/2017/06/casper-2.0_small--1-.png" alt=""></p>
<h2 id="credits">Credits</h2>
<p>Aileen Nowak, Kevin Ansfield, David Wolfe, John O'Nolan, Hannah Wolfe and Katharina Irrgang</p>
</div>]]></content:encoded></item><item><title><![CDATA[Ghost 0.11.10]]></title><description><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.10">Ghost 0.11.10</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>. This is predominantly a bug-fix release for <a href="https://dev.ghost.org/lts/">LTS</a> whilst we work towards the <a href="https://dev.ghost.org/1-0-0-beta/">imminent</a> 1.0 release.</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[Fixed]</strong> saving a slug in the post settings menu no longer results in an incorrect error stating &quot;someone</li></ul></div>]]></description><link>https://dev.ghost.org/ghost-0-11-10/</link><guid isPermaLink="false">597998972d8ba900246f9065</guid><category><![CDATA[Releases]]></category><dc:creator><![CDATA[Kevin Ansfield]]></dc:creator><pubDate>Fri, 16 Jun 2017 11:27:08 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.10">Ghost 0.11.10</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>. This is predominantly a bug-fix release for <a href="https://dev.ghost.org/lts/">LTS</a> whilst we work towards the <a href="https://dev.ghost.org/1-0-0-beta/">imminent</a> 1.0 release.</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[Fixed]</strong> saving a slug in the post settings menu no longer results in an incorrect error stating &quot;someone else is editing this post&quot;</li>
<li><strong>[Fixed]</strong> many small bugs see the <a href="https://gist.github.com/kevinansfield/124c3c0b6a75c2ebff4f349a2cfcf1d1">full list</a> for more details</li>
<li><strong>[Docs]</strong> all support docs now live at <a href="https://docs.ghost.org/v0.11.9">https://docs.ghost.org/v0.11.9</a> so the in-app links have been updated</li>
<li><strong>[Node]</strong> ⚠️ minimum version of node 4 is now v4.5.0</li>
</ul>
<p>You can see the <a href="https://gist.github.com/kevinansfield/124c3c0b6a75c2ebff4f349a2cfcf1d1">full change log</a> for the details of every change included in this release.</p>
<h2 id="howtoupgrade">How to Upgrade</h2>
<p>All Ghost(Pro) users are being <strong>automatically updated</strong> and will be running Ghost 0.11.10 shortly. You're welcome :)</p>
<p>For people running Ghost on their own servers, you can <a href="https://ghost.org/developers/">download Ghost 0.11.10</a> and then check out the <a href="https://docs.ghost.org/v0.11.9/docs/how-to-upgrade-ghost">upgrade documentation</a> over on our <a href="http://docs.ghost.org/v0.11.9">developer docs site</a>.</p>
<p>Enjoy!</p>
<h2 id="credits">Credits</h2>
<p>This release was lovingly crafted by Kevin Ansfield, Katharina Irrgang, David Wolfe, Aileen Nowak and Mateusz Derk.</p>
</div>]]></content:encoded></item><item><title><![CDATA[1.0.0 Beta is out!]]></title><description><![CDATA[<div class="kg-card-markdown"><p>After <strong>21</strong> alpha releases, we just released the first 1.0 beta version 😀.</p>
<p>Please read the <a href="https://dev.ghost.org/lts/">previous post</a> about the difference between 1.0 and LTS. The official support for LTS will end on the <strong>31st of August 2017</strong>.</p>
<h2 id="howtoinstallthebeta">How to install the beta?</h2>
<p>The <a href="https://github.com/TryGhost/Ghost-CLI">Ghost-CLI</a> is the recommended way</p></div>]]></description><link>https://dev.ghost.org/1-0-0-beta/</link><guid isPermaLink="false">597998972d8ba900246f9064</guid><dc:creator><![CDATA[Katharina Irrgang]]></dc:creator><pubDate>Thu, 08 Jun 2017 21:01:09 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>After <strong>21</strong> alpha releases, we just released the first 1.0 beta version 😀.</p>
<p>Please read the <a href="https://dev.ghost.org/lts/">previous post</a> about the difference between 1.0 and LTS. The official support for LTS will end on the <strong>31st of August 2017</strong>.</p>
<h2 id="howtoinstallthebeta">How to install the beta?</h2>
<p>The <a href="https://github.com/TryGhost/Ghost-CLI">Ghost-CLI</a> is the recommended way to install Ghost 1.0 beta, but it's not yet suitable for production.</p>
<p>We already mentioned in a <a href="https://dev.ghost.org/alpha-9-objectid-cli/">previous post</a>, which system stack we recommend. The CLI is able to setup NGINX and SSL for you <strong>soon</strong> - pretty cool, hm? 🙃</p>
<p>We've created a new <a href="https://docs.ghost.org/docs/installing-ghost-via-the-cli">Ghost CLI install guide</a> that covers installing Ghost via the CLI.</p>
<h2 id="migrationfromltsto10beta">Migration from LTS to 1.0 beta</h2>
<p>We have written a <a href="https://docs.ghost.org/docs/migrating-to-ghost-version-100">1.0 migration guide</a> for migrating from LTS to 1.0 beta. You basically have to install the 1.0 beta via the CLI, export your LTS database via the admin panel and import the file into the 1.0 blog.</p>
<h2 id="breakingchanges">Breaking changes</h2>
<p>Here is an overview of the <strong>most important</strong> breaking changes. Lay back and enjoy!</p>
<h3 id="docsghostorg"><a href="http://docs.ghost.org">docs.ghost.org</a></h3>
<p>We have removed our Github wiki and disabled <a href="http://support.ghost.org">support.ghost.org</a>, both now live now at <strong><a href="https://docs.ghost.org">https://docs.ghost.org</a></strong>. Having a centralised place for all our documentation is very useful. The documentation is for self hosters, theme developers and contributors - if you notice anything missing please let us know!</p>
<p>The new docs are hosted on <a href="http://readme.io">readme.io</a> so please send us suggestions if you notice anything that's incorrect or confusing.</p>
<p>The new docs are versioned so you'll find two sets of docs, one for <a href="https://docs.ghost.org/v0.11.9">v0.11.9</a> (LTS) and one for <a href="https://docs.ghost.org/v1.0.0">v1.0.0 beta</a>.</p>
<h3 id="aneweditor">A new editor</h3>
<p>Ghost 1.0 is sticking with a markdown-only editor for now (although it saves to <a href="https://github.com/bustle/mobiledoc-kit/blob/master/MOBILEDOC.md">mobiledoc</a> format internally for future extensibility) but that doesn't mean the editor experience has stood still.</p>
<p>The key changes:</p>
<ul>
<li>there's a toolbar!</li>
<li>the editor pane shows formatting directly rather than requiring a preview pane to give a less cluttered writing experience (don't worry, there's still a split-pane editor too for the full markdown preview)</li>
<li>image uploads are now initiated directly from the toolbar or by dragging and dropping images onto the editor pane (and yes, it supports multiple images at once!)</li>
<li>we now use <a href="https://github.com/markdown-it/markdown-it">markdown-it</a> instead of a very old customised version of Showdown fixing a lot of annoying markdown rendering bugs</li>
</ul>
<h3 id="10themes">1.0 Themes</h3>
<p>If you import a theme, which worked on 0.11.9, it <strong>might</strong> not work with 1.0 anymore because there have been couple of breaking changes in the theme API. However there are tons of themes which will still work.</p>
<p>To improve the migration experience when you upload your theme into Ghost 1.0 beta and it fails to import, it will show you a detailed report of why the import failed.</p>
<p>As a theme developer you can use <a href="http://gscan.ghost.org">gscan</a> to find out what adaptations you have to make for your theme to work with 1.0 beta.</p>
<p>Here is an overview of what has changed:</p>
<ul>
<li><code>package.json</code> is required and must contain a valid name, version and an author email address (<a href="http://themes.ghost.org/v1.0.0/docs/packagejson">docs</a>)</li>
<li>the <code>{{image}}</code> helper was removed</li>
<li>therefore we have added a <code>{{img_url}}</code> helper (<a href="http://themes.ghost.org/v1.0.0/docs/img_url">docs</a>)</li>
<li><code>{{pageUrl}}</code> helper was renamed to <code>{{page_url}}</code> helper (<a href="http://themes.ghost.org/v1.0.0/docs/page_url">docs</a>)</li>
<li><code>{{meta_description}}</code> in <code>&lt;head&gt;</code> is not allowed anymore</li>
<li>use <code>@config.posts_per_page</code> instead of <code>@blog.posts_per_page</code></li>
<li>you can define <code>posts_per_page</code> in your theme <code>package.json</code> (<a href="http://themes.ghost.org/v1.0.0/docs/packagejson#section-recommended-property">see</a>)</li>
<li><code>{{content words=&quot;0&quot;}}</code> does not work anymore, use <code>{{img_url}}</code> instead</li>
<li>we renamed some css classes (<a href="http://themes.ghost.org/v1.0.0/docs/context-overview#section-context-table">docs</a>)</li>
</ul>
<p>Please read through the <a href="https://themes.ghost.org/v1.0.0">1.0 theme documentation</a> for full details.</p>
<h3 id="configurationwithnconf">Configuration with nconf</h3>
<p>The old <code>config.js</code> file will no longer work. Instead we have added <a href="https://github.com/indexzero/nconf">nconf</a> as configuration management tool.</p>
<p>Checkout our <a href="https://docs.ghost.org/docs/configuring-ghost">configuration documentation</a> or the <a href="https://dev.ghost.org/nconf/">previous post</a> about using nconf.</p>
<h3 id="storageadapters">Storage adapters</h3>
<p>The location of storage adapters has changed and we added proper class inheritance. The base adapter was extracted to it's own npm module and now lives <a href="https://github.com/TryGhost/Ghost-Storage-Base">here</a>.</p>
<p>If you made use of a custom storage adapter in the past, this adapter won't work anymore. The maintainer will need to update it for 1.0.</p>
<p>Further details are available <a href="https://docs.ghost.org/docs/using-a-custom-storage-module">here</a>.</p>
<h3 id="anewmigrationtool">A new migration tool</h3>
<p>Before 1.0, the database population and migration were part of Ghost core itself. The logic was <a href="https://github.com/TryGhost/knex-migrator">extracted</a> and lives in it's own npm module.</p>
<p>When installing or using Ghost 1.0 regularly, the Ghost CLI takes care of <strong>any</strong> database upgrades. You don't have to execute any extra command.</p>
<p>However, in case you would like to manually re-initialise your database or test the new migration tool, please read more about it <a href="https://docs.ghost.org/docs/working-with-ghost#section-database-commands">here</a>.</p>
<h2 id="betatester">Beta tester</h2>
<p>We are very happy about beta testers and <strong>any</strong> feedback is <strong>very</strong> welcome. If you find a bug, please raise it on our <a href="https://github.com/TryGhost/Ghost/issues">Github repository</a>. If you have any questions or problems with installing the 1.0 beta, please swing by our <a href="https://slack.ghost.org">slack channel</a> and say hello 🙃.</p>
<h2 id="whatsnext">What's next?</h2>
<p>The official release of 1.0 depends on the number of bugs and feedback we get back during the beta. We would like to release it as soon as possible to concentrate on the next features so if you are able to test it please do!</p>
<p>Final things that didn't quite make the beta cut but are expected to be in the final 1.0 release:</p>
<ul>
<li>we have welcomed a <a href="https://github.com/juan-g">new contributor</a>, who has implemented the <a href="https://github.com/TryGhost/Ghost/issues/5345">i18n (translation) for themes</a></li>
</ul>
</div>]]></content:encoded></item><item><title><![CDATA[Ghost 0.11.9]]></title><description><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.9">Ghost 0.11.9</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>. This release contains lots of small bug fixes.</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[Fixed]</strong> import scheduled posts</li>
<li><strong>[Fixed]</strong> HTML displaying in error alerts</li>
<li><strong>[Fixed]</strong> permit Facebook usernames with less than 5 chars</li>
<li><strong>[Fixed]</strong> escape blog title for mail header</li>
<li><strong>[Fixed]</strong> update</li></ul></div>]]></description><link>https://dev.ghost.org/ghost-0-11-9/</link><guid isPermaLink="false">597998972d8ba900246f9063</guid><category><![CDATA[Releases]]></category><dc:creator><![CDATA[Katharina Irrgang]]></dc:creator><pubDate>Tue, 16 May 2017 21:16:00 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.9">Ghost 0.11.9</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>. This release contains lots of small bug fixes.</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[Fixed]</strong> import scheduled posts</li>
<li><strong>[Fixed]</strong> HTML displaying in error alerts</li>
<li><strong>[Fixed]</strong> permit Facebook usernames with less than 5 chars</li>
<li><strong>[Fixed]</strong> escape blog title for mail header</li>
<li><strong>[Fixed]</strong> update collision detection: updated_at is null</li>
<li><strong>[Fixed]</strong> a gscan bug: upload themes with e.g. .git folders</li>
</ul>
<p>You can see the <a href="https://gist.github.com/kirrg001/5499731dce5c7ea297857c9c536c4e88">full change log</a> for the details of all changes included in this release.</p>
<h2 id="howtoupgrade">How to Upgrade</h2>
<p>All Ghost(Pro) users are being <strong>automatically updated</strong> and will be running Ghost 0.11.9 shortly. You're welcome :)</p>
<p>For people running Ghost on their own servers, you can <a href="https://ghost.org/developers/">download Ghost 0.11.9</a> and then check out the <a href="http://support.ghost.org/how-to-upgrade">upgrade documentation</a> over on our <a href="http://support.ghost.org">support site</a>.</p>
<p>Enjoy!</p>
<h2 id="credits">Credits</h2>
<p>Kevin Ansfield and Katharina Irrgang</p>
</div>]]></content:encoded></item><item><title><![CDATA[Ghost 0.11.8]]></title><description><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.8">Ghost 0.11.8</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>. This release contains lots of small bug fixes. The most interesting one is the detection of post update collisions. If two users edit the same article, you won't override each others content anymore.</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[Fixed]</strong> Post update</li></ul></div>]]></description><link>https://dev.ghost.org/ghost-0-11-8/</link><guid isPermaLink="false">597998972d8ba900246f9062</guid><category><![CDATA[Releases]]></category><dc:creator><![CDATA[Katharina Irrgang]]></dc:creator><pubDate>Tue, 18 Apr 2017 18:18:39 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.8">Ghost 0.11.8</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>. This release contains lots of small bug fixes. The most interesting one is the detection of post update collisions. If two users edit the same article, you won't override each others content anymore.</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[Fixed]</strong> Post update collisions</li>
<li><strong>[Fixed]</strong> Be able to delete a post if it's referenced by a subscriber</li>
<li><strong>[Fixed]</strong> Image size timeout</li>
<li><strong>[Fixed]</strong> subscriber: sanitize email vol. 2</li>
<li><strong>[Fixed]</strong> some date bugs</li>
<li>many dependency updates</li>
</ul>
<p>You can see the <a href="https://gist.github.com/kirrg001/10d5e4c862f1284537bf69f3dfaced1b">full change log</a> for the details of all changes included in this release.</p>
<h2 id="howtoupgrade">How to Upgrade</h2>
<p>All Ghost(Pro) users are being <strong>automatically updated</strong> and will be running Ghost 0.11.8 shortly. You're welcome :)</p>
<p>For people running Ghost on their own servers, you can <a href="https://ghost.org/developers/">download Ghost 0.11.8</a> and then check out the <a href="http://support.ghost.org/how-to-upgrade">upgrade documentation</a> over on our <a href="http://support.ghost.org">support site</a>.</p>
<p>Enjoy!</p>
<h2 id="credits">Credits</h2>
<p>Kevin Ansfield, Katharina Irrgang and Mickael van der Beek</p>
</div>]]></content:encoded></item><item><title><![CDATA[TWiG: Progress report on Ghost 1.0]]></title><description><![CDATA[<div class="kg-card-markdown"><p>We've been remiss in providing updates here for the last few weeks whilst we've been super busy <a href="https://github.com/TryGhost/Ghost/releases">shipping weekly alpha builds</a> of Ghost 1.0. After some discussions about the format of updates, John &amp; I thought it would be fun to experiment with providing them in the form of</p></div>]]></description><link>https://dev.ghost.org/ghost-1-progress/</link><guid isPermaLink="false">597998972d8ba900246f9061</guid><category><![CDATA[TWiG]]></category><category><![CDATA[Updates]]></category><dc:creator><![CDATA[Hannah Wolfe]]></dc:creator><pubDate>Fri, 17 Mar 2017 12:10:33 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>We've been remiss in providing updates here for the last few weeks whilst we've been super busy <a href="https://github.com/TryGhost/Ghost/releases">shipping weekly alpha builds</a> of Ghost 1.0. After some discussions about the format of updates, John &amp; I thought it would be fun to experiment with providing them in the form of a podcast.</p>
<p>And so here I present you, episode 1 of &quot;This Week in Ghost&quot; - a maybe weekly podcast about what's going on behind the scenes at Ghost HQ...</p>
<iframe width="100%" height="450" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/312824902&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;visual=true"></iframe>
<p>This week: why we're podcasting, a run down of the features we've built for 1.0, preparations for beta testing &amp; what we're doing next.</p>
<p><strong>Disclaimer:</strong> This was a very experimental first episode. There were a couple of issues with audio-levels at the beginning, and some annoying delays in the call which made for a few gaps/interruptions -- but these are details which we will of course iron out over time.</p>
<p>Leave us your questions in a comment below! Or on Twitter. Or... you know.. anywhere else.... We really need to figure this out.</p>
<p><strong>Shownotes:</strong></p>
<ul>
<li><a href="https://nolanlawson.com/2017/03/05/what-it-feels-like-to-be-an-open-source-maintainer/">https://nolanlawson.com/2017/03/05/what-it-feels-like-to-be-an-open-source-maintainer/</a></li>
</ul>
<p>Leave us questions here or on twitter and we'll answer them next time!</p>
</div>]]></content:encoded></item><item><title><![CDATA[Ghost 0.11.7]]></title><description><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.7">Ghost 0.11.7</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>. 0.11.7 contains a fix for a pretty awful custom template bug we shipped in 0.11.6.</p>
<p>We've been working on some gnarly issues with load times &amp; timeouts to make Ghost LTS more stable.</p></div>]]></description><link>https://dev.ghost.org/ghost-0-11-7/</link><guid isPermaLink="false">597998972d8ba900246f9060</guid><category><![CDATA[Releases]]></category><dc:creator><![CDATA[Hannah Wolfe]]></dc:creator><pubDate>Wed, 01 Mar 2017 18:43:59 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.7">Ghost 0.11.7</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>. 0.11.7 contains a fix for a pretty awful custom template bug we shipped in 0.11.6.</p>
<p>We've been working on some gnarly issues with load times &amp; timeouts to make Ghost LTS more stable. A key thing was changing how themes are loaded &amp; ensuring we don't load more information than we need to. Unfortunately, we over did it a bit, and lost information used to render custom theme templates 😱. Sorry about that - it's all back now.</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[Fixed]</strong> Themes ignoring all templates except index.hbs and post.hbs</li>
</ul>
<p>From 0.11.6:</p>
<ul>
<li><strong>[Improved]</strong> Subscriber: sanitize email</li>
<li><strong>[Improved]</strong> Refactored packages, apps and more</li>
<li><strong>[Fixed]</strong> Old accesstokens are not cleaned up</li>
<li><strong>[Fixed]</strong> Fix cors middleware</li>
<li><strong>[Fixed]</strong> Fix incorrect icon on AMP app page</li>
<li><strong>[Fixed]</strong> Ensure config is update when deleting theme</li>
<li><strong>[Fixed]</strong> Fix version check error for minor versions &gt;= 10</li>
</ul>
<p>You can see the <a href="https://gist.github.com/kirrg001/e2b440e47f0cf8ade3b6831ab7ca5386">full change log</a> for the details of all changes included in this release.</p>
<h2 id="howtoupgrade">How to Upgrade</h2>
<p>All Ghost(Pro) users are being <strong>automatically updated</strong> and will be running Ghost 0.11.7 shortly. You're welcome :)</p>
<p>For people running Ghost on their own servers, you can <a href="https://ghost.org/developers/">download Ghost 0.11.7</a> and then check out the <a href="http://support.ghost.org/how-to-upgrade">upgrade documentation</a> over on our <a href="http://support.ghost.org">support site</a>.</p>
<p>Enjoy!</p>
<h2 id="credits">Credits</h2>
<p>Hannah Wolfe &amp; Katharina Irrgang.</p>
<p><small>Special credit to Hannah for the awful bug 😝 &amp; to Kate for helping to get a super fast fixup release out 💨.</small></p>
</div>]]></content:encoded></item><item><title><![CDATA[Ghost 0.11.6]]></title><description><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.6">Ghost 0.11.6</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>.</p>
<p><strong>Warning</strong> 0.11.6 contains a bug with custom theme templates. We strongly advise against upgrading to 0.11.6, please wait for 0.11.7 (coming asap).</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[Improved]</strong> Subscriber: sanitize email</li>
<li><strong>[Improved]</strong> Refactored packages, apps</li></ul></div>]]></description><link>https://dev.ghost.org/ghost-0-11-6/</link><guid isPermaLink="false">597998972d8ba900246f905f</guid><category><![CDATA[Releases]]></category><dc:creator><![CDATA[Katharina Irrgang]]></dc:creator><pubDate>Wed, 01 Mar 2017 15:56:11 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.6">Ghost 0.11.6</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>.</p>
<p><strong>Warning</strong> 0.11.6 contains a bug with custom theme templates. We strongly advise against upgrading to 0.11.6, please wait for 0.11.7 (coming asap).</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[Improved]</strong> Subscriber: sanitize email</li>
<li><strong>[Improved]</strong> Refactored packages, apps and more</li>
<li><strong>[Fixed]</strong> Old accesstokens are not cleaned up</li>
<li><strong>[Fixed]</strong> Fix cors middleware</li>
<li><strong>[Fixed]</strong> Fix incorrect icon on AMP app page</li>
<li><strong>[Fixed]</strong> Ensure config is update when deleting theme</li>
<li><strong>[Fixed]</strong> Fix version check error for minor versions &gt;= 10</li>
</ul>
<p>You can see the <a href="https://gist.github.com/kirrg001/e2b440e47f0cf8ade3b6831ab7ca5386">full change log</a> for the details of all changes included in this release.</p>
<h2 id="howtoupgrade">How to Upgrade</h2>
<p>All Ghost(Pro) users are being <strong>automatically updated</strong> and will be running Ghost 0.11.6 shortly. You're welcome :)</p>
<p>For people running Ghost on their own servers, you can <a href="https://ghost.org/developers/">download Ghost 0.11.6</a> and then check out the <a href="http://support.ghost.org/how-to-upgrade">upgrade documentation</a> over on our <a href="http://support.ghost.org">support site</a>.</p>
<p>Enjoy!</p>
<h2 id="credits">Credits</h2>
<p>Hannah Wolfe, Katharina Irrgang, Peter Jones, Kevin Ansfield and Aileen Nowak</p>
</div>]]></content:encoded></item><item><title><![CDATA[Ghost 0.11.5]]></title><description><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.5">Ghost 0.11.5</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>.</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[Improved]</strong> Session handling has been tweaked meaning a poor net connection or leaving the admin open should no longer result in random logouts</li>
<li><strong>[Fixed]</strong> Timezone config could be accidentally overwritten causing published dates to appear incorrect</li></ul></div>]]></description><link>https://dev.ghost.org/ghost-0-11-5/</link><guid isPermaLink="false">597998972d8ba900246f905e</guid><category><![CDATA[Releases]]></category><dc:creator><![CDATA[Kevin Ansfield]]></dc:creator><pubDate>Wed, 22 Feb 2017 13:24:02 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p><a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.5">Ghost 0.11.5</a> is now available on GitHub, npm and <a href="http://Ghost.org">Ghost.org</a>.</p>
<h2 id="highlights">Highlights</h2>
<ul>
<li><strong>[Improved]</strong> Session handling has been tweaked meaning a poor net connection or leaving the admin open should no longer result in random logouts</li>
<li><strong>[Fixed]</strong> Timezone config could be accidentally overwritten causing published dates to appear incorrect</li>
<li><strong>[Fixed]</strong> Deleting all content now works if you have subscribers that subscribed from a post page</li>
<li><strong>[Fixed]</strong> Subscriber export now contains all subscribers</li>
<li><strong>[Fixed]</strong> Theme files are no longer cached in development mode</li>
</ul>
<p>You can see the <a href="https://gist.github.com/kevinansfield/e60f0b5ec040bbfd1f98e4bad528aa83">full change log</a> for the details of all changes included in this release.</p>
<h2 id="howtoupgrade">How to Upgrade</h2>
<p>All Ghost(Pro) users are being <strong>automatically updated</strong> and will be running Ghost 0.11.5 shortly. You're welcome :)</p>
<p>For people running Ghost on their own servers, you can <a href="https://ghost.org/developers/">download Ghost 0.11.5</a> and then check out the <a href="http://support.ghost.org/how-to-upgrade">upgrade documentation</a> over on our <a href="http://support.ghost.org">support site</a>.</p>
<p>Enjoy!</p>
<h2 id="credits">Credits</h2>
<p>Katharina Irrgang, Kevin Ansfield, Vivek Kannan, janvt , Mateusz Derks, Hannah Wolfe and Aileen Nowak.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Ghost Desktop's JavaScript Underbelly]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Have you checked out <a href="https://ghost.org/downloads/">Ghost Desktop</a> yet? It's our little app for Windows, macOS, and Linux, allowing users to work on their publications without being confined by the limits of a browser. We already implemented a host of native features, and we have even bigger plans for the future.</p>
<p>However,</p></div>]]></description><link>https://dev.ghost.org/ghost-desktop-tour/</link><guid isPermaLink="false">597998972d8ba900246f905d</guid><category><![CDATA[Desktop]]></category><category><![CDATA[Architecture]]></category><category><![CDATA[How we did it]]></category><category><![CDATA[Node]]></category><dc:creator><![CDATA[Felix Rieseberg]]></dc:creator><pubDate>Thu, 02 Feb 2017 17:50:38 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>Have you checked out <a href="https://ghost.org/downloads/">Ghost Desktop</a> yet? It's our little app for Windows, macOS, and Linux, allowing users to work on their publications without being confined by the limits of a browser. We already implemented a host of native features, and we have even bigger plans for the future.</p>
<p>However, the app is still written in JavaScript, using mostly the same guidelines and technologies used by both the Ghost backend and frontend. In this post, I'd like to give you a quick tour of how we're building Ghost Desktop.</p>
<p><img src="https://dev.ghost.org/content/images/2017/01/screenshot.png" alt="Ghost Desktop"></p>
<h3 id="nodejsonthedesktop">Node.js on the Desktop</h3>
<p>Ghost Desktop stands on the shoulders of giants. We use <a href="https://electron.atom.io">Electron</a>, a framework combining Chrome, Node.js, and a thick layer of native integrations with Windows, macOS, and Linux. Initially developed by GitHub for the code editor <a href="https://www.atom.io">Atom</a>, it is now one of the hot newcomers in the JavaScript ecosystem, powering <a href="https://code.visualstudio.com">Visual Studio Code</a>, <a href="https://slack.com/downloads">Slack</a>, or <a href="https://www.whatsapp.com/download/">WhatsApp</a>. It is popular with good reason: Thanks to the strong cross-platform foundation in both Chrome and Node.js, one can easily create an app for all popular platforms.</p>
<p>In addition, Electron apps get to use the collective goodness available on npm, enjoy the latest and greatest in modern JavaScript, and allow for the same convenience in development we JavaScript developers are used to.</p>
<p>Building cross-platform means that we can focus our energy on building one great app rather than dividing our resources to build multiple less polished apps. In addition, we at Ghost 💖 JavaScript: Using Electron means that we can use the same style, the same skills, the same learnings, and the same familiar environment to build our Desktop app we use to build our backend and our frontend. Technically, it's a combination: Ghost Desktop is an Ember App that get's to use Node modules - even native ones, written in C++, useful for difficult operations like spellchecking.</p>
<h3 id="willywonkasappfactory">Willy Wonka's App Factory</h3>
<p>Let's take a look at the source. It starts with a <a href="https://github.com/TryGhost/Ghost-Desktop/blob/master/package.json"><code>package.json</code></a>, just like Node developers are used to. As you can tell from the dependencies, we're using Ember and a handful of Node modules. We even built <a href="https://github.com/felixrieseberg/ember-electron">ember-electron</a>, integrating Ember Cli with Electron.</p>
<p>To understand how it all comes together, let's follow the path of the app booting up. To start the app as a developer, you run <code>npm start</code>, which in turn calls <code>ember electron</code>. Electron starts with a simple file, much like a Node.js application - in our case, that's <a href="https://github.com/TryGhost/Ghost-Desktop/blob/master/main/app.js"><code>main/app.js</code></a>. Note that when Ghost Desktop starts, it initially does not have a visible window - the main process does not have a user interface. In there, we wait for the application to finish its native boot process before creating a new <a href="https://electron.atom.io/docs/api/browser-window/"><code>BrowserWindow</code></a>. Like the name suggests, that window is a Chromium window, with one important caveat: In addition to Chrome's JavaScript features, Node is also in play. The loaded page is not just limited to the usual HTML, CSS, and JS - you can also call <code>require('fs')</code>.</p>
<p>In that <code>BrowserWindow</code>, we fire up an Ember application - it manages the addition of blogs, the quick switcher on the left, and everything else you can see. If you browse the source code, you will even see us requiring Node modules, including native ones.</p>
<p>However, due to the tremendous power available to the code that runs inside the window, we do not simply load your blog. <a href="http://electron.atom.io/docs/api/web-view-tag/">We use a special HTML element called a <code>&lt;WebView /&gt;</code></a> - which is sort of like an <code>Iframe</code> and at home inside the Chromium engine. When you add a blog, we create a new <code>&lt;WebView /&gt;</code>.</p>
<p>Before a blog gets to load, we <a href="https://github.com/TryGhost/Ghost-Desktop/blob/master/main/preload.js">pre-load a series of functions</a>, augmenting the APIs available to the blog. Once we have augmented the global scope, we remove Node privileges inside the <code>&lt;WebView /&gt;</code>. In this moment, Ghost Desktop becomes a slightly more powerful browser, tailored specifically to the needs of the Ghost Admin interface. From there, Ghost Desktop has full control over Ghost Admin, while Ghost Admin is able to call a set collection of APIs made available to it.</p>
<p>We have big plans for the future: A powerful offline mode, allowing to work on posts without an active connection. Native integration with your favorite editors, whether that is Microsoft Word or Sublime. Easier management for those creative souls who manage multiple blogs. If you'd like work on some Open Source code with us, <a href="https://github.org/TryGhost/Ghost-Desktop">join us in our GitHub repository</a>!</p>
</div>]]></content:encoded></item><item><title><![CDATA[2017 is gonna be awesome!]]></title><description><![CDATA[<div class="kg-card-markdown"><p>There's been an unmistakable sense of tumbleweed in the air round here over the past month or so. Fear not, it is a sign of great things to come 👻</p>
<p>Perhaps the biggest representation of that is our new <a href="https://ghost.org/journalism/">Ghost for Journalism</a> program, which we launched today!</p>
<p>Activity on the public</p></div>]]></description><link>https://dev.ghost.org/2017-awesome/</link><guid isPermaLink="false">597998972d8ba900246f905c</guid><category><![CDATA[Meetings]]></category><category><![CDATA[Updates]]></category><dc:creator><![CDATA[Hannah Wolfe]]></dc:creator><pubDate>Fri, 13 Jan 2017 18:21:07 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>There's been an unmistakable sense of tumbleweed in the air round here over the past month or so. Fear not, it is a sign of great things to come 👻</p>
<p>Perhaps the biggest representation of that is our new <a href="https://ghost.org/journalism/">Ghost for Journalism</a> program, which we launched today!</p>
<p>Activity on the public repos is always just a fraction of what's going on @ Ghost HQ. Instead of being split across public &amp; internal work, for the end of 2016, we got the whole team focused on replacing <em>all</em> of the now 3-years-old and out-of-date technology that drove <a href="http://Ghost.org">Ghost.org</a>. The astute amongst you will have noticed even this blog has a shiny new pair of shoes 👠 . The work we've done is far more than skin deep, leaving us with less maintenance work and more time for Ghost itself.</p>
<p>This week, it was business as usual 🎉</p>
<p>In the last week we have created <strong>19</strong> &amp; merged <strong>19</strong> pull requests, plus merged <strong>14</strong> dependency updates, as well as opened <strong>8</strong> and closed <strong>18</strong> issues across <strong>17</strong> different repositories. We've also published an LTS release, <a href="https://dev.ghost.org/ghost-0-11-4/">Ghost 0.11.4</a>. Any thoughts or questions? Let us know in the comments 📢</p>
<h3 id="whatsoccurring">What's occurring?</h3>
<p>The main focus of last week was on cleaning up a few bugs and features ready to ship Ghost 0.11.4 LTS. You can read all about it in the <a href="https://dev.ghost.org/ghost-0-11-4/">release post</a>. LTS releases are currently scheduled for roughly once a month, so we'll look to do the next one around the first week of February.</p>
<p>Next week, we'll be getting back to work on the Ghost 1.0 alpha. There may be some reshuffling of what features are and aren't going to make it and then buckling in on a big push to get it ready for prime time. More news next week 🎶</p>
<h5 id="ghostdesktop120">Ghost Desktop 1.2.0</h5>
<p>Since the New Year, Ghost Desktop has also had an update, with several new features including <a href="https://github.com/TryGhost/Ghost-Desktop/blob/master/docs/deeplinks.md">deep links</a> ✨. Ghost Desktop auto-updates, so most people should already have the new version. If you haven't tried it yet, grab a download for your platform from <a href="https://ghost.org/downloads/">https://ghost.org/downloads/</a>.</p>
<h2 id="releases">Releases</h2>
<ul>
<li>Ghost <a href="https://github.com/TryGhost/Ghost/releases/tag/0.11.4">0.11.4</a></li>
<li>Ghost-Admin <a href="https://github.com/TryGhost/Ghost-Admin/releases/tag/0.11.4">0.11.4</a></li>
<li>Casper <a href="https://github.com/TryGhost/Casper/releases/tag/1.3.5">1.3.5</a></li>
<li>GQL <a href="https://github.com/TryGhost/GQL/releases/tag/0.0.6">0.0.6</a></li>
<li>Ghost-Desktop <a href="https://github.com/TryGhost/Ghost-Desktop/releases/tag/1.2.0">1.2.0</a></li>
</ul>
<h2 id="followus">Follow us!</h2>
<p>Want to find out more about Ghost development? Subscribe to the <a href="https://dev.ghost.org/tag/updates/rss">updates feed</a> or to the <a href="https://dev.ghost.org/tag/alpha/rss">alpha feed</a> if you're more interested in how v1.0 is progressing. Alternatively, follow us on <a href="https://twitter.com/TryGhost_dev">twitter</a> 🐦 or sign up to get our <a data-toggle="modal" data-target="#blogsubscribe">weekly newsletter in your inbox</a> 📬.</p>
</div>]]></content:encoded></item></channel></rss>