hakyllbars: advanced templates for hakyll

Control flow

Conditionals

Conditionals in hakyllbars are expressed using the if helper function. Any expression may be used as a condition, and if it is truthy the associated block will be shown.

{{#if published}}
  <p>Post published on {{published | dateAs shortDate}}.</p>
{{#end}}

Conditionals may also specify a default block:

{{#if published}}
  <p>Post published on {{published | dateAs shortDate}}.</p>
{{#else}}
  <p>Post is in draft.</p>
{{#end}}

Conditions may also be chained one after another:

{{#if updated}}
  <p>Post updated on {{updated | dateAs shortDate}}.</p>
{{#else if published}}
  <p>Post published on {{published | dateAs shortDate}}.</p>
{{#else}}
  <p>Post is in draft.</p>
{{#end}}

Loops

Loops will use a list to display a block N times. If the list expression is empty or undefined, then no block is displayed. The context scope within the block is relative to the current item in the list.

<ul>
  {{#for post}}
    <li>{{title}} - {{published | dateAs shortDate}}</li>
  {{#end}}
</ul>

A default block may be used if the list is empty:

<ul>
  {{#for post}}
    <li>{{title}} - {{published | dateAs shortDate}}</li>
  {{#else}}
    <li>No posts published</li>
  {{#end}}
</ul>