doctype 5 html lang=(attr :lang, 'en' unless attr? :nolang) head meta http-equiv='Content-Type' content='text/html; charset=#{attr :encoding}' meta name='generator' content="Asciidoctor #{attr 'asciidoctor-version'}" meta name='viewport' content='width=device-width, initial-scale=1.0' - [:description, :keywords, :author, :copyright].each do |key| - if attr? key meta name=key content=(attr key) title=((doctitle :sanitize => true) || (attr 'untitled-label')) - if Asciidoctor::DEFAULT_STYLESHEET_KEYS.include?(attr :stylesheet) - if @safe >= Asciidoctor::SafeMode::SECURE || (attr? :linkcss) link rel='stylesheet' href=normalize_web_path(Asciidoctor::DEFAULT_STYLESHEET_NAME, (attr :stylesdir, '')) - else style=Asciidoctor::HTML5.default_asciidoctor_stylesheet - elsif attr? :stylesheet - if @safe >= Asciidoctor::SafeMode::SECURE || (attr? :linkcss) link rel='stylesheet' href=normalize_web_path((attr :stylesheet), (attr :stylesdir, '')) - else style=read_asset(normalize_system_path((attr :stylesheet), (attr :stylesdir, '')), true) - if attr? :icons, 'font' - if !(attr 'iconfont-remote', '').nil? link rel='stylesheet' href=(attr 'iconfont-cdn', 'http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.min.css') - else link rel='stylesheet' href=normalize_web_path("#{attr 'iconfont-name', 'font-awesome'}.css", (attr :stylesdir, '')) - case attr 'source-highlighter' - when 'coderay' - if (attr 'coderay-css', 'class') == 'class' - if @safe >= Asciidoctor::SafeMode::SECURE || (attr? :linkcss) link rel='stylesheet' href=normalize_web_path('asciidoctor-coderay.css', (attr :stylesdir, '')) - else style=Asciidoctor::HTML5.default_coderay_stylesheet - when 'pygments' - if (attr 'pygments-css', 'class') == 'class' - if @safe >= Asciidoctor::SafeMode::SECURE || (attr? :linkcss) link rel='stylesheet' href=normalize_web_path('asciidoctor-pygments.css', (attr :stylesdir, '')) - else style=Asciidoctor::HTML5.pygments_stylesheet(attr 'pygments-style') - when 'highlightjs' link rel='stylesheet' href="#{attr :highlightjsdir, 'http://cdnjs.cloudflare.com/ajax/libs/highlight.js/7.3'}/styles/#{attr 'highlightjs-theme', 'default'}.min.css" script src="#{attr :highlightjsdir, 'http://cdnjs.cloudflare.com/ajax/libs/highlight.js/7.3'}/highlight.min.js" script hljs.initHighlightingOnLoad() - when 'prettify' link rel='stylesheet' href="#{attr :prettifydir, 'http://cdnjs.cloudflare.com/ajax/libs/prettify/r298'}/#{attr 'prettify-theme', 'prettify'}.min.css" script src="#{attr :prettifydir, 'http://cdnjs.cloudflare.com/ajax/libs/prettify/r298'}/prettify.min.js" script document.addEventListener('DOMContentLoaded', prettyPrint) - if attr? 'math' script type='text/x-mathjax-config' |MathJax.Hub.Config({ tex2jax: { inlineMath: [['\\(','\\)']], displayMath: [['\\[','\\]']], ignoreClass: 'nomath|nolatexmath' }, asciimath2jax: { delimiters: [['\\$','\\$']], ignoreClass: 'nomath|noasciimath' } }); script type='text/javascript' src='http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_HTMLorMML' script type='text/javascript' |document.addEventListener('DOMContentLoaded', MathJax.Hub.TypeSet) - unless (docinfo_content = docinfo).empty? =docinfo_content body id=@id class=[(attr :doctype),((attr? 'toc-class') && (attr? :toc) && (attr? 'toc-placement', 'auto') ? "#{attr 'toc-class'} toc-#{attr 'toc-position', 'left'}" : nil)] style=("max-width: #{attr 'max-width'};" if attr? 'max-width') - unless noheader / AsciiDoc leaves an empty header div even if there's no doctitle #header - if has_header? - if attr? :header_image_path img src=image_uri(attr :header_image_path) - unless notitle h1=@header.title - 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 span#revdate=attr :revdate - if attr? :revremark br span#revremark=attr :revremark - else - if attr? :header_image_path img src=image_uri(attr :header_image_path) - if (attr? :toc) && (attr? 'toc-placement', 'auto') #toc class=(attr 'toc-class', 'toc') #toctitle=attr 'toc-title' / hackish, find a way to make the toc generator more generic =Asciidoctor::HTML5::DocumentTemplate.outline(self, (attr :toclevels, 2).to_i) #content=content - unless !footnotes? || attr?(:nofootnotes) #footnotes hr - footnotes.each do |fn| .footnote id='_footnote_#{fn.index}' #{fn.index}. #{fn.text} - if attr? :footer_copyright .footer-copyright =attr :footer_copyright - unless attr? :nofooter #footer #footer-text - if attr? :revnumber | #{attr 'version-label'} #{attr :revnumber} - if attr? 'last-update-label' br | #{attr 'last-update-label'} #{attr :docdatetime} - unless (docinfo_content = (docinfo :footer)).empty? =docinfo_content