All Downloads are FREE. Search and download functionalities are using the official Maven repository.

aining.content-parent-resources.1.3.0.source-code.document.html.slim Maven / Gradle / Ivy

Go to download

Parent resources module containing all the static resources for building presentations with the training template.

There is a newer version: 1.0.0
Show newest version
- slides_content = self.content
- content_for :slides
  - unless noheader
    - unless (header_docinfo = docinfo :header, '-revealjs.html').empty?
      = header_docinfo
    - if header?
      include title_slide.html.slim
  = slides_content
  - unless (footer_docinfo = docinfo :footer, '-revealjs.html').empty?
    = footer_docinfo

doctype 5
html lang=(attr :lang, 'en' unless attr? :nolang)
  head
    meta charset="utf-8"
    meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"

    title=(doctitle sanitize: true, use_fallback: true)

    - if RUBY_ENGINE == 'opal' && JAVASCRIPT_PLATFORM == 'node'
      - revealjsdir = (attr :revealjsdir, 'node_modules/reveal.js')
    - else
      - revealjsdir = (attr :revealjsdir, 'reveal.js')
    - unless (asset_uri_scheme = (attr 'asset-uri-scheme', 'https')).empty?
      - asset_uri_scheme = %(#{asset_uri_scheme}:)
    - cdn_base = %(#{asset_uri_scheme}//cdnjs.cloudflare.com/ajax/libs)
    - [:description, :keywords, :author, :copyright].each do |key|
      - if attr? key
        meta name=key content=(attr key)
    - if attr? 'favicon'
      - if (icon_href = attr 'favicon').empty?
        - icon_href = 'favicon.ico'
        - icon_type = 'image/x-icon'
      - elsif (icon_ext = File.extname icon_href)
        - icon_type = icon_ext == '.ico' ? 'image/x-icon' : %(image/#{icon_ext.slice 1, icon_ext.length})
      - else
        - icon_type = 'image/x-icon'
      link rel="icon" type="#{icon_type}" href="#{icon_href}"
    - linkcss = (attr? 'linkcss')
    link rel="stylesheet" href="#{revealjsdir}/dist/reset.css"
    link rel="stylesheet" href="#{revealjsdir}/dist/reveal.css"

    / START ADDED For Apache Training
    / Start adding c3, d3
    link href="css/c3.min.css" rel="stylesheet"
    script src="js/d3.min.js" charset="utf-8"
    script src="js/c3.min.js"
    / End adding c3, d3
    / END ADDED For Apache Training

    / Default theme required even when using custom theme
    link rel='stylesheet' href=(attr :revealjs_customtheme, %(#{revealjsdir}/dist/theme/#{attr 'revealjs_theme', 'black'}.css)) id='theme'
    /! This CSS is generated by the Asciidoctor reveal.js converter to further integrate AsciiDoc's existing semantic with reveal.js
    style type="text/css"
      include asciidoctor-compatibility.css
    - if attr? :icons, 'font'
      / iconfont-remote is implicitly set by Asciidoctor core. See https://github.com/asciidoctor/asciidoctor.org/issues/361
      - if attr? 'iconfont-remote'
        - if (iconfont_cdn = (attr 'iconfont-cdn'))
          link rel='stylesheet' href=iconfont_cdn
        - else
          / default icon font is Font Awesome
          - font_awesome_version = (attr 'font-awesome-version', '5.15.1')
          link rel='stylesheet' href=%(#{cdn_base}/font-awesome/#{font_awesome_version}/css/all.min.css)
          link rel='stylesheet' href=%(#{cdn_base}/font-awesome/#{font_awesome_version}/css/v4-shims.min.css)
      - else
        link rel='stylesheet' href=(normalize_web_path %(#{attr 'iconfont-name', 'font-awesome'}.css), (attr 'stylesdir', ''), false)
    = generate_stem(cdn_base)
    - syntax_hl = self.syntax_highlighter
    - if syntax_hl && (syntax_hl.docinfo? :head)
      =syntax_hl.docinfo :head, self, cdn_base_url: cdn_base, linkcss: linkcss, self_closing_tag_slash: '/'
    - if attr? :customcss
      link rel='stylesheet' href=((customcss = attr :customcss).empty? ? 'asciidoctor-revealjs.css' : customcss)
    - unless (_docinfo = docinfo :head, '-revealjs.html').empty?
      =_docinfo
  body
    / START ADDED For Apache Training
    .header
      .left
      .right
    / END ADDED For Apache Training
    .reveal
      / Any section element inside of this container is displayed as a slide
      .slides
        - yield_content :slides
    / START ADDED For Apache Training
    .footer
      .left
      .right
    / END ADDED For Apache Training
    script src="#{revealjsdir}/dist/reveal.js"
    / Supports easy AsciiDoc syntax for background color
    javascript:
      Array.prototype.slice.call(document.querySelectorAll('.slides section')).forEach(function(slide) {
        if (slide.getAttribute('data-background-color')) return;
        // user needs to explicitly say he wants CSS color to override otherwise we might break custom css or theme (#226)
        if (!(slide.classList.contains('canvas') || slide.classList.contains('background'))) return;
        var bgColor = getComputedStyle(slide).backgroundColor;
        if (bgColor !== 'rgba(0, 0, 0, 0)' && bgColor !== 'transparent') {
          slide.setAttribute('data-background-color', bgColor);
          slide.style.backgroundColor = 'transparent';
        }
      });

      // More info about config & dependencies:
      // - https://github.com/hakimel/reveal.js#configuration
      // - https://github.com/hakimel/reveal.js#dependencies
      Reveal.initialize({
        // Display presentation control arrows
        controls: #{to_boolean(attr 'revealjs_controls', true)},
        // Help the user learn the controls by providing hints, for example by
        // bouncing the down arrow when they first encounter a vertical slide
        controlsTutorial: #{to_boolean(attr 'revealjs_controlstutorial', true)},
        // Determines where controls appear, "edges" or "bottom-right"
        controlsLayout: '#{attr 'revealjs_controlslayout', 'bottom-right'}',
        // Visibility rule for backwards navigation arrows; "faded", "hidden"
        // or "visible"
        controlsBackArrows: '#{attr 'revealjs_controlsbackarrows', 'faded'}',
        // Display a presentation progress bar
        progress: #{to_boolean(attr 'revealjs_progress', true)},
        // Display the page number of the current slide
        slideNumber: #{to_valid_slidenumber(attr 'revealjs_slidenumber', false)},
        // Control which views the slide number displays on
        showSlideNumber: '#{attr 'revealjs_showslidenumber', 'all'}',
        // Add the current slide number to the URL hash so that reloading the
        // page/copying the URL will return you to the same slide
        hash: #{to_boolean(attr 'revealjs_hash', false)},
        // Push each slide change to the browser history. Implies `hash: true`
        history: #{to_boolean(attr 'revealjs_history', false)},
        // Enable keyboard shortcuts for navigation
        keyboard: #{to_boolean(attr 'revealjs_keyboard', true)},
        // Enable the slide overview mode
        overview: #{to_boolean(attr 'revealjs_overview', true)},
        // Disables the default reveal.js slide layout so that you can use custom CSS layout
        disableLayout: #{to_boolean(attr 'revealjs_disablelayout', false)},
        // Vertical centering of slides
        center: #{to_boolean(attr 'revealjs_center', true)},
        // Enables touch navigation on devices with touch input
        touch: #{to_boolean(attr 'revealjs_touch', true)},
        // Loop the presentation
        loop: #{to_boolean(attr 'revealjs_loop', false)},
        // Change the presentation direction to be RTL
        rtl: #{to_boolean(attr 'revealjs_rtl', false)},
        // See https://github.com/hakimel/reveal.js/#navigation-mode
        navigationMode: '#{attr 'revealjs_navigationmode', 'default'}',
        // Randomizes the order of slides each time the presentation loads
        shuffle: #{to_boolean(attr 'revealjs_shuffle', false)},
        // Turns fragments on and off globally
        fragments: #{to_boolean(attr 'revealjs_fragments', true)},
        // Flags whether to include the current fragment in the URL,
        // so that reloading brings you to the same fragment position
        fragmentInURL: #{to_boolean(attr 'revealjs_fragmentinurl', false)},
        // Flags if the presentation is running in an embedded mode,
        // i.e. contained within a limited portion of the screen
        embedded: #{to_boolean(attr 'revealjs_embedded', false)},
        // Flags if we should show a help overlay when the questionmark
        // key is pressed
        help: #{to_boolean(attr 'revealjs_help', true)},
        // Flags if speaker notes should be visible to all viewers
        showNotes: #{to_boolean(attr 'revealjs_shownotes', false)},
        // Global override for autolaying embedded media (video/audio/iframe)
        // - null: Media will only autoplay if data-autoplay is present
        // - true: All media will autoplay, regardless of individual setting
        // - false: No media will autoplay, regardless of individual setting
        autoPlayMedia: #{attr 'revealjs_autoplaymedia', 'null'},
        // Global override for preloading lazy-loaded iframes
        // - null: Iframes with data-src AND data-preload will be loaded when within
        //   the viewDistance, iframes with only data-src will be loaded when visible
        // - true: All iframes with data-src will be loaded when within the viewDistance
        // - false: All iframes with data-src will be loaded only when visible
        preloadIframes: #{attr 'revealjs_preloadiframes', 'null'},
        // 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: #{attr 'revealjs_autoslide', 0},
        // Stop auto-sliding after user input
        autoSlideStoppable: #{to_boolean(attr 'revealjs_autoslidestoppable', true)},
        // Use this method for navigation when auto-sliding
        autoSlideMethod: #{attr 'revealjs_autoslidemethod', 'Reveal.navigateNext'},
        // Specify the average time in seconds that you think you will spend
        // presenting each slide. This is used to show a pacing timer in the
        // speaker view
        defaultTiming: #{attr 'revealjs_defaulttiming', 120},
        // Specify the total time in seconds that is available to
        // present.  If this is set to a nonzero value, the pacing
        // timer will work out the time available for each slide,
        // instead of using the defaultTiming value
        totalTime: #{attr 'revealjs_totaltime', 0},
        // Specify the minimum amount of time you want to allot to
        // each slide, if using the totalTime calculation method.  If
        // the automated time allocation causes slide pacing to fall
        // below this threshold, then you will see an alert in the
        // speaker notes window
        minimumTimePerSlide: #{attr 'revealjs_minimumtimeperslide', 0},
        // Enable slide navigation via mouse wheel
        mouseWheel: #{to_boolean(attr 'revealjs_mousewheel', false)},
        // Hide cursor if inactive
        hideInactiveCursor: #{to_boolean(attr 'revealjs_hideinactivecursor', true)},
        // Time before the cursor is hidden (in ms)
        hideCursorTime: #{attr 'revealjs_hidecursortime', 5000},
        // Hides the address bar on mobile devices
        hideAddressBar: #{to_boolean(attr 'revealjs_hideaddressbar', true)},
        // Opens links in an iframe preview overlay
        // Add `data-preview-link` and `data-preview-link="false"` to customise each link
        // individually
        previewLinks: #{to_boolean(attr 'revealjs_previewlinks', false)},
        // Transition style (e.g., none, fade, slide, convex, concave, zoom)
        transition: '#{attr 'revealjs_transition', 'slide'}',
        // Transition speed (e.g., default, fast, slow)
        transitionSpeed: '#{attr 'revealjs_transitionspeed', 'default'}',
        // Transition style for full page slide backgrounds (e.g., none, fade, slide, convex, concave, zoom)
        backgroundTransition: '#{attr 'revealjs_backgroundtransition', 'fade'}',
        // Number of slides away from the current that are visible
        viewDistance: #{attr 'revealjs_viewdistance', 3},
        // Number of slides away from the current that are visible on mobile
        // devices. It is advisable to set this to a lower number than
        // viewDistance in order to save resources.
        mobileViewDistance: #{attr 'revealjs_mobileviewdistance', 3},
        // Parallax background image (e.g., "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'")
        parallaxBackgroundImage: '#{attr 'revealjs_parallaxbackgroundimage', ''}',
        // Parallax background size in CSS syntax (e.g., "2100px 900px")
        parallaxBackgroundSize: '#{attr 'revealjs_parallaxbackgroundsize', ''}',
        // Number of pixels to move the parallax background per slide
        // - Calculated automatically unless specified
        // - Set to 0 to disable movement along an axis
        parallaxBackgroundHorizontal: #{attr 'revealjs_parallaxbackgroundhorizontal', 'null'},
        parallaxBackgroundVertical: #{attr 'revealjs_parallaxbackgroundvertical', 'null'},
        // The display mode that will be used to show slides
        display: '#{attr 'revealjs_display', 'block'}',

        // The "normal" size of the presentation, aspect ratio will be preserved
        // when the presentation is scaled to fit different resolutions. Can be
        // specified using percentage units.
        width: #{attr 'revealjs_width', 960},
        height: #{attr 'revealjs_height', 700},

        // Factor of the display size that should remain empty around the content
        margin: #{attr 'revealjs_margin', 0.1},

        // Bounds for smallest/largest possible scale to apply to content
        minScale: #{attr 'revealjs_minscale', 0.2},
        maxScale: #{attr 'revealjs_maxscale', 1.5},

        // PDF Export Options
        // Put each fragment on a separate page
        pdfSeparateFragments: #{to_boolean(attr 'revealjs_pdfseparatefragments', true)},
        // For slides that do not fit on a page, max number of pages
        pdfMaxPagesPerSlide: #{attr 'revealjs_pdfmaxpagesperslide', 1},

        // Optional libraries used to extend on reveal.js
        dependencies: [
            #{revealjs_dependencies(document, self, revealjsdir)}
        ],
      });
    / Workaround the "Only direct descendants of a slide section can be stretched" limitation in reveal.js
    / https://github.com/hakimel/reveal.js/issues/2584


    include stretch_nested_elements.js.slim

    - if syntax_hl && (syntax_hl.docinfo? :footer)
      =syntax_hl.docinfo :footer, self, cdn_base_url: cdn_base, linkcss: linkcss, self_closing_tag_slash: '/'

    - unless (docinfo_content = (docinfo :footer, '.html')).empty?
      =docinfo_content




© 2015 - 2024 Weber Informatics LLC | Privacy Policy