<p>
In today's show Chess talks to us about a static html generator written in perl called templer
</p>
<ul>
<li><a href="https://github.com/skx/templer">https://github.com/skx/templer</a></li>
<li><a href="https://www.steve.org.uk/">https://www.steve.org.uk/</a></li>
</ul>
<h2>Templer</h2>

<p>Templer is yet another static site generator, written in Perl.</p>

<p>It makes use of the <a href="https://search.cpan.org/perldoc?HTML%3A%3ATemplate">HTML::Template</a> module for performing variable expansion within pages and layouts, along with looping and conditional-statement handling.</p>

<p>Templer has evolved over time for my own personal use, but I believe
it is sufficiently generic it could be useful to others.</p>

<p>My motivation for putting it together came from the desire to change
several hand-made, HTML-coded, sites to something more maintainable such
that I could easily change the layout in one place.</p>

<p>The design evolved over time but the key reason for keeping it around
is that it differs from many other simple static-generators in several
ways:</p>

<ul>
<li>You may define global variables for use in your pages/layouts.</li>
<li>A page may define and use page-specific variables.</li>
<li>You may change the layout on a per-page basis if you so wish.

<ul>
<li>This was something that is missing from a lot of competing tools.</li>
</ul>
</li>
<li>Conditional variable expansion is supported, via <code>HTML::Template</code>.</li>
<li>File contents, shell commands, and file-globs may be used in the templates

<ul>
<li>This allows the trivial creation of galleries, for example.</li>
<li>These are implemented via plugins.</li>
</ul>
</li>
<li>You may also embed perl code in your pages.</li>
</ul><p>Another key point is that the layouts allow for more than a single
simple "content" block to be placed into them - you can add arbitrary
numbers of optional side-menus, for example.</p>

<p>Although this tool was written and used with the intent you'd write your
site-content in HTML you can write your input pages in Textile or Markdown
if you prefer (these inputs are supported via plugins).</p>