def template
@template ||= @eruby.new <<-EOF
<%#encoding:UTF-8%><%
if !title?
if @style == 'source' && (attr? 'language')
%><programlisting#{common_attrs_erb}#{attribute('language', :language)} linenumbering="<%= (attr? :linenums) ? 'numbered' : 'unnumbered' %>"><%= template.preserve_endlines(content, self) %></programlisting><%
else
%><screen#{common_attrs_erb}><%= template.preserve_endlines(content, self) %></screen><%
end
else
%><formalpara#{common_attrs_erb}>#{title_tag false}
<para><%
if @style == 'source' && (attr? 'language') %>
<programlisting language="<%= attr 'language' %>" linenumbering="<%= (attr? :linenums) ? 'numbered' : 'unnumbered' %>"><%= template.preserve_endlines(content, self) %></programlisting><%
else %>
<screen><%= template.preserve_endlines(content, self) %></screen><%
end %>
</para>
</formalpara><%
end %>
EOF
end