Releases: brokenhandsio/SteamPress
0.11.1
0.11.0
0.10.2
SteamPress 0.10.2
Warning - This will be the last release of SteamPress that supports Vapor 1. After this release only Vapor 2 will be supported.
This release adds the ability to disable various routes. You can disable the routes for authors pages and tags pages (both individual and all) by adding the option in your configuration file. To disable all of the authors pages, in your steampress.json
add:
{
"enableAuthorsPages": false
}
To disable all of the tags pages, set:
{
"enableTagsPages": false
}
Both of these settings can also be configured if manually setting up the Provider:
let steampress = SteamPress.Provider(postsPerPage:5, enableAuthorsPages: true, enableTagsPages: true)
0.10.1
SteamPress 0.10.1
Warning - This will be the last release of SteamPress that supports Vapor 1. After this release only Vapor 2 will be supported.
This release adds support for configuring the Bootstrap version of the Paginator used in SteamPress. By default, the paginator used by SteamPress is expecting to use Bootstrap 4. You can configure it to use Bootstrap 3 by either adding it to the configuration file or the manual initialisation. To add to a config file, in your steampress.json
, add:
{
"postsPerPage": 5,
"blogPath": "blog",
"paginator": {
"useBootstrap4": false
}
}
To manually iniatialise, set up the Provider like so:
let steampress = SteamPress.Provider(postsPerPage: 5, blogPath: "blog", useBootstrap4: false)
0.10.0
SteamPress 0.10.0 - The Author's Grand Renaming
Warning - This will be the last release of SteamPress that supports Vapor 1. After this release only Vapor 2 will be supported.
This should hopefully be the last major breaking change for a while! This release expands the author's profile, adding things like a profile picture, Twitter handle, and a tagline, so it can look like this. It also standardises the naming of parameters in Leaf templates to make them consistent.
Author Profile
The BlogUser
has a number of added optional properties to it. These include in the Node
:
profile_picture
- an HTTP URL to a profile picturetwitter_handle
- the Twitter username of the Author (without the @)biography
- A biography of the authortagline
- A short tagline about the author
The profile.leaf
Posts in now Paginated so you will need to make changes, similar to the tag.leaf
template.
The Grand Renaming
In order to standardise the naming across all of the parameters in the Leaf templates, they have all been converted to snake_case
. Previously they were a mixture of snake_case
and camelCase
but this has now been fixed. This does of course break a lot of parameters in the Leaf files, but it means it will be easier going forward. For details about the names, see the (README)[https://github.com/brokenhandsio/SteamPress/blob/master/README.md].
0.9.0
SteamPress 0.9.0
This release introduces Draft blog posts to SteamPress. Posts can now be saved and published at a later date. Draft posts are viewable to anyone with the link, but they will not appear on the Blog index page or in the pages of tags or authors that they may be linked to. There is also a new parameter, published
on BlogPost
which will be passed into all Contexts.
Breaking Changes
There are a number of breaking changes to the Leaf templates and POST requests to accommodate drafts.
POST Changes
You must send your create/edit forms with either a publish
or save-draft
parameter. If neither of these are supplied with the POST then a 400 error will be returned. An example of how this can be done with two form submit buttons can be seen in the Example Site.
Leaf Changes
On the Admin page index.leaf
template, the posts
parameter has been removed. Published posts will be passed into a published_posts
parameter and draft posts will be passed into a draft_posts
parameter.
Finally, in the createPost.leaf
template, if the post is a draft, a draft
parameter will be passed in.
Database Changes
Thankfully I have finally done migrations properly and this release will not require any database changes, despite it breaking the scheme for BlogPost
. There is a BlogPostDraft
preparation that will do the migration for you, so you shouldn't lose any data*.
(* Obviously you should always back up your data as things can go wrong!)
0.8.0
SteamPress 0.8.0
This release improves Open Graph support and adds more endpoints to help users and SEO.
New Endpoints
There are new endpoints for all tags and all authors that require two new Leaf templates in the blog
directory:
tags.leaf
- A page for all of the tags on the blogauthors.leaf
- A page for all of the authors on the blog
Full details about the parameters for these templates can be found on the README.
New Open Graph Image support
The post_description
parameter that is passed to the blogpost.leaf template now also uses SwiftSoup for better HTML parsing.
New Contexts
The BlogUser
and BlogTag
both now have a new Context
enum - BlogUserContext
and BlogTagContext
, with a withPostCount
option - this will provide the number of posts for that user or tag as a post_count
parameter on the Node
.
New Parameters
The Blog index page now gets passed an array of authors
containing all of the BlogUser
s on the blog.
Breaking Changes
Other than the new endpoints outlined above, there should be no other breaking changes (and no databases breaking changes).
0.7.0
SteamPress 0.7.0
This release enables support for Social Media with Open Graph and Twitter cards as well as a number of bug fixes.
New Features
- All the public pages will get a
site_twitter_handle
passed to them as a parameter if atwitter
configuration option is set with asiteHandle
property - though this can easily be hardcoded in if you prefer - All public pages are passed the full URL of that page as a
uri
paramater, except the blog post page which is different (see below) - The
BlogPostContext.all
context now has two additional parameters,created_date_iso8601
andlast_edited_date_iso8601
(if the post has been edited). These contain the dates in ISO8601 (shock horror) which is what Open Graph and Twitter require. - The
BlogTag.makeNode()
function now has a new parameter (when not called with aDatabaseContext
) -url_encoded_name
- this is for adding to web links in case the tags contain any URL reserved characters. Note there is a bug in Vapor #899 that is blocking this functionality - The Blog Post page now has a number of additional parameters to help with sharing on social media etc and to support Open Graph fully. These are:
post_uri
- the URL of the blog postpost_uri_encoded
- the URL encoded link to the post - useful for adding to sharing links in a querysite_uri
- The URL of the root site - useful for creating links to the author's page for Open Graphpost_description
- Useful for SEO and snippets for sharing, as well as required for Open Graph. This is the short snippet with all the HTML stripped outsite_twitter_handle
- see above
Bugs fixed
- The page for a tag now just shows the posts under that tag...as opposed to every post on the blog! I've even made it so they are in the right order now - which helps!
Breaking Changes
There should be no breaking changes as part of this release.
0.6.1
SteamPress 0.6.1
This release uses the BCrypt.digest()
function to generate password digest instead of the old hash()
function to remove deprecation warnings. The BlogUser
initialiser that takes the BlogUserCredentials
can now throw but this is all handled within SteamPress so there should be no outward facing changes since 0.6.1.
There are no other changes in this release.
0.6.0
SteamPress 0.6.0
This release improves the way tags are handled when creating and editing blog posts. Enabling you to do things like this:
New Features
A new API has been added at /<blog-path>/api/tags
that will return all of the tags in JSON form the have currently been added.
Breaking Changes
This release contains breaking changes when dealing with tags. For the createPost.leaf
template, the tagsSupplied
parameter is now an array of BlogTag
s instead of a space-separated string. This allows for tags to have spaces in the name.
The POST
handlers for creating and editing posts now expect the inputTags
fields to come from a select
element instead of a input
element. This is to help support the likes of Select2 and allow for tags with spaces and other punctuation in.