pm-website, a commandline tool for maintaining a perl monger website at pm.org.
pm-website handles rendering the index page and updating it via WebDAV.
Monger groups get free hosting at $group.pm.org, but only static content is allowed and it can only be edited via WebDAV. I use
pm-website to maintain the Los Angeles Perl Mongers website.
WebDAV is not complicated, but it can be a pain. Once I decided to automate the WebDAV upload, it was a quick hop, skip and a jump to automating the whole process of updating the front page with information about the next meeting and updating the list of past meetings.
A single yaml configuration file maintains configuration and data for the meetings, presenters and locations. Updating for a new meeting is a simple matter of adding an entry in the meetings array with the date, location and information about the presentations and presenters.
pm-website build renders the page and
pm-website install pushes it via WebDAV.
Get started by creating a stub configuration file with
pm-website init. Check out the la.pm.org source repository on github for more inspiration.
Technical details:App::PM::Website uses App::Cmd and is easily extensible by writing new commands in the App::PM::Website::Command::* namespace. HTTP::DAV provides WebDAV transport and Net::Netrc handles reading credentials from a standard .netrc file. Template::Toolkit is used for rendering the index template. App::PM::Website is a Dist::Zilla based distribution.
Check out the app-pm-website source at github.