class Asciidoctor::DocBook45::DocumentTemplate
def docinfo
def docinfo <<-EOF <% if has_header? && !notitle %> <%= template.title_tags(@header.title) %> <% end %> <% if attr? :revdate %> <date><%= attr :revdate %></date> <% else %> <date><%= attr :docdate %></date> <% end %> <% if has_header? %> <% if attr? :author %> <% if (attr :authorcount).to_i < 2 %> <author> #{tag 'firstname', :firstname} #{tag 'othername', :middlename} #{tag 'surname', :lastname} #{tag 'email', :email} </author> #{tag 'authorinitials', :authorinitials} <% else %> <authorgroup> <% (1..((attr :authorcount).to_i)).each do |idx| %> <author> #{tag 'firstname', :"firstname_\#{idx}", true} #{tag 'othername', :"middlename_\#{idx}", true} #{tag 'surname', :"lastname_\#{idx}", true} #{tag 'email', :"email_\#{idx}", true} </author> <% end %> </authorgroup> <% end %> <% end %> <% if (attr? :revnumber) || (attr? :revremark) %> <revhistory> <revision> #{tag 'revnumber', :revnumber} #{tag 'date', :revdate} #{tag 'authorinitials', :authorinitials} #{tag 'revremark', :revremark} </revision> </revhistory> <% end %> = docinfo %> #{tag 'orgname', :orgname} <% 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<% unless attr? :nolang %> lang="<%= attr :lang, 'en' %>"<% end %>> <bookinfo> docinfo} </bookinfo> = content.chomp %> book> else %> rticle<% unless attr? :nolang %> lang="<%= attr :lang, 'en' %>"<% end %>> <articleinfo> docinfo} </articleinfo> = content.chomp %> article> end %> EOF end
def title_tags(str)
def title_tags(str) if str.include?(': ') title, _, subtitle = str.rpartition(': ') %(<title>#{title}</title> <subtitle>#{subtitle}</subtitle>) else %(<title>#{str}</title>) end end