HTTPS clone URL
Subversion checkout URL
A Perl 5 port of WhiteNoise, a static website generator (abandoned.)
Fetching latest commit…
Cannot retrieve the latest commit at this time
|Failed to load latest commit information.|
GreyNoise » WhiteNoise for Perl 5. ================================== == What is it? == An implementation of the WhiteNoise static website generation system, but in Perl 5 instead of Perl 6. For templates, I'm using my own fork of Template::TAL, which is included in the source tree (although I'll probably give it its own home, and see about submitting the new version to CPAN, but that can wait for another day.) == Why Perl 5? == Because the only "usable" implementation of Perl 6 is way too slow and buggy. It took about ten minutes to build a few static pages, and then crashed before writing the indexes. Screw that. == Why Template::TAL instead of Petal? == I've used Petal in the past, and in fact based my Perl 6 template library (Flower) on it. However, Petal has some strange limitations, such as only being able to load templates from disk, and having an incompatible version of the repeat object. I found Template::TAL which is a different implementation of TAL and METAL in Perl 5, and the code-base makes more sense to me. It's extremely easy to extend and add plugins for. Actually, there are parts of it that are so cool, that I am planning on making Flower work more like it. I really like how "languages" are handled, that is just awesome. The ability to add new XML namespace handlers, as well as TALES modifiers in a plugin library is bloody perfect! == Why fork Template::TAL? == I wanted to add some core functionality, and Template::TAL hasn't been actively developed since 2007. So, my fork was born. If the original authors of Template::TAL are interested in my changes, feel free to merge them back. If on the other hand they hate the changes, I'll rename my fork to something else. == What is DateTime::Parse::Perl6? == It's exactly what it sounds like, it's a parser for DateTime objects, that parses Perl 6 DateTime strings (which is an ISO8601 style string) and also formats them as Perl 6 would. It's derived from the DateTime::Format::RFC3339 library, but modified to work with Perl 6 strings specifically. Eventually, it'll probably make its way into its own repository, and onto CPAN. == What other dependencies are there? == * Perl 5.10 or higher. * File::Find::Rule * Slurp * DateTime * JSON == 2.0 or higher (JSON::XS is also highly recommended.) * XML::LibXML * UNIVERSAL::require * version * Test::XML All of which are easily obtainable from CPAN. I recommend cpanm as a client, you can install it using: curl -L http://cpanmin.us | perl - --sudo App::cpanminus == What's next? == Not a clue. Add more functionality? The long term future is a return to WhiteNoise in Perl 6, and eventually, a return to Webtoo Websight 6. However, I don't see that happening in the near future. When I do return, I'm overhauling Flower to be more like Template::TAL, and extending Exemel to support an optional DOM-like interface similar to the one used by XML::LibXML. The day the current version of 'whitenoise' runs even half the speed of 'greynoise', and doesn't crash, is the day I'll return to my Perl 6 projects.