Skip to content
Template engine abstraction layer for web applications.
  1. Other 100.0%
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.



A simple abstraction layer, providing a consistent API for different template engines. This is designed for use in higher level web frameworks such as Web::App::Ballet and Web::App::MVC.

Supported Template Engines

  • Template6

    An engine inspired by Template Toolkit. Has many features. Wrapper is Web::Template::Template6

  • Template::Mojo

    A template engine inspired by Perl 5's Mojo::Template. Wrapper is Web::Template::Mojo

  • HTML::Template

    A template engine inspired by Perl 5's HTML::Template. Wrapper is Web::Template::HTML

Broken Template Engines

  • Flower::TAL

    An implementation of the TAL/METAL XML-based template languages from Zope. Wrapper is Web::Template::TAL

    I will get this fixed up when I can and re-add it to the list of supported template engines.


All of the wrapper classes provide common API methods, so as long as your web framework or application supports the following API, it doesn't have to worry about the APIs of the individual template engines themselves.

set-path ($path, ...)

Set the directory or directories to find the template files in. For engines without native support of multiple search paths, or even file-based templates to begin with, the wrapper classes add such support.

render ($template, ...)

Takes the template name to render, and passes any additional parameters through to the template engine. Most template engines use named parameters, but some like Mojo, use positional parameters. This handles both.


use Web::Template::TAL;
my $engine =;
$engine.render('example.xml', :name<Bob>);

See one of the web application frameworks using this for better examples.


  • Add a test suite with all supported template engines covered.
  • Add support for the Plosurin template engine.


Timothy Totten -- supernovus on #perl6


Artistic License 2.0

You can’t perform that action at this time.