Positron is a family of templating systems for Perl 5. Unlike usual templating systems, these do not operate on text, but rather on a tree of HTML elements, or data structures in memory.

Still a work in progress, but the data template part is considered finished.

Latest version: 0.1.3



Positron version 0.1.3 released


Version 0.1.3 of Positron has been released. Adds a lot of new features, but still just for array reference DOM representation. Also, I like Test Driven Development.

Positron bugfix version 0.1.1


A bug-fixing version 0.1.1 of Positron has been released. The only fix was in the automated tests, specifically some Storable files I had created to be passed along.

Positron version 0.0.7 released


Version 0.0.7 of Positron has been released! Now with our own regular expression based expression engine, and both hardening and softening!

Positron version 0.1.0 released


Version 0.1.0 of Positron has been released. This is the first version with actual support for DOM Templating via the Positron::Template module. Not much documentation yet.

Positron version 0.0.8 released


Version 0.0.8 of Positron has been released! The switch construct of Positron::DataTemplate now uses the "|"-sigil, not the "?" one. This sigil is now used for "conditional keys", a shortcut to turn a part of a hash on or off.

Goodbye, Parse::RecDescent


The grammar for Positron::Expression is parsed by the Parse::RecDescent module. While a great multi-purpose parser, the module has some limitations which are gradually overshadowing the benefits. I'm in the process of replacing it with a home-grown parser based on regular expressions.

Positron version 0.0.5 released


Version 0.0.5 of Positron has been released. This release adds the missing constructs: an assignment operator "=" and the escaping "~".

Positron version 0.0.4 released


Version 0.0.4 of Positron has been released. This release adds the special environment variable '_' to represent the entire data of an environment, and wrapping.

Wrapping in Positron templates


I'm adding template wrapping functionality to the Positron templates, where an outer template passes a part of itself to an inner template. I need to decide whether this part is already evaluated before passing it down, or if it gets evaluated inside the inner template, and it's environment.

Implementation questions about "_" in Positron


I'm currently planning to include the "_" in Positron, to reference the variable being looped over, or the complete environment data. Questions remain about where to implement this.