Bootylicious is a minimalistic blogging application built on top of Mojolicious::Lite. It is easily extendable with plugins, templates and themes.
* filesystem-based storage
* comments
* tags
* RSS (articles, comments and by tag)
* static pages
* drafts
* archive
* pingbacks
* themes
* multi-parser support (POD, Markdown)
* plugins
* Unicode support
* search
* lightweight
* clean code
* runs everywhere
$ git clone http://github.com/vti/bootylicious.git
$ cd bootylicious
$ perl bootylicious daemon
Server available at http://*:3000.
Copy bootylicious.conf.template
to bootylicious.conf
and change it to fit your needs.
Articles by default go into articles
directory.
Article consists of file information and content with meta data.
20101017-article.pod
or
20101017T14:02:00-article.pod
Where timestamp tells us when the article was created. Modified time is retrieved automatically from mtime
. Filename is the article's permalink url. Extension is article's format.
Title: My first article
Tags: blog, internet
Welcome!
[cut] Read more
This is my first article. It is in C<pod> format. And I can use all kind of
B<tags>.
Every article should have metadata. Metadata ends with an empty line. If there is a [cut]
tag, article will be splitted into preview
and content
parts. preview
is shown when a) article list is requested, b) rss.
Depending on file format (file extention, remember?) the content is parsed with an appropriate parser. POD format is available by default. Markdown format is available when Text::Markdown is installed. Other formats are available as plugins.
Comments can be disabled everywhere by setting comments_enabled
to false
in configuration file:
{
...
"comments_enabled" : false,
...
}
Or comments can be disabled on per article:
Title: Article with no comments allowed
Comments: false
This is an article...
Pingbacks as described on http://www.hixie.ch/specs/pingback/pingback.
ETag header settings and checks.
All urls that don't have .html
in their paths are redirected to .html
.
Google Analytics JavaScript code.
Basic search.
Bootylicious depends on Mojolicious only.