- slide_vertical_alignment = (attr? :revealjs_vertical_alignment) ? (attr :revealjs_vertical_alignment) : true - browser_history = (attr? :revealjs_history) ? (attr :revealjs_history) : true - display_slide_number = (attr? :revealjs_display_slide_number) ? (attr :revealjs_display_slide_number) : false - transition = (attr? :revealjs_transition) ? (attr :revealjs_transition) : 'default' doctype 5 html lang=(attr :lang, 'en' unless attr? :nolang) head meta charset="utf-8" - [:description, :keywords, :author, :copyright].each do |key| - if attr? key meta name=key content=(attr key) title=((doctitle :sanitize => true) || (attr 'untitled-label')) meta name="apple-mobile-web-app-capable" content="yes" meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" link href="revealjs/css/reveal.min.css" rel="stylesheet" - if attr? :revealjs_theme link rel='stylesheet' href='revealjs/css/theme/#{attr :revealjs_theme}.css' id='theme' - elsif attr? :revealjs_customtheme link rel='stylesheet' href='#{attr :revealjs_customtheme}' id='theme' - else link rel='stylesheet' href='revealjs/css/theme/gpe.css' id='theme' - if attr? :icons, 'font' - if !(attr 'iconfont-remote', '').nil? link rel='stylesheet' href=(attr 'iconfont-cdn', 'http://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css') - else link rel='stylesheet' href=normalize_web_path("#{attr 'iconfont-name', 'font-awesome'}.css", (attr :stylesdir, '')) // For syntax highlighting link href="revealjs/lib/css/zenburn.css" rel="stylesheet" - 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 the query includes 'print-pdf', use the PDF print sheet javascript: if( window.location.search.match( /print-pdf/gi ) ) { var link = document.createElement( 'link' ); link.rel = 'stylesheet'; link.type = 'text/css'; link.href = 'revealjs/css/print/pdf.css'; document.getElementsByTagName( 'head' )[0].appendChild( link ); } body .reveal - if attr? :header_image_path .header img src=image_uri(attr :header_image_path) // Any section element inside of this container is displayed as a slide .slides =content - if attr? :footer_copyright .footer =attr :footer_copyright script src="revealjs/lib/js/head.min.js" script src="revealjs/js/reveal.min.js" javascript: // Full list of configuration options available here: // https://github.com/hakimel/reveal.js#configuration Reveal.initialize({ // Display controls in the bottom right corner controls: true, // Display a presentation progress bar progress: true, // Push each slide change to the browser history history: #{browser_history}, // Enable keyboard shortcuts for navigation keyboard: true, // Enable the slide overview mode overview: true, // Vertical centering of slides center: #{slide_vertical_alignment}, // Loop the presentation loop: false, // Change the presentation direction to be RTL rtl: false, // Number of milliseconds between automatically proceeding to the // next slide, disabled when set to 0, this value can be overwritten // by using a data-autoslide attribute on your slides autoSlide: 0, // Enable slide navigation via mouse wheel mouseWheel: false, // Apply a 3D roll to links on hover rollingLinks: true, margin: 0.2, // Display for each slide a number slideNumber: #{display_slide_number}, // Transition speed transitionSpeed: 'default', // default/fast/slow // Transition style for full page backgrounds backgroundTransition: 'default', // default/linear theme: Reveal.getQueryHash().theme, // available themes are in /css/theme // Transition style transition: Reveal.getQueryHash().transition || '#{transition}', // default/cube/page/concave/zoom/linear/fade/none // Parallax scrolling // parallaxBackgroundImage: 'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg', // parallaxBackgroundSize: '2100px 900px', // Optional libraries used to extend on reveal.js dependencies: [ { src: 'revealjs/lib/js/classList.js', condition: function() { return !document.body.classList; } }, { src: 'revealjs/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, { src: 'revealjs/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, { src: 'revealjs/plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } }, { src: 'revealjs/plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }, { src: 'revealjs/plugin/math/math.js', async: true } ] // TODO : Add a parameter to enable/disbale REMOTE // { src: 'revealjs/plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } }, });