The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Statocles::App::Blog - A blog application

VERSION

version 0.048

DESCRIPTION

This is a simple blog application for Statocles.

FEATURES

  • Content dividers. By dividing your main content with "---", you create sections. Only the first section will show up on the index page or in RSS feeds.

  • RSS and Atom syndication feeds.

  • Tags to organize blog posts. Tags have their own custom feeds so users can subscribe to only those posts they care about.

  • Crosspost links to redirect users to a syndicated blog. Useful when you participate in many blogs and want to drive traffic to them.

  • Post-dated blog posts to appear automatically when the date is passed. If a blog post is set in the future, it will not be added to the site when running build or deploy.

    In order to ensure that post-dated blogs get added, you may want to run deploy in a nightly cron job.

ATTRIBUTES

store

The store to read for documents.

tag_text

A hash of tag and descriptions to introduce tags. Having a description is optional.

page_size

The number of posts to put in a page (the main page and the tag pages). Defaults to 5.

index_tags

Filter the tags shown in the index page. An array of tags prefixed with either a + or a -. By prefixing the tag with a "-", it will be removed from the index, unless a later tag prefixed with a "+" also matches.

By default, all tags are shown on the index page.

So, given a document with tags "foo", and "bar":

    index_tags => [ ];                  # document will be included
    index_tags => [ '-foo' ];           # document will not be included
    index_tags => [ '-foo', '+bar' ];   # document will be included

METHODS

command( app_name, args )

Run a command on this app. The app name is used to build the help, so users get exactly what they need to run.

make_slug( $title )

Given a post title, remove special characters to create a slug.

post_pages()

Get the individual post Statocles::Page objects.

post_files()

Get all the post collateral files.

index()

Get the index page (a list page) for this application. This includes all the relevant feed pages.

tag_pages()

Get pages for the tags in the blog post documents.

pages()

Get all the pages for this application.

tags()

Get a set of link objects suitable for creating a list of tag links. The common attributes are:

    text => 'The tag text'
    href => 'The URL to the tag page'

recent_posts( $count, %filter )

Get the last $count recent posts for this blog. Useful for templates and site index pages.

%filter is an optional set of filters to apply to only show recent posts matching the given criteria. The following filters are available:

    tags        -> (string) Only show posts with the given tag

page_url( page )

Return the absolute URL to this page, removing the "/index.html" if necessary.

THEME

blog => index

The index page template. Gets the following template variables:

site

The Statocles::Site object.

pages

An array reference containing all the blog post pages. Each page is a hash reference with the following keys:

content

The post content

title

The post title

author

The post author

blog => post

The main post page template. Gets the following template variables:

site

The Statocles::Site object

content

The post content

title

The post title

author

The post author

SEE ALSO

Statocles::App

AUTHOR

Doug Bell <preaction@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Doug Bell.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.