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>