$blog_dir is going to be used in multiple places, so initialize it once
now that the sub-apps are given the main app config, they can't be cached globally
the blog will live under /pulse/
URL ending in / are also considered to be HTML content
show chains with 2 or more links
people with the same number of links in their chains have the same rank
the board handler
use NEILB's Text::Markdown::PerlExtensions for processing markdown
generated pages are in text/html
rename CPANio::App::Blog to the more generic CPANio::App::Document
leave it to some other handler instead of giving up for everyone
automatically load, configure and cache a sub-application handler
rename doc_dir to docs_dir

basically modeling the name on Apache's `htdocs`
the Board handler requires a schema
the only "other" handler is the board handler
redispatch the directory index to index.html
there's nothing special about the 'pulse' directory
steal NEILB's stylesheet for cpan.io
a basic layout for every .html page
no special header colors