This is an automated email from the ASF dual-hosted git repository.

soenkeliebau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-training.git


The following commit(s) were added to refs/heads/master by this push:
     new 2cb4e74  TRAINING-17: Add Spark 1-Basics presentation (#59)
2cb4e74 is described below

commit 2cb4e74128fdbe3a06beb7f120186c90f62430d4
Author: RyanSkraba <[email protected]>
AuthorDate: Wed Jan 22 17:26:02 2020 +0100

    TRAINING-17: Add Spark 1-Basics presentation (#59)
    
    This is a skeleton with basic text, without content review.
    Most diagrams are missing, and text isn't pleasantly laid out or styled.
---
 .../1-Basics/libs/docinfo-hack/document.html.slim  | 258 ++++++++++++++
 content/Spark/1-Basics/pom.xml                     | 310 +++++++++++++++++
 .../1-Basics/src/main/asciidoc/_settings.adoc      |  36 ++
 .../Spark/1-Basics/src/main/asciidoc/index.adoc    | 197 +++++++++++
 .../1-Basics/src/main/asciidoc/subdir/_b.adoc      |  26 ++
 .../1-Basics/src/main/asciidoc/subdir/_c.adoc      |  20 ++
 .../src/main/resources/images/logo-apache.png      | Bin 0 -> 16185 bytes
 .../1-Basics/src/main/resources/images/spark.png   | Bin 0 -> 69290 bytes
 content/Spark/1-Basics/src/main/theme/apache.css   | 380 +++++++++++++++++++++
 9 files changed, 1227 insertions(+)

diff --git a/content/Spark/1-Basics/libs/docinfo-hack/document.html.slim 
b/content/Spark/1-Basics/libs/docinfo-hack/document.html.slim
new file mode 100644
index 0000000..9d1e41e
--- /dev/null
+++ b/content/Spark/1-Basics/libs/docinfo-hack/document.html.slim
@@ -0,0 +1,258 @@
+doctype 5
+html lang=(attr :lang, 'en' unless attr? :nolang)
+  head
+    meta charset="utf-8"
+    - 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)
+    title=(doctitle sanitize: true, use_fallback: true)
+    meta content="yes" name="apple-mobile-web-app-capable"
+    meta content="black-translucent" 
name="apple-mobile-web-app-status-bar-style"
+    meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, 
user-scalable=no, minimal-ui" name="viewport"
+    link href="#{revealjsdir}/css/reveal.css" rel="stylesheet"
+    / 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
+    / Default theme required even when using custom theme
+    - if attr? :revealjs_customtheme
+      link rel='stylesheet' href=(attr :revealjs_customtheme) id='theme'
+    - else
+      link rel='stylesheet' href='#{revealjsdir}/css/theme/#{attr 
'revealjs_theme', 'black'}.css' id='theme'
+    include asciidoctor_revealjs.css.slim
+    - if attr? :icons, 'font'
+      - if attr? 'iconfont-remote'
+        link rel='stylesheet' href=(attr 'iconfont-cdn', 
%(#{cdn_base}/font-awesome/4.3.0/css/font-awesome.min.css))
+      - else
+        link rel='stylesheet' href=(normalize_web_path %(#{attr 
'iconfont-name', 'font-awesome'}.css), (attr 'stylesdir', ''), false)
+    - if attr? :stem
+      - eqnums_val = (attr 'eqnums', 'none')
+      - eqnums_val = 'AMS' if eqnums_val == ''
+      - eqnums_opt = %( equationNumbers: { autoNumber: "#{eqnums_val}" } )
+      script type='text/x-mathjax-config'
+        | MathJax.Hub.Config({
+          tex2jax: {
+            inlineMath: 
[#{Asciidoctor::INLINE_MATH_DELIMITERS[:latexmath].to_s}],
+            displayMath: 
[#{Asciidoctor::BLOCK_MATH_DELIMITERS[:latexmath].to_s}],
+            ignoreClass: "nostem|nolatexmath"
+          },
+          asciimath2jax: {
+            delimiters: 
[#{Asciidoctor::BLOCK_MATH_DELIMITERS[:asciimath].to_s}],
+            ignoreClass: "nostem|noasciimath"
+          },
+          TeX: {#{eqnums_opt}}
+          });
+      script 
src='#{cdn_base}/mathjax/2.4.0/MathJax.js?config=TeX-MML-AM_HTMLorMML'
+    - case document.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::Stylesheets.instance.coderay_stylesheet_data
+    - 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::Stylesheets.instance.pygments_stylesheet_data(attr 
'pygments-style')
+    / For syntax highlighting
+    - if attr? 'highlightjs-theme'
+      link href=(attr 'highlightjs-theme') rel="stylesheet"
+    - else
+      link href="#{revealjsdir}/lib/css/zenburn.css" rel="stylesheet"
+    / If the query includes 'print-pdf', use the PDF print sheet
+    javascript:
+      var link = document.createElement( 'link' );
+      link.rel = 'stylesheet';
+      link.type = 'text/css';
+      link.href = window.location.search.match( /print-pdf/gi ) ? 
"#{revealjsdir}/css/print/pdf.css" : "#{revealjsdir}/css/print/paper.css";
+      document.getElementsByTagName( 'head' )[0].appendChild( link );
+    /[if lt IE 9]
+      <script src="#{revealjsdir}/lib/js/html5shiv.js"></script>
+    - unless (docinfo_content = docinfo :header, '.html').empty?
+      =docinfo_content
+    - if attr? :customcss
+      link rel='stylesheet' href=((customcss = attr :customcss).empty? ? 
'asciidoctor-revealjs.css' : customcss)
+  body
+    .header
+      .left
+      .right
+    .reveal
+      / Any section element inside of this container is displayed as a slide
+      .slides
+        - unless notitle || !has_header?
+          - bg_image = (attr? 'title-slide-background-image') ? 
(image_uri(attr 'title-slide-background-image')) : nil
+          - bg_video = (attr? 'title-slide-background-video') ? 
(media_uri(attr 'title-slide-background-video')) : nil
+          section.title(class = role
+            data-state='title'
+            data-transition=(attr 'title-slide-transition')
+            data-transition-speed=(attr 'title-slide-transition-speed')
+            data-background=(attr 'title-slide-background')
+            data-background-size=(attr 'title-slide-background-size')
+            data-background-image=bg_image
+            data-background-video=bg_video
+            data-background-video-loop=(attr 
'title-slide-background-video-loop')
+            data-background-video-muted=(attr 
'title-slide-background-video-muted')
+            data-background-iframe=(attr 'title-slide-background-iframe')
+            data-background-color=(attr 'title-slide-background-color')
+            data-background-repeat=(attr 'title-slide-background-repeat')
+            data-background-position=(attr 'title-slide-background-position')
+            data-background-transition=(attr 
'title-slide-background-transition'))
+            - if (_title_obj = doctitle partition: true, use_fallback: 
true).subtitle?
+              h1=slice_text _title_obj.title, (_slice = header.option? :slice)
+              h2=slice_text _title_obj.subtitle, _slice
+            - else
+              [email protected]
+            - preamble = @document.find_by context: :preamble
+            - unless preamble.nil? or preamble.length == 0
+              div.preamble=preamble.pop.content
+            - unless author.nil?
+              p.author: small=author
+        =content
+    .footer
+      .left
+      .right
+    script src="#{revealjsdir}/js/reveal.js"
+    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';
+        }
+      })
+
+      // See https://github.com/hakimel/reveal.js#configuration for a full 
list of configuration options
+      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'}',
+        // Push each slide change to the browser history
+        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)},
+        // 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)},
+        // 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'},
+        // 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},
+        // Enable slide navigation via mouse wheel
+        mouseWheel: #{to_boolean(attr 'revealjs_mouseWheel', false)},
+        // 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},
+        // 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},
+
+        // Optional libraries used to extend on reveal.js
+        dependencies: [
+            { src: '#{revealjsdir}/lib/js/classList.js', condition: function() 
{ return !document.body.classList; } },
+            #{(document.attr? 'source-highlighter', 'highlightjs') ? "{ src: 
'#{revealjsdir}/plugin/highlight/highlight.js', async: true, callback: 
function() { hljs.initHighlightingOnLoad(); } }," : nil}
+            #{(attr? 'revealjs_plugin_zoom', 'disabled') ? "" :  "{ src: 
'#{revealjsdir}/plugin/zoom-js/zoom.js', async: true }," }
+            #{(attr? 'revealjs_plugin_notes', 'disabled') ? "" :  "{ src: 
'#{revealjsdir}/plugin/notes/notes.js', async: true }," }
+            #{(attr? 'revealjs_plugin_marked', 'enabled') ? "{ src: 
'#{revealjsdir}/plugin/markdown/marked.js', condition: function() { return 
!!document.querySelector( '[data-markdown]' ); } }," : "" }
+            #{(attr? 'revealjs_plugin_markdown', 'enabled') ? "{ src: 
'#{revealjsdir}/plugin/markdown/markdown.js', condition: function() { return 
!!document.querySelector( '[data-markdown]' ); } }," : "" }
+            #{(attr? 'revealjs_plugin_pdf', 'enabled') ? "{ src: 
'#{revealjsdir}/plugin/print-pdf/print-pdf.js', async: true }," :  "" }
+            #{(attr? 'revealjs_plugins') ? File.read(attr('revealjs_plugins', 
'')) : ""}
+        ],
+
+        #{(attr? 'revealjs_plugins_configuration') ? 
File.read(attr('revealjs_plugins_configuration', '')) : ""}
+
+      });
+    - unless (docinfo_content = (docinfo :footer, '.html')).empty?
+      =docinfo_content
diff --git a/content/Spark/1-Basics/pom.xml b/content/Spark/1-Basics/pom.xml
new file mode 100644
index 0000000..d23acb4
--- /dev/null
+++ b/content/Spark/1-Basics/pom.xml
@@ -0,0 +1,310 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>21</version>
+
+        <!-- Required in our case as per 
http://maven.apache.org/ref/3.0.3/maven-model/maven.html#class_parent -->
+        <relativePath></relativePath>
+    </parent>
+
+    <groupId>org.apache.training</groupId>
+    <artifactId>Apache-Spark-Basics</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>war</packaging>
+
+    <name>Apache Spark Basics</name>
+    <description>An example project that demonstrates how to integrate convert 
Asciidoc to a reveal.js presentation with the Asciidoctor Maven 
plugin.</description>
+
+    <properties>
+        <project.main.contentfile>index</project.main.contentfile>
+        
<project.slides.directory>${project.build.directory}/generated-slides</project.slides.directory>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+        
<asciidoctor.maven.plugin.version>2.0.0-RC.1</asciidoctor.maven.plugin.version>
+        <asciidoctorj.version>2.1.0</asciidoctorj.version>
+        <asciidoctorj.diagram.version>1.5.18</asciidoctorj.diagram.version>
+        
<asciidoctorj.extensions-lab.version>1.0.0</asciidoctorj.extensions-lab.version>
+        <revealjs.version>3.8.0</revealjs.version>
+        <asciidoctor-revealjs.version>2.0.0</asciidoctor-revealjs.version>
+
+        
<copy-rename-maven-plugin.version>1.0</copy-rename-maven-plugin.version>
+        <download-maven-plugin.version>1.4.1</download-maven-plugin.version>
+        
<jetty-maven-plugin.version>9.4.14.v20181114</jetty-maven-plugin.version>
+        <maven-resources-plugin.version>3.1.0</maven-resources-plugin.version>
+        <maven-war-plugin.version>3.2.2</maven-war-plugin.version>
+    </properties>
+
+    <build>
+        <plugins>
+            <!-- Check if all source files have the required apache license 
headers -->
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>license-check</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <consoleOutput>true</consoleOutput>
+                    <excludes>
+                        <!-- TODO: This is a mofified version of an 
asciidoctor file ... nor sure we can stick an Apache Header on it -->
+                        <exclude>libs/docinfo-hack/document.html.slim</exclude>
+                        <!-- Exclude everything downloaded by the install-deps 
scripts -->
+                        <exclude>libs/third-party/**</exclude>
+                        <!-- Maven related files -->
+                        <exclude>**/target/**</exclude>
+
+                        <!-- Eclipse related files -->
+                        <exclude>**/.project</exclude>
+                        <exclude>**/.settings/**</exclude>
+                        <exclude>**/.classpath</exclude>
+
+                        <!-- IntelliJ related files -->
+                        <exclude>**/.idea/**</exclude>
+                        <exclude>**/*.iml</exclude>
+
+                        <!-- Asciidoctor generated files -->
+                        <exclude>**/.asciidoctor/**</exclude>
+
+                        <!-- JSON doesn't like comments -->
+                        <exclude>**/*.json</exclude>
+                        <!-- Mermaid does't like comments -->
+                        <exclude>**/*.mmd</exclude>
+
+                        <!-- Output of the profiler maven extension -->
+                        <exclude>**/.profiler/**</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>com.googlecode.maven-download-plugin</groupId>
+                <artifactId>download-maven-plugin</artifactId>
+                <version>${download-maven-plugin.version}</version>
+                <executions>
+                    <execution>
+                        <id>install-asciidoctor-revealjs</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            
<url>https://github.com/asciidoctor/asciidoctor-reveal.js/archive/v${asciidoctor-revealjs.version}.zip</url>
+                            <unpack>true</unpack>
+                            
<outputFileName>asciidoctor-reveal.js-${asciidoctor-revealjs.version}.zip</outputFileName>
+                            
<outputDirectory>${project.build.directory}</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>install-revealjs</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            
<url>https://github.com/hakimel/reveal.js/archive/${revealjs.version}.zip</url>
+                            <unpack>true</unpack>
+                            
<outputFileName>reveal.js-${revealjs.version}.zip</outputFileName>
+                            
<outputDirectory>${project.slides.directory}</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>download-c3-css</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            
<url>https://cdnjs.cloudflare.com/ajax/libs/c3/0.6.12/c3.min.css</url>
+                            
<outputDirectory>${project.slides.directory}/css</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>download-c3-js</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            
<url>https://cdnjs.cloudflare.com/ajax/libs/c3/0.6.12/c3.min.js</url>
+                            
<outputDirectory>${project.slides.directory}/js</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>download-d3-js</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>wget</goal>
+                        </goals>
+                        <configuration>
+                            
<url>https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js</url>
+                            
<outputDirectory>${project.slides.directory}/js</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>${maven-resources-plugin.version}</version>
+                <executions>
+                    <execution>
+                        <id>copy-resources</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            
<outputDirectory>${project.build.directory}</outputDirectory>
+                            <resources>
+                                <!-- Copy the normal resources into the root 
of the slides directory -->
+                                <resource>
+                                    <directory>src/main/resources</directory>
+                                    
<targetPath>${project.slides.directory}</targetPath>
+                                </resource>
+                                <!-- Copy our css-theme to the reveal.js theme 
directory -->
+                                <resource>
+                                    <directory>src/main/theme</directory>
+                                    <filtering>true</filtering>
+                                    
<targetPath>${project.slides.directory}/reveal.js-${revealjs.version}/css/theme</targetPath>
+                                </resource>
+                                <!-- Patch one of the "slim" files as the 
'docinfo' integration doesn't seem to work -->
+                                <resource>
+                                    <directory>libs/docinfo-hack</directory>
+                                    
<targetPath>${project.build.directory}/asciidoctor-reveal.js-${asciidoctor-revealjs.version}/templates</targetPath>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.asciidoctor</groupId>
+                <artifactId>asciidoctor-maven-plugin</artifactId>
+                <version>${asciidoctor.maven.plugin.version}</version>
+                <executions>
+                    <execution>
+                        <id>generate-slides</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>process-asciidoc</goal>
+                        </goals>
+                        <configuration>
+                            <!-- Tell asciidoctor to use the reveal.js backend 
and not the default html -->
+                            <backend>revealjs</backend>
+                            <!-- Configure where are all the asciidoc source 
files located -->
+                            
<sourceDirectory>src/main/asciidoc</sourceDirectory>
+                            <!-- Configure the target director to where will 
the output be generated -->
+                            
<outputDirectory>${project.slides.directory}</outputDirectory>
+                            <!-- Enable optional modules for generating 
diagrams and charts -->
+                            <requires>
+                                <require>asciidoctor-diagram</require>
+                                <!--require>chart-block-macro</require-->
+                            </requires>
+                            <!-- This has to point to the asciidoctor-revealjs 
directory which contains all the "slim" files -->
+                            
<templateDir>${project.build.directory}/asciidoctor-reveal.js-${asciidoctor-revealjs.version}/templates</templateDir>
+                            <attributes>
+                                <!--imagesdir></imagesdir-->
+                                <!--
+                                    Tell the system the relative path to the 
reveal.js files
+                                    inside the generated-slides directory.
+                                -->
+                                
<revealjsdir>reveal.js-${revealjs.version}</revealjsdir>
+                                <!--
+                                    Use our custom theme, which is defined by 
src/main/theme/apache.css
+                                    and copied inside the reveal.js 
installation by the resources plugin a few lines
+                                    up inside this pom.
+                                -->
+                                <revealjs_theme>apache</revealjs_theme>
+                                <!-- Some basic settings -->
+                                
<revealjs_transition>linear</revealjs_transition>
+                                
<project-version>${project.version}</project-version>
+                                
<source-highlighter>highlightjs</source-highlighter>
+                                
<!--highlightjs-theme>https://raw.githubusercontent.com/isagalaev/highlight.js/master/src/styles/arduino-light.css</highlightjs-theme-->
+                                
<erd>${basedir}/libs/third-party/erd/.stack-work/dist/x86_64-osx/Cabal-2.2.0.1/build/erd/erd</erd>
+                                
<!--convert>${basedir}/libs/third-party/ImageMagick-7.0.8/bin/convert</convert>
+                                
<identify>${basedir}/libs/third-party/ImageMagick-7.0.8/bin/identify</identify-->
+                                
<mermaid>${basedir}/libs/third-party/node_modules/.bin/mmdc</mermaid>
+                                
<phantomjs>${basedir}/libs/third-party/phantomjs-2.1.1-macosx/bin/phantomjs</phantomjs>
+                                
<svgbob>${basedir}/libs/third-party/svgbob/bin/svgbob</svgbob>
+                                
<vg2svg>${basedir}/libs/third-party/node_modules/.bin/vg2svg</vg2svg>
+                            </attributes>
+                        </configuration>
+                    </execution>
+                </executions>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.asciidoctor</groupId>
+                        <artifactId>asciidoctorj</artifactId>
+                        <version>${asciidoctorj.version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.asciidoctor</groupId>
+                        <artifactId>asciidoctorj-diagram</artifactId>
+                        <version>${asciidoctorj.diagram.version}</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <version>${maven-war-plugin.version}</version>
+                <configuration>
+                    <failOnMissingWebXml>false</failOnMissingWebXml>
+                    
<warSourceDirectory>${project.build.directory}/generated-slides</warSourceDirectory>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-maven-plugin</artifactId>
+                <version>${jetty-maven-plugin.version}</version>
+            </plugin>
+            <plugin>
+                <groupId>com.coderplus.maven.plugins</groupId>
+                <artifactId>copy-rename-maven-plugin</artifactId>
+                <version>${copy-rename-maven-plugin.version}</version>
+                <executions>
+                    <execution>
+                        <id>rename-slide-file</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>rename</goal>
+                        </goals>
+                        <configuration>
+                            
<sourceFile>${project.slides.directory}/${project.main.contentfile}.revealjs</sourceFile>
+                            
<destinationFile>${project.slides.directory}/${project.main.contentfile}.html</destinationFile>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/content/Spark/1-Basics/src/main/asciidoc/_settings.adoc 
b/content/Spark/1-Basics/src/main/asciidoc/_settings.adoc
new file mode 100644
index 0000000..261a396
--- /dev/null
+++ b/content/Spark/1-Basics/src/main/asciidoc/_settings.adoc
@@ -0,0 +1,36 @@
+////
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+////
+
+:goto:
+:menu:
+:navigation:
+:status:
+:arrows:
+:revealjs_theme: cc_black
+:revealjs_progress: true
+:revealjs_slidenumber: true
+:pdf-page-size: A4
+:revealjs_center: false
+:revealjs_history: true
+:icons: font
+:imagesdir: images
+:sourcedir: ../java
+:title-slide-background-image: background-dark-orig.jpg
+:idprefix:
+:idseparator: -
diff --git a/content/Spark/1-Basics/src/main/asciidoc/index.adoc 
b/content/Spark/1-Basics/src/main/asciidoc/index.adoc
new file mode 100644
index 0000000..3f00e14
--- /dev/null
+++ b/content/Spark/1-Basics/src/main/asciidoc/index.adoc
@@ -0,0 +1,197 @@
+////
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+////
+
+include::_settings.adoc[]
+:presenter_name: Some Cool Person
+:presenter_company: Apache Software Foundation
+
+== Apache Spark Training +
+
+Basics
+
+== Contents of this module
+
+. Spark Overview
+. Use Cases
+
+== Big Data Platforms
+
+. *too much data* for one machine
+. *processing speed*
+. *scaling out* vs. *scaling up*
+
+[NOTE.speaker]
+--
+BIG DATA: Google, Facebook, Amazon, eBay, Twitter
+big data: internet providers, e-commerce platforms, Last.fm, manufacturing
+everywhere: log files
+
+data might not fit on one machine
+new data is constantly being produced & needs to be processed at least as fast
+real-time constraints
+internet scale:
+yahoo: 4500 node cluster, 8 cores + 4TB storage each
+facebook: log data (clicks), user profiles, ... for analytics & ML
+>1000 node cluster, 8 cores + 12TB storage each
+google/yahoo: websites (indexes), user profiles & histories (f. personalized 
search), maps
+internet providers: click logs
+manufacturing: machine-generated logs
+energy, industry: sensor-data, internet-of-things
+mortals: convert, sort, filter, search, explore
+
+explain scalout vs scale-up (linear vs non-linear), maximum hardware size fixed
+
+Scale up: add resources to computer
+Scale out: add computers ☺
+--
+
+== Why Apache Spark?
+
+* next generation big data processing engine
+* large community
+* production ready since 05/14
+* used by
+** Amazon
+** SAP
+** IBM
+
+image::spark.png[scaledwidth=75%]
+
+////
+TODO: Position the spark logo
+////
+
+== Spark history
+
+* Apache Hadoop started in 2006
+* Spark incepted by Matei Zaharia at UC Berkeley's AMPLab in 2009
+** In the same Year: Project Stratosphere started (later becoming Apache Flink)
+* 2010 open sourced under a BSD license
+* 2013 donated to the Apache Software Foundation
+* 2014 Databricks established
+* May 2014: Spark 1.0
+* 2016: Spark 2.0: Datasets
+* 2017: Spark 2.2: Structured Streaming
+* 2018: Spark 2.4
+
+////
+TODO: Doesn't fit to page
+////
+
+== Apache Spark - Unified Framework
+
+[.west]
+* Scala, Java, Python, R
+* ease of use:
+* 80 high level operators
+* Batch Processing
+* Stream Analytics
+* Machine Learning
+* Interactive SQL
+
+[.east]
+DIAGRAM HERE
+
+////
+TODO: Block framework diagram for Spark
+////
+
+[NOTE.speaker]
+--
+Data Integration and ETL
+High performance batch computation
+Near Real-time stream processing
+Machine Learning
+Interactive analytics
+--
+
+== Benefits of a unified platform
+
+[.west]
+* Single consistent set of APIs
+* Shared Abstraction: RDDs or DataFrames, Dstreams
+* Pipelines: Combine different types of processing in the same application
+* Performance: Only one-time initialization, data sharing in memory
+
+[.east]
+DIAGRAM HERE
+
+////
+TODO: Block diagram for Spark
+Input Streams of Events
+Spark Streaming
+Machine Learning
+Spark SQL
+NoSQL DB
+////
+
+== Storage
+
+* Spark does not have its own Storage
+* can use
+** HDFS (Hadoop)
+** Local file system
+** NoSQL (HBase, Cassandra)
+** Cloud (Amazon S3)
+
+== Spark Use Cases
+
+[cols="3*", options="header"]
+|===
+| Use case | Description | Users
+
+| Data Integration and ETL
+| Cleansing and combining data from diverse sources
+| Palantir: Data analytics platform
+
+| Interactive analytics
+| Gain insight from massive data sets in ad hoc investigations or regularly 
planned dashboards
+| Goldman Sachs: Analytics platform +
+Huawei: Query platform in the telecom sector
+
+| High performance batch computation
+| Run complex algorithms against large scale data
+| Novartis: Genomic Research +
+MyFitnessPal: Process food data
+
+| Machine Learning
+| Predict outcomes to make decisions based on input data
+| Alibaba: Marketplace Analysis +
+Spotify: Music Recommendation
+
+| Real-time stream processing
+| Capturing and processing data continuously with low latency and high 
reliability
+| Netflix: Recommendation Engine +
+British Gas: Connected Homes
+|===
+
+////
+TODO: Doesn't fit to page
+////
+
+== Short summary
+
+* Spark introduction, history and benefits
+** Next generation big data processing engine
+** Production-ready since 05/2014
+** Spark’s fast engine – 3 x faster with 10 x fewer recourses than Hadoop 
[Daytona-GreySort]
+* Overview of Spark components
+** Spark SQL, Spark Streaming, Spark ML, GraphX on top of Spark Core Engine
+* Several storage options i.e. HDFS, Cassandra
+* Suitable for different use cases
diff --git a/content/Spark/1-Basics/src/main/asciidoc/subdir/_b.adoc 
b/content/Spark/1-Basics/src/main/asciidoc/subdir/_b.adoc
new file mode 100644
index 0000000..cb5008c
--- /dev/null
+++ b/content/Spark/1-Basics/src/main/asciidoc/subdir/_b.adoc
@@ -0,0 +1,26 @@
+////
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+////
+
+content from _src/docs/asciidoc/subdir/_b.adoc_.
+
+.include::_c.adoc[]
+[example]
+--
+include::_c.adoc[]
+--
diff --git a/content/Spark/1-Basics/src/main/asciidoc/subdir/_c.adoc 
b/content/Spark/1-Basics/src/main/asciidoc/subdir/_c.adoc
new file mode 100644
index 0000000..447ae42
--- /dev/null
+++ b/content/Spark/1-Basics/src/main/asciidoc/subdir/_c.adoc
@@ -0,0 +1,20 @@
+////
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+////
+
+content from _src/docs/asciidoc/subdir/_c.adoc_.
diff --git a/content/Spark/1-Basics/src/main/resources/images/logo-apache.png 
b/content/Spark/1-Basics/src/main/resources/images/logo-apache.png
new file mode 100644
index 0000000..44c337b
Binary files /dev/null and 
b/content/Spark/1-Basics/src/main/resources/images/logo-apache.png differ
diff --git a/content/Spark/1-Basics/src/main/resources/images/spark.png 
b/content/Spark/1-Basics/src/main/resources/images/spark.png
new file mode 100644
index 0000000..b5e37d1
Binary files /dev/null and 
b/content/Spark/1-Basics/src/main/resources/images/spark.png differ
diff --git a/content/Spark/1-Basics/src/main/theme/apache.css 
b/content/Spark/1-Basics/src/main/theme/apache.css
new file mode 100644
index 0000000..74cb7b2
--- /dev/null
+++ b/content/Spark/1-Basics/src/main/theme/apache.css
@@ -0,0 +1,380 @@
+/*
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+*/
+
+section.has-light-background, section.has-light-background h1, 
section.has-light-background h2, section.has-light-background h3, 
section.has-light-background h4, section.has-light-background h5, 
section.has-light-background h6 {
+  color: #fff; }
+
+/*********************************************
+ * GLOBAL STYLES
+ *********************************************/
+body {
+  background-image: url("../../../images/background.jpg");
+  background-repeat: no-repeat;
+  background-size: cover;
+  background-color: #fff; }
+
+.reveal {
+  font-family: Panton-Regular, Helvetica, sans-serif;
+  font-size: 34px;
+  font-weight: normal;
+  color: #000; }
+
+::selection {
+  color: #000;
+  background: #bee4fd;
+  text-shadow: none; }
+
+.reveal .slides > section, .reveal .slides > section > section {
+  line-height: 1.3;
+  font-weight: inherit; }
+
+/*********************************************
+ * HEADERS
+ *********************************************/
+.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 {
+  margin: 0 0 20px 0;
+  color: #000;
+  font-family: Panton-Regular, Helvetica, sans-serif;
+  font-weight: 600;
+  line-height: 1.2;
+  letter-spacing: normal;
+  text-transform: uppercase;
+  text-shadow: none;
+  word-wrap: break-word; }
+
+.reveal h1 {
+  font-size: 2.5em; }
+
+.reveal h2 {
+  font-size: 1.6em; }
+
+.reveal h3 {
+  font-size: 1.3em; }
+
+.reveal h4 {
+  font-size: 1em; }
+
+.reveal h1 {
+  text-shadow: none; }
+
+/*********************************************
+ * OTHER
+ *********************************************/
+.reveal p {
+  margin: 20px 0;
+  line-height: 1.3; }
+
+/* Ensure certain elements are never larger than the slide itself */
+.reveal img, .reveal video, .reveal iframe {
+  max-width: 95%;
+  max-height: 95%; }
+
+.reveal strong, .reveal b {
+  font-weight: bold; }
+
+.reveal em {
+  font-style: italic; }
+
+.reveal ol, .reveal dl, .reveal ul {
+  display: inline-block;
+  text-align: left;
+  margin: 0 0 0 1em; }
+
+.reveal ol {
+  list-style-type: decimal; }
+
+.reveal ul {
+  list-style-type: disc; }
+
+.reveal ul ul {
+  list-style-type: square; }
+
+.reveal ul ul ul {
+  list-style-type: circle; }
+
+.reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul {
+  display: block;
+  margin-left: 40px; }
+
+.reveal dt {
+  font-weight: bold; }
+
+.reveal dd {
+  margin-left: 40px; }
+
+.reveal q, .reveal blockquote {
+  quotes: none; }
+
+.reveal blockquote {
+  display: block;
+  position: relative;
+  width: 70%;
+  margin: 20px auto;
+  padding: 5px;
+  font-style: italic;
+  background: rgba(255, 255, 255, 0.05);
+  box-shadow: 0 0 2px rgba(0, 0, 0, 0.2); }
+
+.reveal blockquote p:first-child, .reveal blockquote p:last-child {
+  display: inline-block; }
+
+.reveal q {
+  font-style: italic; }
+
+.reveal pre {
+  display: block;
+  position: relative;
+  width: 90%;
+  margin: 20px auto;
+  text-align: left;
+  font-size: 0.55em;
+  font-family: monospace;
+  line-height: 1.2em;
+  word-wrap: break-word;
+  box-shadow: 0 0 6px rgba(0, 0, 0, 0.3); }
+
+.reveal code {
+  font-family: monospace; }
+
+.reveal pre code {
+  display: block;
+  padding: 5px;
+  overflow: auto;
+  max-height: 400px;
+  word-wrap: normal;
+  background: #3F3F3F;
+  color: #DCDCDC; }
+
+.reveal table {
+  margin: auto;
+  border-collapse: collapse;
+  border-spacing: 0; }
+
+.reveal table th {
+  font-weight: bold; }
+
+.reveal table th, .reveal table td {
+  text-align: left;
+  padding: 0.2em 0.5em 0.2em 0.5em;
+  border-bottom: 1px solid; }
+
+.reveal table th[align="center"], .reveal table td[align="center"] {
+  text-align: center; }
+
+.reveal table th[align="right"], .reveal table td[align="right"] {
+  text-align: right; }
+
+.reveal table tr:last-child td {
+  border-bottom: none; }
+
+.reveal sup {
+  vertical-align: super; }
+
+.reveal sub {
+  vertical-align: sub; }
+
+.reveal small {
+  display: inline-block;
+  font-size: 0.6em;
+  line-height: 1.2em;
+  vertical-align: top; }
+
+.reveal small * {
+  vertical-align: top; }
+
+/*********************************************
+ * LINKS
+ *********************************************/
+.reveal a {
+  color: #42affa;
+  text-decoration: none;
+  -webkit-transition: color 0.15s ease;
+  -moz-transition: color 0.15s ease;
+  transition: color 0.15s ease; }
+
+.reveal a:hover {
+  color: #8dcffc;
+  text-shadow: none;
+  border: none; }
+
+.reveal .roll span:after {
+  color: #fff;
+  background: #068ee9; }
+
+/*********************************************
+ * IMAGES
+ *********************************************/
+.reveal section img {
+  margin: 15px 0;
+  /*background: rgba(255, 255, 255, 0.12);*/
+  /*border: 4px solid #fff;*/
+  /*box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);*/ }
+
+.reveal a img {
+  -webkit-transition: all 0.15s linear;
+  -moz-transition: all 0.15s linear;
+  transition: all 0.15s linear; }
+
+.reveal a:hover img {
+  background: rgba(255, 255, 255, 0.2);
+  border-color: #42affa;
+  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
+
+/*********************************************
+ * NAVIGATION CONTROLS
+ *********************************************/
+.reveal .controls div.navigate-left, .reveal .controls 
div.navigate-left.enabled {
+  border-right-color: #42affa; }
+
+.reveal .controls div.navigate-right, .reveal .controls 
div.navigate-right.enabled {
+  border-left-color: #42affa; }
+
+.reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled {
+  border-bottom-color: #42affa; }
+
+.reveal .controls div.navigate-down, .reveal .controls 
div.navigate-down.enabled {
+  border-top-color: #42affa; }
+
+.reveal .controls div.navigate-left.enabled:hover {
+  border-right-color: #8dcffc; }
+
+.reveal .controls div.navigate-right.enabled:hover {
+  border-left-color: #8dcffc; }
+
+.reveal .controls div.navigate-up.enabled:hover {
+  border-bottom-color: #8dcffc; }
+
+.reveal .controls div.navigate-down.enabled:hover {
+  border-top-color: #8dcffc; }
+
+/*********************************************
+ * PROGRESS BAR
+ *********************************************/
+.reveal .progress {
+  background: rgba(0, 0, 0, 0.2); }
+
+.reveal .progress span {
+  background: #42affa;
+  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
+  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
+  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
+
+/*********************************************
+ * SLIDE NUMBER
+ *********************************************/
+.reveal .slide-number {
+  color: #42affa; }
+
+/*********************************************
+ * GENERAL PURPOSE COLORS
+ *********************************************/
+
+.reveal .red {
+  color: red;
+}
+
+.reveal .orange {
+  color: orange;
+}
+
+.reveal .yellow {
+  color: yellow;
+}
+
+.reveal .green {
+  color: green;
+}
+
+/*********************************************
+ * C3JS Charts
+ *********************************************/
+
+.c3 {
+  fill: white;  }
+
+.c3 line, .c3 path {
+  stroke: white !important; }
+
+/*********************************************
+ * Custom styling of individual charts
+ *********************************************/
+
+#most-significant-barriers .c3-shape .c3-shape-2 .c3-bar .c3-bar-2 {
+  color: red;
+}
+
+/*********************************************
+ * Footer and Header
+ *********************************************/
+
+.header {
+  position:relative;
+}
+/*.header .left {
+  position:absolute;
+  top: 5px;
+  left: 5px;
+  width: 196px;
+  height: 100px;
+  background-image: url("../../../images/logo-building-iot.png");
+}*/
+.header .right {
+  position:absolute;
+  top: 5px;
+  right: 5px;
+  width: 246px;
+  height: 100px;
+  background-image: url("../../../images/logo-apache.png");
+}
+
+.footer {
+  position:relative;
+}
+/*.footer .left {
+  position:absolute;
+  bottom: 5px;
+  left: 5px;
+  width: 392px;
+  height: 50px;
+  background-image: url("../../../images/logo-company.png");
+}
+.footer .right {
+  position:absolute;
+  bottom: 5px;
+  right: 5px;
+  width: 306px;
+  height: 100px;
+  background-image: url("../../../images/logo-training.png");
+}*/
+
+/*********************************************
+ * Add the ability to split into two columns
+ *********************************************/
+
+.reveal .west {
+  position: fixed;
+  left: 5%;
+}
+
+.reveal .east {
+  position: fixed;
+  right: 5%;
+}
+
+

Reply via email to