blio.pl - script to run Blio
~/your_blog$ blio.pl --source_dir src --output_dir htdocs --template_dir templates
Blio is a very simple blogging "engine". I call it an '"engine"' because Blio is basically a slightly enhanced and streamlined (for my use cases, at least) ttree, or yet another pre-clone of jekyll.
In other words, it takes a bunch of plain text files containing some simple headers and some content, runs them through some templates, and writes out some html files for static serving. Blio also does some other things (most notably image handling, powered by Imager).
Blio needs three directories: src, out and templates.
templates contains the
Template::Toolkit templates used to render the HTML, src contains all your raw content and
out containes the rendered HTML content ready for serving by your favourite web server.
But there a few formal restrictions you need to observer so
Blio can work:
|-- out |-- templates `-- src |-- iceland | |-- geysir.txt | |-- geysir_images | | |-- geysir_1.jpg | | `-- geysir_2.jpg | |-- gullfoss.txt | |-- gullfoss.jpg | `-- no_image.txt `-- iceland.txt
Each Node is a simple plain-text UTF8 encoded file consisting of an HTTP-like header, a blank line and the content.
The title of this blog post. Required
The publication date of this post. Has to be parsable by
DateTime::Format::ISO8601. If this field is not set in the file, the mtime of the file will be used.
The language of this post.
The converter to use. See CONFIGURATION.
If set to a true value, an RSS feed will be generated containing the children of this node.
The name of the author of this post
A comma seperated list of tags. See also the Global Config
Set to a value > 0 to have the children of this node paged.
Enable inline images
The content can be generated the common formatting languages supported by
Markup::Unified, or HTML
# file: iceland/geysir.txt title: Geysir converter: textile thumbnail: 400 Lots of water h4. Food There's a small tourist info where you can get soup.
Blio can be configured via a combination of command line options and a config file.
See MooseX::Getopt and MooseX::SimpleConfig for the implementation details.
Global Config can be specified via command line option or the global config file.
Path to the configfile. Default 'blio.ini'. The configfile has to be parsable by MooseX::SimpleConfig.
The directory containing the plain text source files. Here is where you generate and edit content. Default 'src'.
The directory where the rendered HTML files are stored. This directory should be the document root of your webserver. Default 'out'.
The directory containing the templates used to render your content. Default 'template'.
Please note that some very simple (and very ugly) default templates are provided by Blio. These are installed via File::ShareDir.
The name of your blog.
The URL of your blog (needed to generate a proper RSS feed)
Your name (needed to generate a proper RSS feed)
Set to a true value if you want to use tags in your Blog. If you do, all tags will be collected and added to a vitual top node called 'tags.html'.
Set to a true value if you want to use the scheduling feature. If active, all node with a date in the future will not be rendered.
Force a complete regeneration of the site. Currently, this mostly means that all images will be again converted to thumbnails.
Do not producde regular output
Per-Node config can be specified per node, or falls back to a global value speciefied via command line option or in the config file.
The default language of your content. You can set other languages per node.
The default text2html converter. You can choose other converters per node. Currently valid converters are:
bbcode. If you choose
html, the content is not converted at all (because we assume it's already HTML). All other converters are handled via
The width (in pixel) of thumbnails that are generated by Blio / Imager.
Thomas Klausner <firstname.lastname@example.org>
This software is copyright (c) 2013 by Thomas Klausner.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.