Release v0.045


A couple small changes in this release:

Blog posts are now allowed to have images inside the post directory. This makes it a lot easier to add images to blogs. You don't need to configure a global /images directory. You can put your image in /blog/YYYY/MM/DD/post-title. Even better, you get to refer to it in your post as ![](image.jpg).

The link check plugin now correctly finds links the URL encoded characters.

The recent posts helper now allows filtering by tag, if, for example, you want to display only the last release blog and not any other blog post.

statocles daemon now allows setting -p <port>, in case port 3000 is in-use, or you need to run multiple instances.

Full changelog below:

Continue reading Release v0.045...

Release v0.044


A few small features, and some small breaking changes in this release.

The read_document and write_document method of Statocles::Store::File now use Statocles::Document instead of plain hashrefs. It was weird to have one method (read_documents with an s) get document objects, and everything else use hashes. The important serialization/deserialization routines are in Statocles::Document, so it is likely that more changes will happen around these APIs in the future.

Because of the above change, Stores now have a way to read a document from a string. So, when a blog post is read from <STDIN>, it can contain tags, links, and other fields, instead of just content.

Some fixes to blog slugs to remove any non-word characters, and also reduce every replacement to a single dash (-), instead of having multiple dashes. This only affects new posts, not existing posts, so if you want to fix your current posts, you must fix them manually.

An upgrade to Beam::Wire now allows you to compose roles in the Statocles configuration file, so additional behavior can be added to existing applications. See the Develop Guide for more information.

Finally, the Blog app now has a recent_posts() method that can be used in templates and markdown to display the most recent posts in a blog.

Full changelog is below.

Continue reading Release v0.044...

Release v0.043


A couple interesting changes this week!

There was a case where two apps could produce pages with the same path. Now, this produces a warning, and there's an attempt to do the right thing by making pages generated by apps more important than files simply being copied.

The url_root attribute was moved to the Statocles::App class, so that all apps have it. This will prevent an app forgetting to add it. In order to make this work, some new methods were added to the Statocles::App class to build URLs and links with the right URL root.

It's now a lot easier to use a default Theme and still get some minor customizations by specifying one or more include directories. See the Statocles Theme guide for more information.

A single Git repository can now have any number of site deploys inside. Just make sure the path is somewhere in the Git repository's working tree.

With Moo 2 coming out, Moo::Lax is not needed, so we've changed our dependency to Moo 2.

Full changelog below:

Continue reading Release v0.043...

Release v0.042


A slow week, but some needed features:

The LinkCheck plugin now supports an ignore attribute, in case there are links that aren't managed by Statocles (like having Github project links in a Github user/organization site).

A new before_build_write event was added to the Site object, so that plugins can edit pages after the App creates them, and even add pages to the site.

The Site object now has full control over the Markdown object that turns Markdown into HTML, which lets you use the other attributes of Text::Markdown, or even use Text::MultiMarkdown or any object that exposes a markdown method.

Full changelog below:

Continue reading Release v0.042...

Release v0.041


A slight breaking change in this release: The "last modified" date is no longer being used in the blog. Instead, the date shown is only the slug date, which makes the date more accurate when pre-dating posts.

The last_modified attribute is now simply called date, which makes it a bit more general-purpose. This means that you'll need to re-bundle your templates.

A change to Beam::Wire means a change to Statocles config files: $method in the event handlers is now $sub, so if you have configured the LinkCheck plugin, you'll get a deprecation warning from Beam::Wire.

The site creator now allows you to set the base_url, since that's required for Statocles to work properly. It also, if given a site as an argument, creates the site's directory.

Full changelog below:

Continue reading Release v0.041...