!!! 5
%html{:lang=>(attr :lang, 'en')}
%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, 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4'}/styles/#{attr 'highlightjs-theme', 'default'}.min.css")
%script(src="#{attr :highlightjsdir, 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4'}/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')
:plain
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')
:plain
document.addEventListener('DOMContentLoaded', MathJax.Hub.TypeSet)
- unless (docinfo_content = docinfo).empty?
=docinfo_content
%body{:id => @id, :class=>[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?
- unless notitle
%h1=@header.title
- if attr? :author
%span#author=attr :author
%br
- if attr? :email
%span#email=sub_macros(attr :email)
%br
- if (authorcount = (attr :authorcount).to_i) > 1
- (2..authorcount).each do |idx|
%span{:id=>"author#{idx}", :class=>"author"}=(attr "author_#{idx}")
%br
- if attr? "email_#{idx}"
%span{:id=>"email#{idx}", :class=>"email"}= 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
- 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.chomp
- unless !footnotes? || attr?(:nofootnotes)
#footnotes
%hr
- footnotes.each do |fn|
.footnote{:id=>['_footnote', fn.index]}
= succeed ". #{fn.text}" do
%a(href="#_footnoteref_#{fn.index}")=fn.index
#footer
#footer-text
- if attr? :revnumber
#{attr 'version-label'} #{attr :revnumber}
- if attr? 'last-update-label'
%br
#{attr 'last-update-label'} #{attr :localdatetime}
- unless (docinfo_content = (docinfo :footer)).empty?
=docinfo_content