example: overlay chain negative space

Let’s modify the positive chain example a little to show a negative overlay.
We add the overlay_chain_neg.html template that is a negative
overlay on the unmodified overlay_mid.html + base.html
base templates (from previous example). This example also shows how to specify
specific levels in the overlay chain at which to start lookup.

overlay_chain_neg.html

$overlay{overlay_mid.html, space="negative"}
<html>
<head><title>template = ${title}</title></head>
<body>      <span> -ve space (overlay_chain_neg.html) </span>
  $begin{content} overlay_chain_neg ${parametrized} content $end{content}
  $begin{footer}<span>overlay_chain_neg footer</span>$end{footer}
  <div class="header">$evoque{#header}</div>
  <div class="content">$evoque{#content}</div>
  <div class="refootered">
    <div class="own">$evoque{#footer}</div>
    <div class="overlaid">$evoque{##footer}</div>
    <div class="named">$evoque{base.html#footer}</div>
  </div>
</body>
</html>
  • a negative overlay, thus using own negative space
  • redefines #content and #footer
  • evoques all 3 #footer templates in the overlay chain, showing how to:
    • start lookup from self
    • start lookup from “one level below”
    • explicitly evoque a named template

Output

Rendering the overlay:

name = "overlay_chain_neg.html"
domain.get_template(name).evoque(title=name, parametrized="HAPPY")

Will give the following output:

<html>
<head><title>template = overlay_chain_neg.html</title></head>
<body>      <span> -ve space (overlay_chain_neg.html) </span>
  <div class="header"> +ve space: base header </div>
  <div class="content"> overlay_chain_neg HAPPY content </div>
  <div class="refootered">
    <div class="own"><span>overlay_chain_neg footer</span></div>
    <div class="overlaid"><span>overlay_mid footer</span></div>
    <div class="named"> +ve space: base footer </div>
  </div>
</body>
</html>