class Asciidoctor::DocBook45::DocumentTemplate

def docinfo

def docinfo
  <<-EOF
  <% if has_header? && !notitle %>
  #{tag 'title', '@header.name'}
  <% end %>
  <% if attr? :revdate %>
  <date><%= attr :revdate %></date>
  <% else %>
  <date><%= attr :docdate %></date>
  <% end %>
  <% if has_header? %>
  <% if attr? :author %>
  <author>
    #{tag 'firstname', :firstname}
    #{tag 'othername', :middlename}
    #{tag 'surname', :lastname}
    #{tag 'email', :email}
  </author>
  #{tag 'authorinitials', :authorinitials}
  <% end %>
  <% if (attr? :revnumber) || (attr? :revremark) %>
  <revhistory>
    #{tag 'revision', :revnumber}
    #{tag 'date', :revdate}
    #{tag 'authorinitials', :authorinitials}
    #{tag 'revremark', :revremark}
  </revhistory>
  <% end %>
  <% end %>
  EOF
end

def template

def template
  @template ||= @eruby.new <<-EOF
#encoding:UTF-8%><?xml version="1.0" encoding="UTF-8"?>
DOCTYPE <%= doctype %> PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 if attr? :toc %><?asciidoc-toc?><% end %>
 if attr? :numbered %><?asciidoc-numbered?><% end %>
 if doctype == 'book' %>
ook lang="en">
<bookinfo>
docinfo}
</bookinfo>
= content %>
book>
 else %>
rticle lang="en">
<articleinfo>
docinfo}
</articleinfo>
= content %>
article>
 end %>
  EOF
end