Release v0.046


A few new features and a bunch of bugfixes in this release.

Page objects now have a generic "data" attribute. This allows adding miscellaneous extra information to the Page, which is then available to the template.

Using this, the Perldoc app now has a crumbtrail and a link to the module source, and the blog app can now have introductory text for the tags that show up on the tag page.

There were some changes to the default theme to make extending it a bit easier.

  • The navbar has a default background color, so putting a background color on body is less surprising.
  • The grid columns are centered in their margin, so adding a background color to the columns looks better.

Finally, a document is now allowed to override its template and layout. The document page uses the document template to override the template provided by the app.

Because of this, we can now allow extra pages in blog posts. Just put the extra page inside the blog post's directory.

Full changelog below...

Continue reading Release v0.046...

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...