You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@incubator.apache.org by jm...@apache.org on 2022/09/20 08:00:41 UTC
[incubator] 15/46: - Updated all plugins to their latest versions - Updated the asciidoctor-maven-plugin from 2.0.0-RC1 to 2.2.0 - Updated revealjs-asciidoctor from 3.1.0 to 4.0.1
This is an automated email from the ASF dual-hosted git repository.
jmclean pushed a commit to branch ApacheConSlides
in repository https://gitbox.apache.org/repos/asf/incubator.git
commit bac64cc61622f3bd34e1e5d5d1422f7ffd6b4866
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Wed Mar 24 13:15:03 2021 +0100
- Updated all plugins to their latest versions
- Updated the asciidoctor-maven-plugin from 2.0.0-RC1 to 2.2.0
- Updated revealjs-asciidoctor from 3.1.0 to 4.0.1
---
content/ApacheCon/pom.xml | 2 +-
tools/content-parent-pom/pom.xml | 806 +++++++++++----------
.../src/main/resources/document.html.slim | 383 +++++-----
3 files changed, 610 insertions(+), 581 deletions(-)
diff --git a/content/ApacheCon/pom.xml b/content/ApacheCon/pom.xml
index 89cfcceb..374e7bd0 100644
--- a/content/ApacheCon/pom.xml
+++ b/content/ApacheCon/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.training</groupId>
<artifactId>content-parent-pom</artifactId>
- <version>1.0.0</version>
+ <version>1.1.0-SNAPSHOT</version>
<relativePath/>
</parent>
diff --git a/tools/content-parent-pom/pom.xml b/tools/content-parent-pom/pom.xml
index 6a3216e9..bdf3f5b6 100644
--- a/tools/content-parent-pom/pom.xml
+++ b/tools/content-parent-pom/pom.xml
@@ -17,426 +17,438 @@
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>
+<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.training</groupId>
- <artifactId>training-tools</artifactId>
+ <parent>
+ <groupId>org.apache.training</groupId>
+ <artifactId>training-tools</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>content-parent-pom</artifactId>
<version>1.1.0-SNAPSHOT</version>
- </parent>
+ <packaging>pom</packaging>
- <artifactId>content-parent-pom</artifactId>
- <version>1.1.0-SNAPSHOT</version>
- <packaging>pom</packaging>
+ <name>Training: Tools: Content Master Pom</name>
+ <description>
+ Parent pom containing all the configuration for building presentations
+ with the training template.
+ </description>
- <name>Training: Tools: Content Master Pom</name>
- <description>
- Parent pom containing all the configuration for building presentations
- with the training template.
- </description>
+ <properties>
+ <project.main.contentfile>index</project.main.contentfile>
+ <!-- Put your custom theme files in src/main/theme and reference the name (without ".css") here. -->
+ <project.main.theme>apache</project.main.theme>
+ <project.slides.directory>${project.build.directory}/generated-slides</project.slides.directory>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <properties>
- <project.main.contentfile>index</project.main.contentfile>
- <!-- Put your custom theme files in src/main/theme and reference the name (without ".css") here. -->
- <project.main.theme>apache</project.main.theme>
- <project.slides.directory>${project.build.directory}/generated-slides</project.slides.directory>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java.version>1.8</java.version>
- <java.version>1.8</java.version>
+ <asciidoctorj.version>2.2.0</asciidoctorj.version>
+ <asciidoctorj-revealjs.version>4.0.1</asciidoctorj-revealjs.version>
+ <asciidoctorj.diagram.version>2.1.0</asciidoctorj.diagram.version>
+ <asciidoctorj.extensions-lab.version>1.0.0</asciidoctorj.extensions-lab.version>
- <asciidoctor.maven.plugin.version>2.0.0-RC.1</asciidoctor.maven.plugin.version>
- <asciidoctorj.version>2.2.0</asciidoctorj.version>
- <asciidoctorj.diagram.version>2.0.0</asciidoctorj.diagram.version>
- <asciidoctorj.extensions-lab.version>1.0.0</asciidoctorj.extensions-lab.version>
- <revealjs.version>3.9.2</revealjs.version>
- <asciidoctor-revealjs.version>3.1.0</asciidoctor-revealjs.version>
+ <revealjs.version>3.9.2</revealjs.version>
+ <asciidoctor-revealjs.version>3.1.0</asciidoctor-revealjs.version>
- <copy-rename-maven-plugin.version>1.0.1</copy-rename-maven-plugin.version>
- <download-maven-plugin.version>1.6.0</download-maven-plugin.version>
- <jetty-maven-plugin.version>9.4.30.v20200611</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>
+ <asciidoctor-maven-plugin.version>2.1.0</asciidoctor-maven-plugin.version>
+ <copy-rename-maven-plugin.version>1.0.1</copy-rename-maven-plugin.version>
+ <download-maven-plugin.version>1.6.1</download-maven-plugin.version>
+ <groovy-maven-plugin.version>2.1.1</groovy-maven-plugin.version>
+ <jetty-maven-plugin.version>9.4.30.v20200611</jetty-maven-plugin.version>
+ <maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
+ <maven-war-plugin.version>3.2.2</maven-war-plugin.version>
+ <maven-dependency-plugin.version>3.1.2</maven-dependency-plugin.version>
+ </properties>
- <dependencies>
- <!-- Just to ensure this is built first as we need this to exist in order to unpack it -->
- <dependency>
- <groupId>org.apache.training</groupId>
- <artifactId>content-parent-resources</artifactId>
- <version>1.1.0-SNAPSHOT</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
+ <dependencies>
+ <!-- Just to ensure this is built first as we need this to exist in order to unpack it -->
+ <dependency>
+ <groupId>org.apache.training</groupId>
+ <artifactId>content-parent-resources</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.asciidoctor</groupId>
+ <artifactId>asciidoctorj-revealjs</artifactId>
+ <version>${asciidoctorj-revealjs.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
- <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 modified 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>
+ <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 modified 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>
+ <!-- Eclipse related files -->
+ <exclude>**/.project</exclude>
+ <exclude>**/.settings/**</exclude>
+ <exclude>**/.classpath</exclude>
- <!-- IntelliJ related files -->
- <exclude>**/.idea/**</exclude>
- <exclude>**/*.iml</exclude>
+ <!-- IntelliJ related files -->
+ <exclude>**/.idea/**</exclude>
+ <exclude>**/*.iml</exclude>
- <!-- Asciidoctor generated files -->
- <exclude>**/.asciidoctor/**</exclude>
+ <!-- Asciidoctor generated files -->
+ <exclude>**/.asciidoctor/**</exclude>
- <!-- JSON doesn't like comments -->
- <exclude>**/*.json</exclude>
- <!-- Mermaid does't like comments -->
- <exclude>**/*.mmd</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>
+ <!-- Output of the profiler maven extension -->
+ <exclude>**/.profiler/**</exclude>
- <exclude>licenses/**</exclude>
- <exclude>README.md</exclude>
- </excludes>
- </configuration>
- </plugin>
+ <exclude>licenses/**</exclude>
+ <exclude>README.md</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
- <!-- Download all the tools needed to generate the output -->
- <plugin>
- <groupId>com.googlecode.maven-download-plugin</groupId>
- <artifactId>download-maven-plugin</artifactId>
- <version>${download-maven-plugin.version}</version>
- <executions>
- <!-- Get the asciidoctor revealjs module -->
- <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>
- <!-- Get the reveal js sources -->
- <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>
- <!-- Download the C3 and D3 libraries -->
- <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>
+ <!-- Download all the tools needed to generate the output -->
+ <plugin>
+ <groupId>com.googlecode.maven-download-plugin</groupId>
+ <artifactId>download-maven-plugin</artifactId>
+ <version>${download-maven-plugin.version}</version>
+ <executions>
+ <!-- Get the reveal js sources -->
+ <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>
+ <!-- Download the C3 and D3 libraries -->
+ <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>
- <!--
- Make sure the filtered resources are output to the slides directory and
- theme content is output to the themes directory of reveal js.
- -->
- <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>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
+ <!--
+ Make sure the filtered resources are output to the slides directory and
+ theme content is output to the themes directory of reveal js.
+ -->
+ <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>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
- <!-- Get some static Apache resources shared throughout all presentations -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>3.1.1</version>
- <executions>
- <execution>
- <id>copy-training-asciidoc-resources</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>unpack</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.apache.training</groupId>
- <artifactId>content-parent-resources</artifactId>
- <type>jar</type>
- <overWrite>true</overWrite>
- <outputDirectory>
- ${project.build.directory}/asciidoctor-reveal.js-${asciidoctor-revealjs.version}/templates
- </outputDirectory>
- <includes>*.slim</includes>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- <execution>
- <id>copy-training-presentation-themes</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>unpack</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.apache.training</groupId>
- <artifactId>content-parent-resources</artifactId>
- <type>jar</type>
- <outputDirectory>${project.slides.directory}/reveal.js-${revealjs.version}/css/theme
- </outputDirectory>
- <includes>*.css</includes>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- <execution>
- <id>copy-training-presentation-resources</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>unpack</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.apache.training</groupId>
- <artifactId>content-parent-resources</artifactId>
- <type>jar</type>
- <outputDirectory>${project.slides.directory}/images</outputDirectory>
- <excludes>*.slim,*.css,META-INF/**</excludes>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- </executions>
- </plugin>
+ <!-- Get some static Apache resources shared throughout all presentations -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>${maven-dependency-plugin.version}</version>
+ <executions>
+ <execution>
+ <id>copy-asciidoctor-revealjs-remplates</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.asciidoctor</groupId>
+ <artifactId>asciidoctorj-revealjs</artifactId>
+ <type>jar</type>
+ <overWrite>true</overWrite>
+ <outputDirectory>${project.build.directory}/asciidoctorj-revealjs-${asciidoctorj-revealjs.version}</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ <!-- Update the document.html.slim with an updated one as currently the docinfo part seems to not work -->
+ <execution>
+ <id>copy-asciidoctor-apache-training-resources</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.apache.training</groupId>
+ <artifactId>content-parent-resources</artifactId>
+ <type>jar</type>
+ <overWrite>true</overWrite>
+ <outputDirectory>${project.build.directory}/asciidoctorj-revealjs-${asciidoctorj-revealjs.version}/gems/asciidoctor-revealjs-${asciidoctorj-revealjs.version}/templates</outputDirectory>
+ <includes>*.slim</includes>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-training-presentation-themes</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.apache.training</groupId>
+ <artifactId>content-parent-resources</artifactId>
+ <type>jar</type>
+ <outputDirectory>${project.slides.directory}/reveal.js-${revealjs.version}/css/theme
+ </outputDirectory>
+ <includes>*.css</includes>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-training-presentation-resources</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.apache.training</groupId>
+ <artifactId>content-parent-resources</artifactId>
+ <type>jar</type>
+ <outputDirectory>${project.slides.directory}/images</outputDirectory>
+ <excludes>*.slim,*.css,META-INF/**</excludes>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
- <!-- Configure the asciidoctor generation -->
- <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>${project.main.theme}</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>
+ <!-- Configure the asciidoctor generation -->
+ <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>
+ <backend>revealjs</backend>
+ <requires>
+ <require>asciidoctor-revealjs</require>
+ <require>asciidoctor-diagram</require>
+ </requires>
+ <!-- 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>
+ <templateDirs>
+ <templateDir>${project.build.directory}/asciidoctorj-revealjs-${asciidoctorj-revealjs.version}/gems/asciidoctor-revealjs-${asciidoctorj-revealjs.version}/templates</templateDir>
+ </templateDirs>
+ <attributes>
+ <revealjsdir>reveal.js-${revealjs.version}</revealjsdir>
+ <!-- All image resources will be located in this directory -->
+ <imagesdir>images</imagesdir>
+ <docinfodir>${project.basedir}/src/main/asciidoc</docinfodir>
+ <!--
+ 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>${project.main.theme}</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-revealjs</artifactId>
+ <version>${asciidoctorj-revealjs.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.asciidoctor</groupId>
+ <artifactId>asciidoctorj-diagram</artifactId>
+ <version>${asciidoctorj.diagram.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
- <!--
- As it's the "revealjs" output, asciidoctor will name the file with an ending "revealjs".
- Here we rename that file back to "html".
- -->
- <plugin>
- <groupId>org.codehaus.gmaven</groupId>
- <artifactId>groovy-maven-plugin</artifactId>
- <version>2.1.1</version>
- <executions>
- <!-- Set some dynamic variables which are useful for the site generation -->
- <execution>
- <id>rename-revealjs-files</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>execute</goal>
- </goals>
- <configuration>
- <source>
- import static groovy.io.FileType.FILES
+ <!--
+ As it's the "revealjs" output, asciidoctor will name the file with an ending "revealjs".
+ Here we rename that file back to "html".
+ -->
+ <plugin>
+ <groupId>org.codehaus.gmaven</groupId>
+ <artifactId>groovy-maven-plugin</artifactId>
+ <version>${groovy-maven-plugin.version}</version>
+ <executions>
+ <!-- Set some dynamic variables which are useful for the site generation -->
+ <execution>
+ <id>rename-revealjs-files</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source>
+ import static groovy.io.FileType.FILES
- println "\nRenaming output files:"
- def baseDirectory = project.model.pomFile.parent
- def slideOutputDirectory = new File(baseDirectory, "target/generated-slides")
- if (slideOutputDirectory.exists()) {
- slideOutputDirectory.eachFileRecurse(FILES) {
- if (it.name.endsWith('.revealjs')) {
- def oldFileName = it.name
- def newFileName = oldFileName.substring(0, oldFileName.lastIndexOf(".")) + ".html"
- it.renameTo(new File(it.parent, newFileName))
- println "Renaming " + oldFileName + " to " + newFileName
- }
- }
- println ""
- }
- </source>
- </configuration>
- </execution>
- </executions>
- </plugin>
+ println "\nRenaming output files:"
+ def baseDirectory = project.model.pomFile.parent
+ def slideOutputDirectory = new File(baseDirectory, "target/generated-slides")
+ if (slideOutputDirectory.exists()) {
+ slideOutputDirectory.eachFileRecurse(FILES) {
+ if (it.name.endsWith('.revealjs')) {
+ def oldFileName = it.name
+ def newFileName = oldFileName.substring(0, oldFileName.lastIndexOf(".")) + ".html"
+ it.renameTo(new File(it.parent, newFileName))
+ println "Renaming " + oldFileName + " to " + newFileName
+ }
+ }
+ println ""
+ }
+ </source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
- <!-- If the packaging is se to "war", pack the slides into a war file -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>3.2.2</version>
- <configuration>
- <failOnMissingWebXml>false</failOnMissingWebXml>
- <warSourceDirectory>${project.slides.directory}</warSourceDirectory>
- </configuration>
- </plugin>
- </plugins>
+ <!-- If the packaging is se to "war", pack the slides into a war file -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>${maven-war-plugin.version}</version>
+ <configuration>
+ <failOnMissingWebXml>false</failOnMissingWebXml>
+ <warSourceDirectory>${project.slides.directory}</warSourceDirectory>
+ </configuration>
+ </plugin>
+ </plugins>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>${java.version}</source>
- <target>${java.version}</target>
- <testSource>${java.version}</testSource>
- <testTarget>${java.version}</testTarget>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-maven-plugin</artifactId>
- <version>${jetty-maven-plugin.version}</version>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>${java.version}</source>
+ <target>${java.version}</target>
+ <testSource>${java.version}</testSource>
+ <testTarget>${java.version}</testTarget>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>${jetty-maven-plugin.version}</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
</project>
diff --git a/tools/content-parent-resources/src/main/resources/document.html.slim b/tools/content-parent-resources/src/main/resources/document.html.slim
index 11329bbf..878bd763 100644
--- a/tools/content-parent-resources/src/main/resources/document.html.slim
+++ b/tools/content-parent-resources/src/main/resources/document.html.slim
@@ -2,6 +2,10 @@ 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
@@ -13,11 +17,9 @@ html lang=(attr :lang, 'en' unless attr? :nolang)
- if attr? key
meta name=key content=(attr key)
- linkcss = (attr? 'linkcss')
- 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"
+ link rel="stylesheet" href="#{revealjsdir}/css/reset.css"
+ link rel="stylesheet" href="#{revealjsdir}/css/reveal.css"
+
/ START ADDED For Apache Training
/ Start adding c3, d3
link href="css/c3.min.css" rel="stylesheet"
@@ -25,23 +27,29 @@ html lang=(attr :lang, 'en' unless attr? :nolang)
script src="js/c3.min.js"
/ End adding c3, d3
/ END ADDED For Apache Training
+
/ 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
+ link rel='stylesheet' href=(attr :revealjs_customtheme, %(#{revealjsdir}/css/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'
- link rel='stylesheet' href=(attr 'iconfont-cdn', %(#{cdn_base}/font-awesome/5.12.0-1/css/all.min.css))
- link rel='stylesheet' href=(attr 'iconfont-cdn', %(#{cdn_base}/font-awesome/5.12.0-1/css/v4-shims.min.css))
+ - 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)
- if attr? :stem
- eqnums_val = (attr 'eqnums', 'none')
- eqnums_val = 'AMS' if eqnums_val == ''
- eqnums_opt = %( equationNumbers: { autoNumber: "#{eqnums_val}" } )
+ - mathjaxdir = (attr 'mathjaxdir', "#{cdn_base}/mathjax/2.7.6")
script type='text/x-mathjax-config'
| MathJax.Hub.Config({
tex2jax: {
@@ -55,24 +63,24 @@ html lang=(attr :lang, 'en' unless attr? :nolang)
},
TeX: {#{eqnums_opt}}
});
- script src='#{cdn_base}/mathjax/2.4.0/MathJax.js?config=TeX-MML-AM_HTMLorMML'
+ script src='#{mathjaxdir}/MathJax.js?config=TeX-MML-AM_HTMLorMML'
- 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 the query includes 'print-pdf', use the PDF print sheet
+
+ /! Printing and PDF exports
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
+ 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 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
@@ -82,181 +90,190 @@ html lang=(attr :lang, 'en' unless attr? :nolang)
.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-opacity=(attr "background-opacity")
- 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
- h1=@header.title
- - 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
+ - unless noheader
+ - unless (_docinfo = docinfo :header, '-revealjs.html').empty?
+ = _docinfo
+ - if header?
+ include title_slide.html.slim
+ = content
+ - unless (_docinfo = docinfo :footer, '-revealjs.html').empty?
+ = _docinfo
/ START ADDED For Apache Training
.footer
.left
.right
/ END ADDED For Apache Training
- script src="#{revealjsdir}/lib/js/head.min.js"
script src="#{revealjsdir}/js/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';
- }
- })
+ 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'}',
- // 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},
- // 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},
- // 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},
- // 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},
- // 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)}
+ ],
- // 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', '')) : ""}
- #{(attr? 'revealjs_plugins_configuration') ? File.read(attr('revealjs_plugins_configuration', '')) : ""}
+ });
+ / 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: '/'
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@incubator.apache.org
For additional commands, e-mail: cvs-help@incubator.apache.org