NAME
Angerwhale - filesystem-based blog with integrated cryptography
SYNOPSIS
Angerwhale is bloging software that reads posts from the filesystem, and determines authorship based on the post's PGP digital signature. These posts can be in a variety of formats (text, wiki, HTML, POD), and new formats can be added dynamically at runtime. Posting comments is also supported, and again, authorship is determined by checking the digital signature.
Features include guaranteed valid XHTML 1.1 output, social tagging, categories, syntax highlighting (see http://blog.jrock.us/articles/Syntax%20Highlighting.pod for details), RSS and YAML feeds for every article, comment, tag, and category, nested comments, intelligent caching of everything, space-conserving mini-posts, search-engine (and human!) friendly archiving, a flashy default theme, and lots of other cool stuff.
GETTING STARTED
Trying Angerwhale is pretty simple. Download the tarball from CPAN, and extract it. Then, run
$ perl Makefile.PL
$ make
This will install any necessary dependencies (there are a few). Once that's finished, open up the config file angerwhale.yml
and change the base
to where you want to store blog posts -- the directory must exist or the tests will fail.
After that, run
$ make test
which will run the test suite to make sure Angerwhale works on your system. If all goes well, open up the config file, angerwhale.yml
, and customize the other options to your heart's content. (There are more config options than those listed; for now grep the source for "config" to find them all. You shouldn't need to change the defaults, though; they're reasonable.)
The final step is to run:
$ perl script/angerwhale_server.pl
You'll then be able to connect to http://localhost:3000 and see your blog. Add a file to the base
you set up earlier, and you'll see it rendered as a blog post. Edit it, and watch Angerwhale update the modification time (but preserve the creation time). Sign it, and watch your name show up on the post. Log in (on the login page), and add tags. Create a subdirectory in base
, symlink some posts into it, and watch them show up in a new category. Try posting some comments.
There's tons more you can do, so explore the code or join the IRC channel! Enjoy!
DEPLOYMENT
Angerwhale is a Catalyst application, so if you'd like to run it in a production environment, check out the Catalyst deployment manual. Basically, you can run it as a FastCGI, mod_perl, or plain CGI.
RESOURCES
IRC channel at irc://irc.perl.org/#angerwhale or perhaps irc://irc.perl.org/#catalyst. (The author is "jrockway".)
Wiki and source code browser is at http://trac.jrock.us/blog_software.
The Offical Angerwhale Blog (tm) is at http://blog.jrock.us/categories/Angerwhale. It's updated pretty frequently, and always has some interesting Angerwhale tips. (And of course, it's running Angerwhale.)
TODO
Lots of things TODO. Patches welcome; but ask on IRC before you get started. I'll give you a commit bit so you can work at your leisure.
Image support. Support loading OO.org or RTF documents with embedded images, and then resize them to look nice at web resolution.
ACLs. Based on the logged-in user's key, restrict posting or allow them to post. Allow administrators to delete SPAM posts, etc.
Spam filtering.
More tests. Test coverage is pretty good (85% or so), but 100% is the goal.
More docs. Angerwhale has a lot of nice features, but you'll only know about them if you're me, or you hang out on IRC when I'm implementing them. If you're reading the code and see something you like, send a short snippet of POD to add to the docs! I'll love you forever if you do!
BUGS
Although Angerwhale's not yet feature complete, the code that exists is pretty solid (it's been in use for almost a year).
If you'd like to request a feature or report a bug, either open an RT ticket, or join #angerwhale
on irc.perl.org
. Thanks in advance for your contribution.
AUTHOR
Jonathan Rockway <jrockway AT cpan.org>
CONTRIBUTORS
These people have been nice enough to test Angerwhale and provide patches when something didn't work quite right:
Ash Berlin - http://perlitist.com/
Bogdan Lucaciu - http://blog.wiz.ro/
Thanks!
COPYRIGHT
Copyright (C) 2007 Jonathan Rockway and Contributors
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.