A Perl 5 port of WhiteNoise, a static website generator (abandoned.)
Switch branches/tags
Nothing to show
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.