def template
@template ||= @eruby.new "<%#encoding:UTF-8%><div#{id} class="listingblock#{role_class}">
#{title_div :caption => true}
<div class="content monospaced"><%
if attr? 'style', 'source', false
language = (language = (attr 'language')) ? %(\#{language} language-\#{language}) : nil
case attr 'source-highlighter'
when 'coderay'
pre_class = ' class="CodeRay"'
code_class = language ? %( class="\#{language}") : nil
when 'highlightjs', 'highlight.js'
pre_class = ' class="highlight"'
code_class = language ? %( class="\#{language}") : nil
when 'prettify'
pre_class = %( class="prettyprint\#{(attr? 'linenums') ? ' linenums' : nil})
pre_class = language ? %(\#{pre_class} \#{language}") : %(\#{pre_class}")
code_class = nil
else
pre_class = ' class="highlight"'
code_class = language ? %( class="\#{language}") : nil
end %>
<pre<%= pre_class %>><code<%= code_class %>><%= template.preserve_endlines(content, self) %></code></pre><%
else %>
<pre><%= template.preserve_endlines(content, self) %></pre><%
end %>
</div>
</div>
"
end