- if has_header?
  - unless notitle
    h1 =header.title
  - if [:author, :revnumber, :revdate, :revremark].any? {|a| attr? a }
    .details
      - if attr? :author
        span.author#author =(attr :author)
        br
        - if attr? :email
          span.email#email =sub_macros(attr :email)
          br
        - if (authorcount = (attr :authorcount).to_i) > 1
          - (2..authorcount).each do |idx|
            span.author id="author#{idx}" =(attr "author_#{idx}")
            br
            - if attr? "email_#{idx}"
              span.email id="email#{idx}" =sub_macros(attr "email_#{idx}")
      - if attr? :revnumber
        span#revnumber #{((attr 'version-label') || '').downcase} #{attr :revnumber}#{',' if attr? :revdate}
        '
      - if attr? :revdate
        time#revdate datetime=revdate_iso =(attr :revdate)
      - if attr? :revremark
        br
        span#revremark =(attr :revremark)
- if (attr? :toc) && (attr? 'toc-placement', 'auto')
  include _toc.html
