Release v0.055
We're in the run up to v1.0, the first stable release. As a result, there were quite a few deprecations in this release, and a lot of new features.
Breaking Changes
The Perldoc app now creates folders instead of files for the POD. This means the link to
My::Module
will now be/My/Module
and not/My/Module.html
.This is being done outside a deprecation policy in the hope that nobody's started using the app extensively enough to be hurt. Having both sets of pages (.html and non-.html) was deemed too much for a non-stable release. If something like this happens after v1.0, we will build both sets of pages (with a switch to turn off the old set).
Deprecations
The Static app and Plain app are both deprecated in favor of the new Basic app. The Basic app has all the functionality of both the Static and Plain apps.
Using either the Static or Plain apps will give a warning. To fix this warning, change the app's
class
toStatocles::App::Basic
. See Statocles::Help::Upgrading for details.The File store is now just Statocles::Store. Likely this requires no changes in your config, unless you've referenced
Statocles::Store::File
directly (just change it toStatocles::Store
to silence the deprecation warnings).The Store write_document method used to return the full path to the document written. This was confusing, as one generally does not expect a write method to return anything (unless it's a true/false value for success/failure). As of right now, you can get the document path by calling the
child()
method of the Store's path attribute.
New Features
There is a new Basic app. This application supports Markdown files and collateral images and files. It is the basic functionality of all Statocles apps.
The default themes now support Disqus. Disqus allows adding comments even to otherwise static websites. Until the Dynamocles project allows for a dynamic partner to Statocles sites, Disqus is an easy way to provide some user engagement.
If you want extra frontmatter document metadata, you can now create your own Statocles::Document sub-classes, and refer to them in your frontmatter using
class: 'My::Document'
.This enables you to add custom attributes and other such to your documents. It could also allow for non-Markdown documents, and other interesting things in the future.
The site creator command (
statocles create
) now creates a fully-ready site with skeleton content. The configuration file it creates now comes with comments to make it easier to edit.Plugins can now be added to individual applications, because every app now comes with a
build
event. If you only want to check links on a single application, or if you want to modify the application's pages without writing an entire app subclass, this is a good way to do it.When writing pre-dated entries, to be posted sometime in the future, there is now a way to test how the site will look in the future when that post is deployed.
Using the
--date
option tostatocles build
,statocles daemon
, andstatocles deploy
will render the site as though it was the given date. See thestatocles help
command for more information.
Full changelog below...
- fix cleanup warning during global destruction
- add disqus setup notes to Config guide (#109)
- replace the Static app with the Basic app (#380)
- rename the Plain app to the Basic app (#380)
- refactor Blog app to use Store app role (#343)
- allow writing most page attributes
- skip hidden files and directories in the Plain app
- add static content to Plain app (#343)
- fix doc links to show module being linked to
- add custom markdown object example to config guide (#389)
- add disqus blocks to the default themes (#109)
- add store role for applications that use stores (#343)
- use run_editor helper in blog and plain apps (#212)
- add run_editor utility to invoke the user's editor (#212)
- fix new-post directory getting left behind in blog (#295)
- test that the interactive editor is invoked
- add class frontmatter for custom document classes (#48)
- add error if repository has no commits (#386)
- move daemon build inside the mojo app
- add --date option to build, daemon, and deploy (#246)
- fix daemon shutdown and cleanup to remove cycles
- add default site title to silence warnings
- add --message option to the deploy command (#34)
- allow plain hashrefs in test app
- add test for git deploy message option (#34)
- fix tag links in blog feeds into full urls (#385)
- clean up test to remove warnings from log
- add --clean option to statocles deploy command (#71)
- add clean option to file and git deploys (#71)
- remove ".html" from Perldoc documentation pages (#367)
- clarify index path missing to show possible remedy (#363)
- move all deprecation tests into one place
- deprecate write_document method return value (#382)
- skip deprecated module in compile test
- remove docs implying deploys inherit from stores (#383)
- move Statocles::Store::File to Statocles::Store (#381)
- only set version during test if no version exists
- fix emitter base bundle not applying
- add edit command to plain app (#338)
- add date option to build blog pages from the future (#246)
- add better error message when app has no commands (#379)
- add remove method to Store (#196)
- generate the site config from the template (#324)
- add comments to the site creator config file (#324)
- change title to text in site creator link
- add note about how to use default themes
- add skeleton site content during site creation (#362)
- add $app and $site to all templates
- expand document documentation to add examples (#368)
- fix a bunch of misspellings in the documentation
- remove duplicate test app (#319)
- add build event to apps for plugins to edit pages (#276)