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:56 UTC

[incubator] 30/46: chore(website): Added a first version of a training-skin (with integration-test)

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 140a33a8d6e5119046271941f3036a70ff24614c
Author: cdutz <ch...@c-ware.de>
AuthorDate: Mon Apr 11 11:46:27 2022 +0200

    chore(website): Added a first version of a training-skin (with integration-test)
---
 NOTICE                                             |   6 +
 pom.xml                                            |   1 +
 website-skin/pom.xml                               | 440 ++++++++++
 website-skin/src/it/settings.xml                   |  53 ++
 website-skin/src/it/training-website/pom.xml       | 184 ++++
 .../src/site/asciidoc/apache/index.adoc            |  21 +
 .../site/asciidoc/developers/building-website.adoc |  71 ++
 .../src/site/asciidoc/developers/ci.adoc           |  33 +
 .../src/site/asciidoc/developers/contributing.adoc |  93 ++
 .../src/site/asciidoc/developers/decisions.adoc    |  66 ++
 .../src/site/asciidoc/developers/index.adoc        |  21 +
 .../src/site/asciidoc/developers/issues.adoc       |  20 +
 .../site/asciidoc/developers/releasing-tools.adoc  | 128 +++
 .../src/site/asciidoc/developers/team.adoc         |  79 ++
 .../src/site/asciidoc/developers/website.adoc      | 159 ++++
 .../src/site/asciidoc/developers/wiki.adoc         |  20 +
 .../training-website/src/site/asciidoc/index.adoc  |  73 ++
 .../src/site/asciidoc/users/downloads.adoc         |  35 +
 .../src/site/asciidoc/users/index.adoc             |  85 ++
 .../site/resources/images/apache_training_logo.png | Bin 0 -> 24590 bytes
 .../contributing-github-create-pull-request.png    | Bin 0 -> 112177 bytes
 .../resources/images/contributing-github-fork.png  | Bin 0 -> 96553 bytes
 .../src/site/resources/images/team/abennett.png    | Bin 0 -> 36096 bytes
 .../src/site/resources/images/team/cdutz.png       | Bin 0 -> 27791 bytes
 .../src/site/resources/images/team/dpavlov.png     | Bin 0 -> 50312 bytes
 .../src/site/resources/images/team/jmclean.jpg     | Bin 0 -> 62175 bytes
 .../src/site/resources/images/team/larsfrancke.jpg | Bin 0 -> 15601 bytes
 .../site/resources/images/team/soenkeliebau.jpg    | Bin 0 -> 25941 bytes
 .../src/site/resources/images/training-logo.svg    | 152 ++++
 .../src/it/training-website/src/site/site.xml      |  77 ++
 .../main/resources/META-INF/maven/site-macros.vm   | 475 +++++++++++
 .../src/main/resources/META-INF/maven/site.vm      | 154 ++++
 .../src/main/resources/META-INF/maven/skin.xml     |  25 +
 website-skin/src/main/resources/css/maven-base.css | 168 ++++
 .../src/main/resources/css/maven-theme.css         | 155 ++++
 website-skin/src/main/resources/css/print.css      |  26 +
 .../src/main/resources/css/themes/training.css     | 945 +++++++++++++++++++++
 .../src/main/resources/images/expanded.gif         | Bin 0 -> 52 bytes
 .../src/main/resources/images/external.png         | Bin 0 -> 230 bytes
 .../src/main/resources/images/icon_error_sml.gif   | Bin 0 -> 1010 bytes
 .../src/main/resources/images/icon_info_sml.gif    | Bin 0 -> 606 bytes
 .../src/main/resources/images/icon_success_sml.gif | Bin 0 -> 990 bytes
 .../src/main/resources/images/icon_warning_sml.gif | Bin 0 -> 576 bytes
 .../src/main/resources/images/maven-feather.png    | Bin 0 -> 3581 bytes
 .../src/main/resources/images/newwindow.png        | Bin 0 -> 220 bytes
 45 files changed, 3765 insertions(+)

diff --git a/NOTICE b/NOTICE
index 6537f869..e61d7e34 100644
--- a/NOTICE
+++ b/NOTICE
@@ -4,6 +4,12 @@ Copyright 2019 The Apache Software Foundation
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 
+-------------------
+
+The content in tools/website-skin was copied and adapted from the Apache PLC4X project
+
+-------------------
+
 The content/Github/Challenges/workflow-basics.svg file contains images generated
 with https://myoctocat.com/ with explicit permission from GitHub to be used as
 part of Apache Training.
diff --git a/pom.xml b/pom.xml
index 85584a82..d13433f8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,6 +40,7 @@
     <module>site</module>
     <module>tools</module>
     <module>content</module>
+    <module>website-skin</module>
   </modules>
 
 </project>
diff --git a/website-skin/pom.xml b/website-skin/pom.xml
new file mode 100644
index 00000000..d1ac17cc
--- /dev/null
+++ b/website-skin/pom.xml
@@ -0,0 +1,440 @@
+<?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>25</version>
+
+    <!-- Required in our case as per https://maven.apache.org/ref/3.0.3/maven-model/maven.html#class_parent -->
+    <relativePath />
+  </parent>
+
+  <groupId>org.apache.training</groupId>
+  <artifactId>training-website-skin</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+
+  <name>Training: Tools: Website Skin</name>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.build.outputTimestamp>1</project.build.outputTimestamp>
+
+    <bootstrap.version>4.6.1</bootstrap.version>
+    <proper.version>1.16.0</proper.version>
+    <jquery.version>3.6.0</jquery.version>
+    <fontawesome.version>6.1.1</fontawesome.version>
+  </properties>
+
+  <build>
+    <plugins>
+      <!--
+        Download Bootstrap and Fontawesome.
+      -->
+      <plugin>
+        <groupId>com.googlecode.maven-download-plugin</groupId>
+        <artifactId>download-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>get-bootstrap</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>wget</goal>
+            </goals>
+            <configuration>
+              <url>https://github.com/twbs/bootstrap/releases/download/v${bootstrap.version}/bootstrap-${bootstrap.version}-dist.zip</url>
+              <unpack>true</unpack>
+              <outputDirectory>${project.build.directory}/dependency/bootstrap</outputDirectory>
+            </configuration>
+          </execution>
+          <execution>
+            <id>get-propper</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>wget</goal>
+            </goals>
+            <configuration>
+              <url>https://github.com/popperjs/popper.js/archive/v${proper.version}.zip</url>
+              <unpack>true</unpack>
+              <outputDirectory>${project.build.directory}/dependency/popper</outputDirectory>
+            </configuration>
+          </execution>
+          <execution>
+            <id>get-fontawesome</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>wget</goal>
+            </goals>
+            <configuration>
+              <url>https://use.fontawesome.com/releases/v${fontawesome.version}/fontawesome-free-${fontawesome.version}-web.zip</url>
+              <unpack>true</unpack>
+              <outputDirectory>${project.build.directory}/dependency/fontawesome</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>get-jquery</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>unpack</goal>
+            </goals>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>org.webjars</groupId>
+                  <artifactId>jquery</artifactId>
+                  <version>${jquery.version}</version>
+                  <type>jar</type>
+                </artifactItem>
+              </artifactItems>
+              <outputDirectory>${project.build.directory}/dependency/jquery</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <!--
+        Copy stuff from the downloaded bootstrap and fontawesome packages and hereby
+        assemble a local distribution customized to our needs.
+      -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>copy-site-resources</id>
+            <phase>process-resources</phase>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.build.outputDirectory}</outputDirectory>
+              <resources>
+                <resource>
+                  <directory>${project.build.directory}/dependency/bootstrap/bootstrap-${bootstrap.version}-dist</directory>
+                  <includes>
+                    <include>css/*</include>
+                  </includes>
+                </resource>
+                <resource>
+                  <directory>${project.build.directory}/dependency/bootstrap/bootstrap-${bootstrap.version}-dist</directory>
+                  <includes>
+                    <include>js/*</include>
+                  </includes>
+                </resource>
+                <resource>
+                  <directory>
+                    ${project.build.directory}/dependency/fontawesome/fontawesome-free-${fontawesome.version}-web
+                  </directory>
+                  <includes>
+                    <include>css/all.min.css</include>
+                  </includes>
+                </resource>
+                <resource>
+                  <directory>
+                    ${project.build.directory}/dependency/fontawesome/fontawesome-free-${fontawesome.version}-web/webfonts
+                  </directory>
+                  <targetPath>fonts</targetPath>
+                </resource>
+                <resource>
+                  <directory>
+                    ${project.build.directory}/dependency/jquery/META-INF/resources/webjars/jquery/${jquery.version}
+                  </directory>
+                  <targetPath>js</targetPath>
+                </resource>
+                <resource>
+                  <directory>
+                    ${project.build.directory}/dependency/popper/floating-ui-${proper.version}/dist/umd
+                  </directory>
+                  <targetPath>js</targetPath>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+        <!--configuration>
+          <delimiters>
+            <delimiter>@</delimiter>
+          </delimiters>
+          <useDefaultDelimiters>false</useDefaultDelimiters>
+        </configuration-->
+      </plugin>
+
+      <!--
+        The bootstrap uses "fonts" as directory for locating fonts and fontawesome uses "webfonts".
+        This plugin updates the css to also use "fonts".
+      -->
+      <plugin>
+        <groupId>com.google.code.maven-replacer-plugin</groupId>
+        <artifactId>replacer</artifactId>
+        <executions>
+          <execution>
+            <id>streamline-font-urls</id>
+            <!-- Only execute this for the parent module -->
+            <inherited>false</inherited>
+            <phase>process-resources</phase>
+            <goals>
+              <goal>replace</goal>
+            </goals>
+            <configuration>
+              <file>${project.build.outputDirectory}/css/all.min.css</file>
+              <replacements>
+                <replacement>
+                  <token>../webfonts/</token>
+                  <value>../fonts/</value>
+                </replacement>
+              </replacements>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-clean-plugin</artifactId>
+          <version>3.2.0</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-dependency-plugin</artifactId>
+          <version>3.3.0</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-site-plugin</artifactId>
+          <version>3.11.0</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-invoker-plugin</artifactId>
+          <version>3.2.2</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-resources-plugin</artifactId>
+          <version>3.2.0</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>3.10.1</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>3.0.0-M6</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>3.2.2</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-install-plugin</artifactId>
+          <version>3.0.0-M1</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-deploy-plugin</artifactId>
+          <version>3.0.0-M2</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-assembly-plugin</artifactId>
+          <version>3.3.0</version>
+          <configuration>
+            <finalName>apache-training-incubating-site-skin-${project.version}</finalName>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>com.googlecode.maven-download-plugin</groupId>
+          <artifactId>download-maven-plugin</artifactId>
+          <version>1.6.8</version>
+        </plugin>
+        <plugin>
+          <groupId>com.google.code.maven-replacer-plugin</groupId>
+          <artifactId>replacer</artifactId>
+          <version>1.5.3</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>run-its</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-invoker-plugin</artifactId>
+            <configuration>
+              <debug>true</debug>
+              <projectsDirectory>src/it</projectsDirectory>
+              <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+              <preBuildHookScript>setup</preBuildHookScript>
+              <postBuildHookScript>verify</postBuildHookScript>
+              <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
+              <settingsFile>src/it/settings.xml</settingsFile>
+              <pomIncludes>
+                <pomInclude>*/pom.xml</pomInclude>
+              </pomIncludes>
+              <goals>
+                <goal>site</goal>
+              </goals>
+            </configuration>
+            <executions>
+              <execution>
+                <id>integration-test</id>
+                <goals>
+                  <goal>install</goal>
+                  <goal>integration-test</goal>
+                  <goal>verify</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
+    <profile>
+      <id>minify</id>
+      <build>
+        <resources>
+          <!-- exclude css and js since will include the minified version -->
+          <resource>
+            <directory>${basedir}/src/main/resources</directory>
+            <excludes>
+              <exclude>css/**</exclude>
+              <exclude>js/**</exclude>
+            </excludes>
+            <filtering>true</filtering> <!-- add skin-info -->
+          </resource>
+
+          <!-- include the print.css -->
+          <resource>
+            <directory>${basedir}/src/main/resources</directory>
+            <includes>
+              <include>css/print.css</include>
+            </includes>
+          </resource>
+
+          <!-- include minified only -->
+          <resource>
+            <directory>${project.build.directory}/${project.build.finalName}</directory>
+            <includes>
+              <include>css/training-site-skin-${project.version}.min.css</include>
+              <include>js/training-site-skin-${project.version}.min.js</include>
+            </includes>
+          </resource>
+        </resources>
+
+        <plugins>
+          <plugin>
+            <groupId>com.samaxes.maven</groupId>
+            <artifactId>maven-minify-plugin</artifactId>
+            <version>1.3.5.1</version>
+            <executions>
+              <execution>
+                <id>default-minify</id>
+                <phase>generate-resources</phase>
+                <goals>
+                  <goal>minify</goal>
+                </goals>
+                <configuration>
+                  <webappSourceDir>${basedir}/src/main/resources</webappSourceDir>
+                  <cssSourceDir>css</cssSourceDir>
+                  <cssSourceFiles>
+                    <cssSourceFile>maven-base.css</cssSourceFile>
+                    <cssSourceFile>maven-theme.css</cssSourceFile>
+                  </cssSourceFiles>
+                  <cssFinalFile>training-site-skin-${project.version}.css</cssFinalFile>
+                  <!--jsSourceDir>js</jsSourceDir>
+                  <jsSourceFiles>
+                    <jsSourceFile>fluido.js</jsSourceFile>
+                  </jsSourceFiles>
+                  <jsFinalFile>training-site-skin-${project.version}.js</jsFinalFile-->
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
+    <!--
+      This profile extends the default "apache-release" configuration with automatic checksum-
+      generation for the release source artifact. It is automatically activated during the
+      release build and only needed there.
+    -->
+    <profile>
+      <id>apache-release</id>
+      <build>
+        <plugins>
+          <!--
+            Create MD5 and SHA512 checksum files for the release artifacts.
+          -->
+          <plugin>
+            <groupId>net.nicoulaj.maven.plugins</groupId>
+            <artifactId>checksum-maven-plugin</artifactId>
+            <version>1.11</version>
+            <!-- Only run this in the root module of the project -->
+            <inherited>false</inherited>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>files</goal>
+                </goals>
+              </execution>
+            </executions>
+            <configuration>
+              <algorithms>
+                <algorithm>SHA-512</algorithm>
+              </algorithms>
+              <fileSets>
+                <fileSet>
+                  <directory>${project.build.directory}</directory>
+                  <includes>
+                    <include>apache-training-incubating-site-skin-${project.version}-source-release.zip</include>
+                  </includes>
+                </fileSet>
+              </fileSets>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+
+</project>
diff --git a/website-skin/src/it/settings.xml b/website-skin/src/it/settings.xml
new file mode 100644
index 00000000..1eaaf27f
--- /dev/null
+++ b/website-skin/src/it/settings.xml
@@ -0,0 +1,53 @@
+<?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.
+  -->
+<settings>
+  <profiles>
+    <profile>
+      <id>it-repo</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <repositories>
+        <repository>
+          <id>local.central</id>
+          <url>@localRepositoryUrl@</url>
+          <releases>
+            <enabled>true</enabled>
+          </releases>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </repository>
+      </repositories>
+      <pluginRepositories>
+        <pluginRepository>
+          <id>local.central</id>
+          <url>@localRepositoryUrl@</url>
+          <releases>
+            <enabled>true</enabled>
+          </releases>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </pluginRepository>
+      </pluginRepositories>
+    </profile>
+  </profiles>
+</settings>
diff --git a/website-skin/src/it/training-website/pom.xml b/website-skin/src/it/training-website/pom.xml
new file mode 100644
index 00000000..40a7ec29
--- /dev/null
+++ b/website-skin/src/it/training-website/pom.xml
@@ -0,0 +1,184 @@
+<?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>25</version>
+    <relativePath/>
+  </parent>
+
+  <groupId>org.apache.maven.skins.its</groupId>
+  <artifactId>test-training-website</artifactId>
+  <version>1.0-SNAPSHOT</version>
+
+  <name>@project.artifactId@ IT</name>
+  <description>Some description</description>
+  <url>https://training.apache.org</url>
+  <inceptionYear>2019</inceptionYear>
+  <organization>
+    <name>The Apache Software Foundation</name>
+    <url>https://www.apache.org/</url>
+  </organization>
+
+  <scm>
+    <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-training.git</connection>
+    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/incubator-training.git</developerConnection>
+    <url>https://github.com/apache/incubator-training</url>
+    <tag>HEAD</tag>
+  </scm>
+
+  <!-- Only configure the site distribution as the rest is handled by the apache parent -->
+  <distributionManagement>
+    <site>
+      <id>apache.website</id>
+      <url>scm:git:https://gitbox.apache.org/repos/asf/incubator-training.git</url>
+    </site>
+  </distributionManagement>
+
+  <issueManagement>
+    <system>Jira</system>
+    <url>https://issues.apache.org/jira/browse/TRAINING</url>
+  </issueManagement>
+
+  <mailingLists>
+    <mailingList>
+      <name>Apache Training (incubating) Developer List</name>
+      <subscribe>mailto:dev-subscribe@training.apache.org</subscribe>
+      <unsubscribe>mailto:dev-unsubscribe@training.apache.org</unsubscribe>
+      <post>mailto:dev@training.apache.org</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/training-dev/</archive>
+    </mailingList>
+    <mailingList>
+      <name>Apache Training (incubating) Commits List</name>
+      <subscribe>mailto:commit-subscribe@training.apache.org</subscribe>
+      <unsubscribe>mailto:commits-unsubscribe@training.apache.org</unsubscribe>
+      <post>mailto:commits@training.apache.org</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/training-commits/</archive>
+    </mailingList>
+    <mailingList>
+      <name>Apache Training (incubating) Jira Notifications List</name>
+      <subscribe>mailto:issues-subscribe@training.apache.org</subscribe>
+      <unsubscribe>mailto:issues-unsubscribe@training.apache.org</unsubscribe>
+      <post>mailto:issues@training.apache.org</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/training-issues/</archive>
+    </mailingList>
+  </mailingLists>
+
+  <properties>
+    <skinName>@project.name@</skinName>
+    <skinGroupId>@project.groupId@</skinGroupId>
+    <skinArtifactId>@project.artifactId@</skinArtifactId>
+    <skinVersion>@project.version@</skinVersion>
+    <!--
+      At least 3.3.3 required for camel-package-maven-plugin
+    -->
+    <maven.version>3.3.3</maven.version>
+    <java.version>1.8</java.version>
+
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputencoding>UTF-8</project.reporting.outputencoding>
+  </properties>
+
+  <build>
+    <plugins>
+      <!-- Configure the Site generation -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>3.9.1</version>
+        <configuration>
+          <!--templateFile>${session.executionRootDirectory}/src/site/template/site.vm</templateFile-->
+          <generateReports>true</generateReports>
+          <generateSitemap>true</generateSitemap>
+          <relativizeDecorationLinks>false</relativizeDecorationLinks>
+          <locales>en</locales>
+          <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
+          <outputEncoding>${project.reporting.outputencoding}</outputEncoding>
+          <!--
+            IntelliJ can't find the asciidoc config option in the site plugin, which is correct.
+            However, this config section is used by the asciidoctor site plugin extension. So plead
+            ignore this error, it's actually ok.
+          -->
+          <asciidoc>
+            <attributes>
+              <source-highlighter>prettify</source-highlighter>
+              <imagesoutdir>${project.build.directory}/site/images</imagesoutdir>
+              <pom-adoc>${project.build.directory}/pom.adoc</pom-adoc>
+            </attributes>
+            <requires>
+              <require>asciidoctor-diagram</require>
+            </requires>
+          </asciidoc>
+        </configuration>
+        <dependencies>
+          <!-- Add support for asciidoctor -->
+          <dependency>
+            <groupId>org.asciidoctor</groupId>
+            <artifactId>asciidoctor-maven-plugin</artifactId>
+            <version>2.2.1</version>
+          </dependency>
+          <dependency>
+            <groupId>org.asciidoctor</groupId>
+            <artifactId>asciidoctorj</artifactId>
+            <version>2.5.3</version>
+          </dependency>
+          <dependency>
+            <groupId>org.asciidoctor</groupId>
+            <artifactId>asciidoctorj-diagram</artifactId>
+            <version>2.2.1</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+    </plugins>
+  </build>
+
+  <!-- Make Snapshots of Apache projects available -->
+  <repositories>
+    <repository>
+      <id>apache-snapshots</id>
+      <url>https://repository.apache.org/content/repositories/snapshots</url>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+
+  <!-- Make Snapshots of Apache plugins available -->
+  <pluginRepositories>
+    <pluginRepository>
+      <id>apache-snapshots</id>
+      <url>https://repository.apache.org/content/repositories/snapshots</url>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+    </pluginRepository>
+  </pluginRepositories>
+
+</project>
\ No newline at end of file
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/apache/index.adoc b/website-skin/src/it/training-website/src/site/asciidoc/apache/index.adoc
new file mode 100644
index 00000000..bdd4d1f3
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/apache/index.adoc
@@ -0,0 +1,21 @@
+//
+//  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.
+//
+:imagesdir: ../images/
+
+== Apache
+
+Some content ...
\ No newline at end of file
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/developers/building-website.adoc b/website-skin/src/it/training-website/src/site/asciidoc/developers/building-website.adoc
new file mode 100644
index 00000000..1e7d8672
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/developers/building-website.adoc
@@ -0,0 +1,71 @@
+//
+//  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.
+//
+
+== Building Training Website
+
+The Apache Training Website is built with `Apache Maven` and we have tried to make the build as simple as possible.
+
+For your convenience we also have provided a `Maven-Wrapper`, that should allow building with `Java 8` or greater as a requirement.
+
+=== Requirements
+
+The only requirements for building the Apache Training website should be:
+
+* Java 8 JDK (or newer)
+* Apache Maven (3.1.0 or newer) *(Optional)*
+
+=== Using the Maven-Wrapper
+
+The so-called `Maven-Wrapper` is used by calling the Maven-Wrapper scripts `mvnw` (Mac &amp; Linux) or `mvnw.cmd` (Windows) instead of the default Maven commands `mvn` and `mvn.cmd`.
+
+These helpers ensure Maven is available in at least the version defined in `.mvn/maven-wrapper.properties`.
+If no suitable version can be found, it is automatically downloaded and installed alongside the project (So it doesn't have to be downloaded every time and every project can have its own Maven version)
+
+After the script has ensured a suitable Maven version is available, this is used and all arguments and parameters are transparently forwarded to this.
+So simply adding the additional `w` to each of the Maven commands, there should be no difference to using a pre-installed Maven version.
+
+=== Using Maven
+
+This document can't provide you with all the details needed to get started with `Maven` itself.
+But there is a lot of good documentation out there.
+
+Justin Mclean and Christofer Dutz even recorded a not quite 2 hour Maven training Video some time ago for another Apache project.
+
+It should handle all the details needed to get a general understanding of Maven and how it works.
+
+.Recording of a Maven Training for Apache Flex from 2016
+video::167857327[vimeo,width=640,height=420]
+
+=== Building the Apache Training Website with Maven
+
+The Training Website is also part of the same GIT repository that contains the code and it is built by Maven as well.
+
+In order to build the website the following command should be sufficient:
+
+    mvn site
+
+However, this will generate the website for each module inside it's `target/site` directory.
+Opening this in a browser and navigating from pages of one module to another will not work as these links expect a different directory structure.
+In order to create a fully navigatable version of the Website, the following command should be sufficient:
+
+    mvn site site:stage
+
+This will generate an additional `target/staging` directory which contains the fully functional version.
+
+A lot of documentation on Maven suggests to use the `site:site` goal directly instead of calling the `site` phase, but in case of Apache Training there is more than just the site generation that has to be executed.
+
+This is just a quick-start version of the site generation, for fully detailed documentation please read the http://training.apache.org/developers/website.html[Website] documentation page.
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/developers/ci.adoc b/website-skin/src/it/training-website/src/site/asciidoc/developers/ci.adoc
new file mode 100644
index 00000000..fe1213eb
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/developers/ci.adoc
@@ -0,0 +1,33 @@
+//
+//  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.
+//
+:imagesdir: ../images/
+
+== Continuous Integration
+
+We are currently using only Apache Jenkins for building.
+
+- Apache's Jenkins at https://builds.apache.org/view/S-Z/view/Training%20(incubating)/
+
+Only build jobs on Apache's Jenkins are allowed to publish SNAPSHOT versions of the Maven artifacts to Apaches Nexus as well as auto publish generated websites to production.
+
+=== Structure of the Jenkins Pipeline build
+
+We are using the Jenkins `multi-branch pipeline plugin` to automatically setup build for branches based upon the build definition in the `Jenkinsfile` in the root of the project.
+
+In general, it decides between building the `master` branch and all others.
+
+When building `master` the build not only builds the project itself, it also deploys the generated site content to the `asf-site` branch which deploys the website.
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/developers/contributing.adoc b/website-skin/src/it/training-website/src/site/asciidoc/developers/contributing.adoc
new file mode 100644
index 00000000..f8a00657
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/developers/contributing.adoc
@@ -0,0 +1,93 @@
+//
+//  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.
+//
+:imagesdir: ../images/
+
+== Contributing
+
+=== Forms of contribution
+
+The Apache Training (Incubating) project welcomes contributions in all forms, sizes, and shapes.
+Below you can find a small list of possible ways that you can contribute if you have some spare time and want to get involved.
+
+This list is by no means finite. There are without doubt dozens of other useful ways that you can pick, please do not let this limit your creativity!
+
+- Adding to the webpage
+- Filing Bug-Reports
+- Converting donated materials
+- Active communication on our mailing lists
+- Promoting the project (articles, blog posts, talks at conferences)
+- Writing documentation
+
+=== Finding a Project
+If you want to get involved, but do not have a specific project in mind please feel free to check our issue tracker for https://issues.apache.org/jira/issues/?jql=project%20%3D%20TRAINING%20AND%20labels%20%3D%20beginner%20AND%20assignee%20in%20(EMPTY)[unassigned issues with the _beginner_ label]. These should be good candidates to get your feet wet and gather some experience before tackling larger issues.
+
+If nothing catches your eye and you come up with something that you want to work on by yourself, please do share your intent by either posting on the mailing list or creating an issue, as this allows us to limit duplication of effort as much as possible.
+
+=== Code Contributions
+Many of the actions listed above will take the form of contributions to the git repository, for which we have defined a few basic guidelines to ensure we can all collaborate effectively.
+Code contributions can take two forms, you can either create a pull request on GitHub or directly attach patch files to a Jira issue for review.
+
+A Jira ticket and a pull request are not mutually exclusive, and we encourage people to create both, first a Jira to discuss the issue, task, improvement in general and later on a pull request for actual implementation discussions.
+If you follow this process, please prefix the name of your pull request with the Jira issue number, this will ensure that they automatically get linked.
+If, for example, you open a pull request to fix issue TRAINING-123, then your PR title could read "_TRAINING-123: Fix stuff_".
+
+If you are not familiar with git, how to create pull requests and similar workflows, below is a list of useful links that should help you get started.
+However as with all other things, please do reach out to us on the mailing list if anything is unclear and you need help, we are more than happy to help!
+
+- https://help.github.com/en/articles/fork-a-repo[Forking a repository]
+- https://help.github.com/en/articles/about-branches[About branches]
+- https://help.github.com/en/articles/about-pull-requests[About pull requests]
+- https://lab.github.com/[Github Learning Lab]
+
+==== Review Process
+The Training project follows a review-then-commit (RTC) workflow for core modules such as the presentation framework, themes and stuff used by presentations, and a commit-then-review (CTR) model for content modules. 
+
+Review-then-commit means that no commit should be made to the repository that has not been reviewed and approved by the required number of persons. Where as, commit-then-review model allows for faster and simpler contribution of content to training project. CTR also applies if no one objects to a PR for first 72 hours.
+
+For reviews we distinguish between _content_ commits that add content to training decks and _functional_ commits like code changes to tools or similar things.
+
+*Code Commits* require one approving review.
+This review has to be done by a committer if the pull request was created by a non-committer. If a committer creates a pull request and explicitly requests a review from a non-committer, then this review is sufficient.
+
+*Content Commits* require one or more approving reviews. As we do not expect to initially have committers that are also experts in all fields for which we host content there may be a need for two reviews in this case: one for form by a committer and one for content by someone who considers themselves a subject matter expert.
+If the committer considers themselves to be an expert on the material one review is sufficient, just like for code commits.
+
+*Trivial Changes*
+Committers can, at their discretion, decide that a change is trivial and does not need to be explicitly approved.
+In this case, the pull request or Jira issue should be marked accordingly and left open for review for at least 72 hours.
+After this period has passed it can be merged without review.
+
+=== Issue Reports
+
+We use https://issues.apache.org/jira/projects/TRAINING[JIRA] as our Issue Tracker.
+
+Feel free to submit `feature requests`, `bug reports`, `patches`, `comment on issues`, ...
+
+In order to be able to do so, you need to create an account first.
+
+Currently, Apache has a separate login system for JIRA and all other services, this might change in the future, but right now it's the way things are.
+
+So if you are considering to contribute more than just a one-time-patch, please choose a username that hasn't been used by an existing http://people.apache.org/committer-index.html[Apache committer] as this will simplify things if we invite you to become part of the team.
+
+If you want to be assigned to an issue because you want to work on it, please request to be added to the JIRA groups on our http://training.apache.org/mailing-lists.html[developers mailing list]
+
+=== Documentation
+
+As our documentation and website are generated as a side-product of our build, contributing to this technically is the same as contributing to the code.
+
+All our content is written in Asciidoctor and is located in `src/site/asciidoc` directories. For a reference of the Asciidoctor syntax please have a look at the https://asciidoctor.org/docs/user-manual/#introduction-to-asciidoctor[Asciidoctor documentation].
+
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/developers/decisions.adoc b/website-skin/src/it/training-website/src/site/asciidoc/developers/decisions.adoc
new file mode 100644
index 00000000..002a88eb
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/developers/decisions.adoc
@@ -0,0 +1,66 @@
+//
+//  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.
+//
+:imagesdir: ../images/
+
+== Decision Making
+
+=== Introduction
+
+This document describes the roles and responsibilities of the project, who may vote, how voting works, how conflicts are resolved, etc.
+
+The https://www.apache.org/foundation/faq[Apache Foundation FAQ] and https://apache.org/foundation/how-it-works.html[How-It-Works] explain the operation and background of the foundation. Terms used are defined in the https://www.apache.org/foundation/glossary[ASF glossary].
+
+Apache has a http://www.apache.org/foundation/policies/conduct.html[code of conduct] that it expects its members to follow.
+
+=== Roles and Responsibilities
+
+Apache projects define a set of https://www.apache.org/foundation/how-it-works.html#roles[roles] with associated rights and responsibilities.
+
+==== Project Management Committee
+
+The http://www.apache.org/dev/pmc.html#what-is-a-pmc[PMC] has many https://www.apache.org/foundation/how-it-works.html#pmc[responsibilities] including complying with http://www.apache.org/dev/pmc.html#policy[ASF policies], https://www.apache.org/foundation/board/reporting[reporting to the board], https://www.apache.org/foundation/voting.html[approving releases] and adding new http://www.apache.org/dev/pmc.html#newcommitter[committers] and http://www.apache.org/dev/pmc.html#newpmc[PMC members].
+
+==== The Chair
+
+The http://www.apache.org/dev/pmc.html#chair[chair] ensures board reports are submitted and that the project's roster is up to date.
+
+=== Decision Making
+
+Different decisions require different forms of approval but community consensus is always the goal. Voting when needed should be open for http://www.apache.org/legal/release-policy.html#release-approval[at least 72 hours].
+
+- https://www.apache.org/foundation/glossary.html#ConsensusApproval[Consensus Approval] – Consensus approval requires 3 https://www.apache.org/foundation/voting.html#binding-votes[binding] +1 votes and no -1 votes (https://www.apache.org/foundation/glossary.html#Veto[vetoes]).
+- https://www.apache.org/foundation/glossary.html#MajorityApproval[Majority Approval] – requires at least 3 https://www.apache.org/foundation/voting.html#binding-votes[binding] +1 votes more +1 votes than -1 votes.
+- https://www.apache.org/foundation/glossary.html#LazyConsensus[Lazy Consensus] – consensus no objections (‘silence gives assent’).
+
+|===
+|Action                     |Who can vote |Approval           |Where to vote             |Board approval required
+|Code change                |Committer    |Lazy Consensus     |public dev or commit list |
+|Release                    |PMC          |Majority Approval  |public dev list           |
+|New committer              |PMC          |Consensus Approval |private list              |
+|New PMC member             |PMC          |Consensus Approval |private list              |Yes 1)
+|Existing committer removal |PMC          |Consensus Approval |private list              |
+|Existing PMC removal       |PMC          |Consensus Approval |private list              |Yes 2)
+|Change chair               |PMC          |Consensus Approval |private list              |Yes 3)
+|===
+
+1. http://www.apache.org/dev/pmc.html#notice_period[Notice] must be given to the board.
+2. Except for the PMC member in question. Only the board can http://www.apache.org/dev/pmc.html#pmc-removal[remove PMC members].
+3. Need to be http://www.apache.org/dev/pmc.html#newchair[approved by the board] at the next board meeting.
+
+
+
+
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/developers/index.adoc b/website-skin/src/it/training-website/src/site/asciidoc/developers/index.adoc
new file mode 100644
index 00000000..2841bf3e
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/developers/index.adoc
@@ -0,0 +1,21 @@
+//
+//  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.
+//
+:imagesdir: ../images/
+
+== Developers
+
+Some content ...
\ No newline at end of file
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/developers/issues.adoc b/website-skin/src/it/training-website/src/site/asciidoc/developers/issues.adoc
new file mode 100644
index 00000000..333eb7d9
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/developers/issues.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.
+//
+
+== Bug &amp; Issue Tracker
+
+https://issues.apache.org/jira/projects/TRAINING
\ No newline at end of file
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/developers/releasing-tools.adoc b/website-skin/src/it/training-website/src/site/asciidoc/developers/releasing-tools.adoc
new file mode 100644
index 00000000..792a4c3f
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/developers/releasing-tools.adoc
@@ -0,0 +1,128 @@
+//
+//  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.
+//
+
+== Releasing the tools
+
+The tools contain all the parts we need to actually build our presentations.
+
+They currently consist of 3 parts:
+
+1. The `content-parent-resources` which contain all the static resources we need to build the presentations.
+2. The `content-parent-pom` which is pom, when used as parent for a presentation, will make sure all is configured correcty, dramatically reducing the amount of configuration needed.
+3. The `content-archetype` which is a maven archetype which can be used to generate a new presentation module based on the current `content-parent-pom`.
+
+As the parts listed later on in this module listing require the previous ones in the build, we can't release them all in one go, but have to release them one after the other.
+
+This makes releasing this a little trickier, but in the end it's a lot simpler for our users.
+
+=== Creating a release branch
+
+First we need to create a release branch.
+
+Do this the following way:
+
+  mvn release:branch -DbranchName=releases/tools/1.0
+
+NOTE: We're not using the full version here, as this branch should also contain the bugfix releases and the tags will have the name using the full version. If we used that for the branch itself we would get name collisions during the release.
+
+After this command is done, we will still be on the `develop` branch.
+In order to actually start the release, we need to switch to the release branch which was previously created.
+
+  git checkout releases/tools/1.0
+
+=== Doing the release
+
+The release itself is done via the `maven-release-plugin`.
+
+  mvn release:prepare
+
+The plugin will ask some questions.
+
+- For the new-release version, just hit `[Enter]` and use the default.
+- For the release tag use: releases/tools/1.0.0 (Or the version used in the question before)
+- For the next development version, again just hit `[Enter]` and use the default.
+
+The plugin will now:
+
+- Check if there are any uncommitted files in the release and abort if it finds any.
+- Then it will update the versions of all artifacts in the reactor to the release version.
+- Then check if now any SNAPSHOT version is used and ask to resolve them to release versions if it finds any (If it finds any, this should be addressed as it should not happen)
+- Then it does a build including tests in order to see if it builds with the new version.
+- If this build is ok, it commits the changed poms with the new versions.
+- Then it tags this version
+- Then it changes the versions to the next version
+- Then it commits these changes too
+- Then it pushes the changes
+
+The next step now uses the release tag created in the previous step and builds the release artifacts.
+
+  mvn release:perform
+
+This now will:
+
+- Checkout the tag into the "target/checkout" directory
+- Run a `mvn deploy` build in this clean checkout with enabled `apache-release` profile
+- In this build - due to the `apache-release` profile - will also build `source` jars, `javadoc` jars, create a source distribution
+- Create md5 hashes for all artifacts
+- Sign all artifacts with your GPG Keys
+- Deploy everything to the `Apache Nexus` Staging repository
+
+Last thing you need to do after a successful execution of the release:perform step, is:
+
+- To log in to Apache's Nexus at: https://repository.apache.org/#welcome (using your apache credentials)
+- Select `Staging Repositories` in the `Build Promotion` menu on the left-hand side (If you can't see it, you've probably not logged in)
+- Use the search box of the `Staging Repositories` tab and search for "training" (It will probably have only one)
+- Select the entry.
+- Click on the `Close` button.
+- Enter a meaningful message and click `Confirm`
+- Hit the `Refresh` button in the tab untill the column `Status` changes from `open` to `closed`
+- Copy the `URL` displayed in the details tab for the selected staging repo (In my case: https://repository.apache.org/content/repositories/orgapachetraining-1000)
+
+We're now done with the preparation of the RC from a Maven perspective.
+
+Next we need to stage the source bundle we will be voting on.
+
+=== Staging the Release Candidate
+
+What we've staged in Nexus is the `convenience binaries` part of the release, the official release will be the source bundle located in SVN.
+
+These will be located under:
+https://dist.apache.org/repos/dist/dev/incubator/training/
+
+In our case the tools will be located in a sub-directory `tools`, so the final path to the `RC1` of version `1.0.0` will be: https://dist.apache.org/repos/dist/dev/incubator/training/tools/1.0.0/rc1
+
+I usually prepare a local directory containing all parts and then just import them into SVN in one go.
+
+The local structure for this is then:
+
+  /tools/1.0.0/rc1/training-tools-1.0.0-source-release.zip
+  /tools/1.0.0/rc1/training-tools-1.0.0-source-release.zip.asc
+  /tools/1.0.0/rc1/training-tools-1.0.0-source-release.zip.sha512
+
+NOTE: Be sure to not take the files form the `target` directory directly, but that you use the `target/checkout/tools/target` versions instead!
+
+Then I just import the 1.0.0 directory using the following command
+
+  svn import tools/1.0.0 https://dist.apache.org/repos/dist/dev/incubator/training/tools/1.0.0 -m"Staged RC1 of version 1.0.0 Apache Training tools"
+
+If this is the first time you are releasing something for the Apache Training (incubating) project, be sure to add your PGP key to the `KEYS` file at: https://dist.apache.org/repos/dist/dev/incubator/training/KEYS
+
+=== Sending out the VOTE email
+
+Next step is to actually start the vote by sending out the VOTE email.
+
+Here a template for that:
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/developers/team.adoc b/website-skin/src/it/training-website/src/site/asciidoc/developers/team.adoc
new file mode 100644
index 00000000..f6b44228
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/developers/team.adoc
@@ -0,0 +1,79 @@
+//
+//  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.
+//
+:imagesdir: ../images/
+:icons: font
+
+== Team
+
+Sorted by first name:
+
+[width="100%",cols="2,4,1,1",options="header"]
+|=========================================================
+|Name |Bio | |
+| *Austin Bennet*
+
+Data Engineer/Scientist
+
+San Francisco |Austin Bennett works with data for Sling Media (a DISH Company), mentors/teaches aspiring Data Scientists through various online outlets, as well as covers odds and ends for Bamboozoology, LLC. He is also a Cognitive Linguist and Researcher with an interest in Multimodal Communication; those pursuits are largely through RedHenLab.org. He is enthusiastic about the promise of Apache Beam, and Open Source Software generally. | a|image::team/abennett.png[abennett, 200, 200]
+
+| *Christofer Dutz*
+
+ IoT Consultant
+
+ codecentric AG
+
+ Frankfurt |Likes to swim outside the mainstream. He is really passionate about walking new paths. His first email to an Apache list on file was to the Cocoon project back in the year 2000. His direct involvement started in 2012 when he was elected to become an Apache Flex committer. Since then he became involved with a lot of Apache-internal groups and committees and was elected to become a Member of the Apache Software Foundation in 2015 and recently has taken up the role of mentoring  [...]
+
+
+| *Dmitriy Pavlov*
+
+Solutions Architect
+
+EPAM Systems
+
+Saint-Petersburg | Dmitriy Pavlov is a Java Developer enthusiastic about Open Source and in-memory computing. He is interested in system performance, information security, and cryptography. Dmitriy represents the Apache Ignite Project Management Committee (PMC) at local meetups in Russia. He runs workshops and training for Apache Ignite developers and users, and is a speaker at meetups and conferences.| a|image::team/dpavlov.png[dpavlov, 200, 200]
+
+| *Justin Mclean*
+
+Trainer and Consultant
+
+Sydney |Justin Mclean has been teaching for 10+ years and now splits his time between that and software development. He runs his own consulting company Class Software for 25+ years and has spoken at numerous conferences in his home of Australia and overseas. He's heavily involved in open source hardware and software, and runs the IoT meetup in Sydney. He currently teaches at an online college and is a casual academic at a university. | a|image::team/jmclean.jpg[jmclean, 200, 200]
+
+| *Lars Francke*
+
+Trainer and Consultant
+
+OpenCore GmbH & Co. KG
+
+Hamburg | Lars Francke has been involved with Open Source software since 2009 and since then gained Hive, HBase and ORC committer status. As a freelancer he was focused on Big Data and Hadoop and has given numerous trainings on various topics from this ecosystem in his professional capacity. In 2016 Lars co-founded OpenCore, a Hadoop and emerging data technologies advisory firm.
+
+Lars was the champion of the Apache training project.| a|image::team/larsfrancke.jpg[larsfrancke, 200, 200]
+
+| *Sönke Liebau*
+
+Trainer and Consultant
+
+OpenCore GmbH & Co. KG
+
+Frankfurt | Sönke Liebau is a consultant based in Germany and focussed on providing expertise and teaching around Hadoop, Kafka and similar solutions from the Big Data ecosystem.
+
+He has been working as a freelancer for many years and co-founded OpenCore in 2016.
+
+In 2019 he was one of the founding members of the Apache Training project. | a|image::team/soenkeliebau.jpg[soenkeliebau, 200, 200]
+
+|=========================================================
+
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/developers/website.adoc b/website-skin/src/it/training-website/src/site/asciidoc/developers/website.adoc
new file mode 100644
index 00000000..0accb968
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/developers/website.adoc
@@ -0,0 +1,159 @@
+//
+//  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.
+//
+
+== Generating the Website
+
+We are currently using the normal `Maven` build to not only generate the project artifacts, but also the project's website.
+
+In order to provide content, every module can have a `src/site` directory. This content will be generated to those modules site-part.
+
+The `skin` being used to generate the site is none of the default `Maven` skins, but a more up-to-date looking skin using:
+
+- Bootstrap (For the CSS)
+- JQuery (For the JavaScript magic)
+- Fontawesome (For icons and symbols)
+
+But we don't have to worry about the details, all is configured to be used automatically.
+
+The site content itself is generated from `asciidoc` files (ending `.adoc`) which is a simple yet powerful markup language.
+(See http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/[AsciiDoc Syntax Quick Reference] or https://powerman.name/doc/asciidoc[AsciiDoc cheatsheet] for details)
+
+Beyond the basic goodies, the build is also configured to generate images from ASCII data using the `asciidoctor-diagram` plugin.
+
+This allows us to generate images like the ones on the http://plc4x.apache.org/plc4j/plc4j-protocols/plc4j-protocol-s7/index.html[S7 Protocol Description page]
+
+=== Providing new content
+
+Within the `src/site` directory, there is a file `site.xml` which generally controls the menu and the look of the site.
+
+Most settings are inherited from the `training` parent module. That's also why this is more complicated than the others.
+
+The `site.xml` file is optional. Even if this is not available a site will be generated however no additional content will be linked from any of the navigation menus.
+
+So if we wanted to add a new page on some (hopefully non-existent) `Cool content`, we would create a file called:
+
+`index.adoc` in the `src/site/asciidoc/content/cool` directory.
+
+For example with this content:
+
+```
+== Cool Hello World
+
+Here comes some extremely cool content.
+
+```
+
+=== Adding links to menus
+
+In order to add links to the menus, you have to create or modify the `site.xml` for the module you want to add content to.
+
+The simplest form would probably be something like this:
+
+```
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+
+ 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 name="Training">
+
+  <body>
+    <menu name="content">
+      <item name="cool" href="https://training.apache.org/content/cool.html"/>
+    </menu>
+  </body>
+
+</project>
+```
+
+This will generate a `content` menu at the end, and this has one link named `cool`.
+
+Notice that the link has to have a file ending of `.html` and not `.adoc`.
+
+If you want to insert the menu somewhere else, you will have to re-define the entire menu.
+
+```
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+
+ 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 name="Training">
+
+  <body>
+
+      <menu ref="reports" inherit="top"/>
+      <menu ref="parent" inherit="top"/>
+
+      <menu name="content">
+        <item name="cool" href="https://training.apache.org/content/cool.html"/>
+      </menu>
+
+      <menu ref="modules" inherit="top"/>
+
+  </body>
+
+</project>
+```
+
+The `menu ref` items hereby reference standard menus provided by the `Maven` build.
+
+=== Deploying the Website
+
+The Apache Training project uses Apache `gitpubsub` system for maintaining the website.
+
+In general, all content in a repos `asf-site` branch is copied to the web servers, if that repo is registered for it.
+
+The content in this branch is generated and maintained during the `Maven` build as part of the `site` generation if the `site-deploy` phase is executed.
+
+The build system needs to check-in content to the `asf-site` branch and usually the ASF Jenkins nodes don't have the permissions to do that.
+
+In order to be able to push to the `asf-site` GIT branch, a dedicated build job is configured to build on nodes with the Jenkins label `git-websites`.
+
+Only on these machines are jobs allowed to push changes to a Git repo and here only to a branch named `asf-site`.
+
+See https://builds.apache.org/view/S-Z/view/Training%20(incubating)/job/Training%20Multi-Branch%20Pipeline/ for details on the Training Jenkins Website build job.
+
+As soon as the content is updated in the `asf-site` the `gitpubsub` mechanism will make those changes available at https://training.apache.org
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/developers/wiki.adoc b/website-skin/src/it/training-website/src/site/asciidoc/developers/wiki.adoc
new file mode 100644
index 00000000..9ec907b9
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/developers/wiki.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.
+//
+
+== WIKI
+
+https://cwiki.apache.org/confluence/display/TRAINING
\ No newline at end of file
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/index.adoc b/website-skin/src/it/training-website/src/site/asciidoc/index.adoc
new file mode 100644
index 00000000..99245199
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/index.adoc
@@ -0,0 +1,73 @@
+//
+//  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.
+//
+:imagesdir: images/
+:icons: font
+
+== Apache Training™ (Incubating)
+
+=== Purpose
+The purpose of the Training project is to create high-quality training material for various projects in an open source form. Up until now everyone who wants to offer a Training course for one of the Apache projects needs to create her or his own slides/labs and keep them up-to-date. This is a significant investment of time and money. This project aims to spread that burden and help all Apache projects as we can create shared resources and we can also create cross-project training resources.
+
+To sum up, the main goals for this project:
+
+- Develop shared material that can be used for training
+- Cross-project
+    - Focused on Apache but also 3rd party projects where it makes sense
+    - Develop “labs” or “hands-on” exercises
+- Develop or document an infrastructure that can be used for those labs
+- Potentially develop tools to manage the material (e.g. a “slide” repository that contains “modules” that can be easily reused and combined)
+
+These are non-goals for this project:
+
+- Some kind of official “Apache Training Program” with certifications etc.
+    - Based on feedback and future developments this may change but we believe it’s out of scope initially
+- Project documentation
+- The training material we develop is not necessarily self-explanatory. It still benefits from an experienced instructor but it will make it possible for talented people without the time and resources to develop material to still train others.
+
+=== Rationale
+There are tons of companies offering training for and around the Apache ecosystem. From our experience, everyone is building a very similar set of slides and labs (there’s only so many ways you can explain a concept). This project aims to create and use synergies. By also bringing these resources closer to their origin we hope to improve quality, the freshness of the content and versatility (e.g. more language options).
+
+It is the mission of the Apache foundation “to provide software for the public good” and we believe this project can help with that mission by making the software more accessible for a broader audience.
+
+=== A Short Word About Linguistics
+The plural form of training was used frequently in the early stages of the project, which is strictly speaking not grammatically correct, as well as misleading from the perspective of this project.
+Training, being a gerund (verb used as noun) does not have a plural form, so should always be followed by a quantifiable noun like _sessions_ or _slides_.
+
+Additionally, the existence of this project is to a large extent based on the believe that a good training session consists of much more than just the material that is being shown, a distinction that is distracted from by the use of _training_ as all-encompassing term.
+
+While we will not tell anybody how to phrase this, as a project we will try to keep any official wording as concise as possible and stay away from the use of _training_ or _trainings_.
+
+=== Next steps
+The initial goal for the first few weeks or months is to have discussions and agreements on various scoping and technical issues as well as integrating existing donated material.
+
+From there we want to start building a library of content.
+
+=== Getting involved
+
+The main resource for any discussion around this project is the dev mailing list (see below). If you have any specific question or want to get involved in any way, by all means, do so and reach out and say hi!
+
+The following resources are currently being used by the project:
+
+Dev Mailing List: link:++https://lists.apache.org/list.html?dev@training.apache.org++[Archive]  -  mailto:dev-subscribe@training.apache.org[Subscribe]
+
+Issues Mailing List: link:++https://lists.apache.org/list.html?issues@training.apache.org++[Archive]  -  mailto:issues-subscribe@training.apache.org[Subscribe]
+
+Commits Mailing List: link:++https://lists.apache.org/list.html?commits@training.apache.org++[Archive]  -  mailto:commits-subscribe@training.apache.org[Subscribe]
+
+Wiki: https://cwiki.apache.org/confluence/display/TRAINING
+
+Jira: https://issues.apache.org/jira/browse/TRAINING
\ No newline at end of file
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/users/downloads.adoc b/website-skin/src/it/training-website/src/site/asciidoc/users/downloads.adoc
new file mode 100644
index 00000000..738d2f20
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/users/downloads.adoc
@@ -0,0 +1,35 @@
+//
+//  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.
+//
+
+== Download
+
+Be sure to verify your downloads by these https://www.apache.org/info/verification[procedures] using these https://www.apache.org/dist/incubator/training/[KEYS] for any Apache release.
+
+== Current Releases
+
+=== Apache Way
+
+[#release-navigating-ASF-incubation-1.0]
+==== Navigating the ASF Incubation Process 1.0
+
+An overview of how to navigate the ASF incubating process from start to finish.
+
+It can seem like a daunting task to bring a new open source project into the world. The Apache Software Foundation incubator can help you! Getting into the incubator and surviving incubation is straight forward when you know what to do and how to do it. This talk gives an overview of the ASF incubation process, the pitfalls to watch out for, and how projects become successful. It also gives an overview of the incubator PMC, how to interact with other podlings and make your mark on the ec [...]
+
+https://www.apache.org/dyn/closer.lua/incubator/training/ApacheWay/NavigatingASFIncubation/1.0/apache-training-navigating-ASF-incubation-1.0-incubating.tar.gz[source release] [ https://www.apache.org/dist/incubator/training/ApacheWay/NavigatingASFIncubation/1.0/apache-training-navigating-ASF-incubation-1.0-incubating.tar.gz.sha512[SHA512] ] [ https://www.apache.org/dist/incubator/training/ApacheWay/NavigatingASFIncubation/1.0/apache-training-navigating-ASF-incubation-1.0-incubating.tar.g [...]
+
+The slides can also be viewed http://training.apache.org/topics/ApacheWay/NavigatingASFIncubator/index.html[here].
diff --git a/website-skin/src/it/training-website/src/site/asciidoc/users/index.adoc b/website-skin/src/it/training-website/src/site/asciidoc/users/index.adoc
new file mode 100644
index 00000000..a85c8c56
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/asciidoc/users/index.adoc
@@ -0,0 +1,85 @@
+//
+//  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.
+//
+:imagesdir: ../images/
+
+== Creating Presentation with Apache Training
+
+Currently the setup uses https://asciidoctor.org/[Asciidoctor] to write content and builds the presentation using https://maven.apache.org/[Apache Maven] and https://revealjs.com/#/[Reveal.JS].
+
+We have prepared everything that it should be pretty simple to get started with creating a new presentation.
+
+Requirements:
+
+- Java 8 or newer
+- Maven 3.3 or newer
+
+Until we have released the tooling, you will need to build it locally first or the archetype plugin will fail to run.
+Please read the following chapter on how to do this.
+
+In order to create an empty presentation to start with, please execute the following command:
+
+    mvn archetype:generate -DarchetypeGroupId=org.apache.training -DarchetypeArtifactId=content-archetype -DarchetypeVersion=1.0.0
+
+For Windows, you need to wrap every argument in double-quotes:
+
+    mvn archetype:generate "-DarchetypeGroupId=org.apache.training" "-DarchetypeArtifactId=content-archetype" "-DarchetypeVersion=1.0.0"
+
+After choosing `groupId`, `artifactId`, `version` and `package` there should be a new directory that matches the `artifactId` that you selected.
+
+Change into this directory and run the following command to build the presentation:
+
+    mvn package
+
+After that, there should be a directory `target/generated-slides`.
+
+If you open the `index.html` in that directory your presentation should open in the browser.
+
+== Using the latest development version
+
+If you want to use the latest development version of the Apache Training tooling, please still use the latest released archetype. Otherwise, the archetype plugin will not be able to find the `SNAPSHOT` version of the archetype. As generally most changes apply to the parent being used in the slides module, you can update to the latest version by:
+
+Adding the following section to the generated `pom.xml`:
+
+```
+  <!-- Make Snapshots of Apache projects available -->
+  <repositories>
+    <repository>
+      <id>apache-snapshots</id>
+      <url>https://repository.apache.org/content/repositories/snapshots</url>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+```
+
+After adding this you can update the parent version to the latest `SNAPSHOT` version and Maven should be able to find it.
+
+== Building the Apache Training Tooling
+
+Additional requirements:
+
+- Git
+
+In order to build Apache Training Tooling, please checkout the git repo from:
+
+    git clone https://gitbox.apache.org/repos/asf/incubator-training.git
+    cd incubator-training
+    mvn install
diff --git a/website-skin/src/it/training-website/src/site/resources/images/apache_training_logo.png b/website-skin/src/it/training-website/src/site/resources/images/apache_training_logo.png
new file mode 100644
index 00000000..7db01e60
Binary files /dev/null and b/website-skin/src/it/training-website/src/site/resources/images/apache_training_logo.png differ
diff --git a/website-skin/src/it/training-website/src/site/resources/images/contributing-github-create-pull-request.png b/website-skin/src/it/training-website/src/site/resources/images/contributing-github-create-pull-request.png
new file mode 100644
index 00000000..1d8721a4
Binary files /dev/null and b/website-skin/src/it/training-website/src/site/resources/images/contributing-github-create-pull-request.png differ
diff --git a/website-skin/src/it/training-website/src/site/resources/images/contributing-github-fork.png b/website-skin/src/it/training-website/src/site/resources/images/contributing-github-fork.png
new file mode 100644
index 00000000..8600ffd9
Binary files /dev/null and b/website-skin/src/it/training-website/src/site/resources/images/contributing-github-fork.png differ
diff --git a/website-skin/src/it/training-website/src/site/resources/images/team/abennett.png b/website-skin/src/it/training-website/src/site/resources/images/team/abennett.png
new file mode 100644
index 00000000..5cc95fbf
Binary files /dev/null and b/website-skin/src/it/training-website/src/site/resources/images/team/abennett.png differ
diff --git a/website-skin/src/it/training-website/src/site/resources/images/team/cdutz.png b/website-skin/src/it/training-website/src/site/resources/images/team/cdutz.png
new file mode 100644
index 00000000..2e42eb5b
Binary files /dev/null and b/website-skin/src/it/training-website/src/site/resources/images/team/cdutz.png differ
diff --git a/website-skin/src/it/training-website/src/site/resources/images/team/dpavlov.png b/website-skin/src/it/training-website/src/site/resources/images/team/dpavlov.png
new file mode 100644
index 00000000..3a9bdc28
Binary files /dev/null and b/website-skin/src/it/training-website/src/site/resources/images/team/dpavlov.png differ
diff --git a/website-skin/src/it/training-website/src/site/resources/images/team/jmclean.jpg b/website-skin/src/it/training-website/src/site/resources/images/team/jmclean.jpg
new file mode 100644
index 00000000..904a031f
Binary files /dev/null and b/website-skin/src/it/training-website/src/site/resources/images/team/jmclean.jpg differ
diff --git a/website-skin/src/it/training-website/src/site/resources/images/team/larsfrancke.jpg b/website-skin/src/it/training-website/src/site/resources/images/team/larsfrancke.jpg
new file mode 100644
index 00000000..91247575
Binary files /dev/null and b/website-skin/src/it/training-website/src/site/resources/images/team/larsfrancke.jpg differ
diff --git a/website-skin/src/it/training-website/src/site/resources/images/team/soenkeliebau.jpg b/website-skin/src/it/training-website/src/site/resources/images/team/soenkeliebau.jpg
new file mode 100644
index 00000000..066b66a8
Binary files /dev/null and b/website-skin/src/it/training-website/src/site/resources/images/team/soenkeliebau.jpg differ
diff --git a/website-skin/src/it/training-website/src/site/resources/images/training-logo.svg b/website-skin/src/it/training-website/src/site/resources/images/training-logo.svg
new file mode 100644
index 00000000..de0b4406
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/resources/images/training-logo.svg
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+
+ 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.
+
+ -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   id="svg2634"
+   version="1.1"
+   viewBox="0 0 105.83333 79.375"
+   height="300"
+   width="400">
+  <defs
+     id="defs2628" />
+  <metadata
+     id="metadata2631">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(-59.039281,-46.811534)"
+     id="layer1">
+    <g
+       transform="matrix(0.69092479,0,0,0.69092479,81.617904,-23.853078)"
+       id="g5335-2">
+      <g
+         style="fill:#000000;fill-opacity:1;stroke:none"
+         transform="matrix(1.2291836,0,0,1.2291836,-80.067023,197.62069)"
+         id="g853-1-1">
+        <g
+           id="text826-3-9"
+           style="font-style:normal;font-weight:normal;font-size:25.85194969px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#d20077;fill-opacity:1;stroke:none;stroke-width:0.64629871"
+           aria-label="APACHE">
+          <path
+             id="path12452"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:'Montserrat Bold';fill:#d20077;fill-opacity:1;stroke:none;stroke-width:0.64629871"
+             d="m 59.079509,-7.1123844 h -8.401884 l -1.60282,3.8777924 h -4.291424 l 8.065808,-18.096365 h 4.136312 l 8.09166,18.096365 H 60.68233 Z m -1.318449,-3.1797896 -2.869567,-6.928323 -2.869566,6.928323 z" />
+          <path
+             id="path12454"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:'Montserrat Bold';fill:#d20077;fill-opacity:1;stroke:none;stroke-width:0.64629871"
+             d="m 74.787799,-21.330957 q 2.404232,0 4.162164,0.801411 1.783785,0.80141 2.740307,2.274971 0.956522,1.473561 0.956522,3.490013 0,1.990601 -0.956522,3.490014 -0.956522,1.4735608 -2.740307,2.2749713 -1.757932,0.7755584 -4.162164,0.7755584 h -3.645125 v 4.9894263 h -4.188016 v -18.096365 z m -0.232667,9.694481 q 1.887192,0 2.869566,-0.80141 0.982374,-0.827262 0.982374,-2.326676 0,-1.525265 -0.982374,-2.326675 -0.982374,-0.827262 -2.869566,-0.827262 h -3.412458 v 6.282023 z" />
+          <path
+             id="path12456"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:'Montserrat Bold';fill:#d20077;fill-opacity:1;stroke:none;stroke-width:0.64629871"
+             d="m 96.645625,-7.1123844 h -8.401883 l -1.602821,3.8777924 h -4.291424 l 8.065809,-18.096365 h 4.136311 l 8.091663,18.096365 h -4.394834 z m -1.318449,-3.1797896 -2.869566,-6.928323 -2.869567,6.928323 z" />
+          <path
+             id="path12458"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:'Montserrat Bold';fill:#d20077;fill-opacity:1;stroke:none;stroke-width:0.64629871"
+             d="m 112.92872,-2.9243686 q -2.76616,0 -5.01528,-1.1891897 -2.22327,-1.2150416 -3.51587,-3.3349015 -1.26674,-2.1457118 -1.26674,-4.8343142 0,-2.688603 1.26674,-4.808463 1.2926,-2.145712 3.51587,-3.334902 2.24912,-1.215041 5.04113,-1.215041 2.35252,0 4.23972,0.827262 1.91304,0.827263 3.20564,2.37838 l -2.6886,2.481787 q -1.83549,-2.11986 -4.54995,-2.11986 -1.68037,0 -2.99882,0.749706 -1.31845,0.723855 -2.06816,2.042304 -0.72385,1.31845 -0.72385,2.998827 0,1.680376 0.72385,2.9 [...]
+          <path
+             id="path12460"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:'Montserrat Bold';fill:#d20077;fill-opacity:1;stroke:none;stroke-width:0.64629871"
+             d="m 139.7998,-21.330957 v 18.096365 h -4.18802 v -7.41951 h -8.22092 v 7.41951 h -4.18802 v -18.096365 h 4.18802 v 7.135138 h 8.22092 v -7.135138 z" />
+          <path
+             id="path12462"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Montserrat;-inkscape-font-specification:'Montserrat Bold';fill:#d20077;fill-opacity:1;stroke:none;stroke-width:0.64629871"
+             d="m 158.11833,-6.5953454 v 3.3607534 h -14.01176 v -18.096365 h 13.67568 v 3.360754 h -9.51352 v 3.929496 h 8.40189 v 3.257346 h -8.40189 v 4.1880156 z" />
+        </g>
+        <g
+           id="text830-3-6"
+           style="font-style:normal;font-weight:normal;font-size:23.14134026px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25460178;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           aria-label="TRAINING">
+          <path
+             id="path12465"
+             style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Montserrat Light';-inkscape-font-specification:'Montserrat Light, Light';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25460178;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             d="M 50.61982,1.0891848 H 44.788202 V 0.02468319 H 57.631646 V 1.0891848 H 51.800028 V 16.223621 H 50.61982 Z" />
+          <path
+             id="path12467"
+             style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Montserrat Light';-inkscape-font-specification:'Montserrat Light, Light';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25460178;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             d="m 71.782576,16.223621 -3.864604,-5.415073 q -0.85623,0.115706 -1.573611,0.115706 h -4.628268 v 5.299367 H 60.535884 V 0.02468319 h 5.808477 q 3.054657,0 4.790257,1.45790441 1.735601,1.4347631 1.735601,4.0034519 0,1.9207312 -0.995078,3.2397876 -0.971936,1.2959149 -2.800102,1.8281659 l 4.049734,5.669628 z M 66.344361,9.8828941 q 2.59183,0 3.957169,-1.1339256 1.365339,-1.157067 1.365339,-3.262929 0,-2.105862 -1.365339,-3.2397876 -1.365339,-1.1570671 -3.957169,-1.1570671 h -4 [...]
+          <path
+             id="path12469"
+             style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Montserrat Light';-inkscape-font-specification:'Montserrat Light, Light';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25460178;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             d="m 87.23412,11.664777 h -9.395384 l -2.059579,4.558844 H 74.506383 L 81.957895,0.02468319 h 1.180208 L 90.589615,16.223621 H 89.316841 Z M 86.794435,10.6697 82.536428,1.3205982 78.301563,10.6697 Z" />
+          <path
+             id="path12471"
+             style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Montserrat Light';-inkscape-font-specification:'Montserrat Light, Light';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25460178;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             d="m 93.53037,0.02468319 h 1.180208 V 16.223621 H 93.53037 Z" />
+          <path
+             id="path12473"
+             style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Montserrat Light';-inkscape-font-specification:'Montserrat Light, Light';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25460178;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             d="M 113.54582,0.02468319 V 16.223621 h -0.97193 L 101.53547,2.1536865 V 16.223621 h -1.18021 V 0.02468319 h 0.99508 L 112.36562,14.094618 V 0.02468319 Z" />
+          <path
+             id="path12475"
+             style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Montserrat Light';-inkscape-font-specification:'Montserrat Light, Light';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25460178;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             d="M 119.20279,0.02468319 H 120.383 V 16.223621 h -1.18021 z" />
+          <path
+             id="path12477"
+             style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Montserrat Light';-inkscape-font-specification:'Montserrat Light, Light';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25460178;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             d="M 139.21825,0.02468319 V 16.223621 h -0.97194 L 127.20789,2.1536865 V 16.223621 h -1.18021 V 0.02468319 h 0.99508 L 138.03804,14.094618 V 0.02468319 Z" />
+          <path
+             id="path12479"
+             style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Montserrat Light';-inkscape-font-specification:'Montserrat Light, Light';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.25460178;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             d="m 156.44589,8.1935763 h 1.13392 v 6.0630307 q -1.0645,1.018219 -2.59183,1.55047 -1.50418,0.532251 -3.1935,0.532251 -2.4067,0 -4.35057,-1.064502 -1.92073,-1.064501 -3.03152,-2.93895 -1.08764,-1.874448 -1.08764,-4.2117237 0,-2.3372754 1.08764,-4.2117239 1.11079,-1.8744486 3.03152,-2.93895026 1.94387,-1.06450165 4.37371,-1.06450165 1.78188,0 3.26293,0.5785335 1.50419,0.55539221 2.56869,1.64303521 l -0.74052,0.7868055 q -1.01822,-1.0182189 -2.291,-1.4579044 -1.24963,-0.462826 [...]
+        </g>
+      </g>
+      <g
+         id="g5194-6"
+         transform="translate(162.45981,-92.515321)">
+        <path
+           style="fill:#7100df;fill-opacity:1;stroke:none;stroke-width:0.27344418px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m -187.03192,213.82239 v 44.55454 c 0,0 44.72385,-8.8319 66.16928,0 0,0 -0.63018,-8.7172 -60.18254,-8.7172 v -35.35304 z"
+           id="path5230-49" />
+        <path
+           style="fill:#c42700;fill-opacity:1;stroke:none;stroke-width:0.23743603px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m -175.175,207.67417 v 37.60915 c 0,0 27.27345,-3.26532 47.45641,1.61898 0,0 -19.40319,-12.19085 -42.10898,-8.97729 v -29.84208 z"
+           id="path5230-7-90" />
+        <path
+           style="fill:#e4a90e;fill-opacity:1;stroke:none;stroke-width:0.32975441px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m -164.42813,195.79287 43.82252,12.57268 -0.30238,28.52197 c -26.16397,-8.4527 -43.52014,-6.28586 -43.52014,-6.28586 z"
+           id="path5247-89" />
+        <path
+           style="fill:#7100df;fill-opacity:1;stroke:none;stroke-width:0.27344418px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m -47.829291,213.82239 v 44.55454 c 0,0 -44.72385,-8.8319 -66.169279,0 0,0 0.63018,-8.7172 60.182539,-8.7172 v -35.35304 z"
+           id="path5230-6-3" />
+        <path
+           style="fill:#c42700;fill-opacity:1;stroke:none;stroke-width:0.23743603px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m -59.686211,207.67417 v 37.60915 c 0,0 -27.27345,-3.26532 -47.456409,1.61898 0,0 19.403189,-12.19085 42.108979,-8.97729 v -29.84208 z"
+           id="path5230-7-9-1" />
+        <path
+           style="fill:#e4a90e;fill-opacity:1;stroke:none;stroke-width:0.32975441px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m -70.433081,195.79287 -43.822519,12.57268 0.30238,28.52197 c 26.163969,-8.4527 43.520139,-6.28586 43.520139,-6.28586 z"
+           id="path5247-8-4" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/website-skin/src/it/training-website/src/site/site.xml b/website-skin/src/it/training-website/src/site/site.xml
new file mode 100644
index 00000000..d08e9b1c
--- /dev/null
+++ b/website-skin/src/it/training-website/src/site/site.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ 
+ 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 name="Training">
+
+  <skin>
+    <groupId>${skinGroupId}</groupId>
+    <artifactId>${skinArtifactId}</artifactId>
+    <version>${skinVersion}</version>
+  </skin>
+
+  <!-- Hide the publish-date as this will cause changes on every generated page every day -->
+  <publishDate position="none"/>
+  <!-- Hide the version as we are usually deploying the develop-version -->
+  <version position="none" />
+
+  <custom>
+  </custom>
+
+  <bannerLeft>
+    <name>Apache Training (incubating)</name>
+    <src>/images/training-logo.svg</src>
+    <href>https://training.apache.org/</href>
+  </bannerLeft>
+
+  <bannerRight>
+    <name>Apache Incubator</name>
+    <src>https://incubator.apache.org/images/incubator_feather_egg_logo_sm.png</src>
+    <href>http://incubator.apache.org/</href>
+  </bannerRight>
+
+  <body>
+    <menu name="Users">
+      <!-- The skin automatically looks for a "users/index.html" when clicking on the "Users" section -->
+      <item name="Downloads" href="users/downloads.html"/>
+    </menu>
+    <menu name="Developers">
+      <!-- The skin automatically looks for a "developers/index.html" when clicking on the "Developers" section -->
+      <item name="Bug &amp; Issue Tracker" href="developers/issues.html"/>
+      <item name="Building Training Website" href="developers/building-website.html"/>
+      <item name="Continuous Integration" href="developers/ci.html"/>
+      <item name="Contributing" href="developers/contributing.html"/>
+      <item name="Decision Making" href="developers/decisions.html"/>
+      <!--item name="Maturity" href="developers/maturity.html"/>
+      <item name="Releasing" href="developers/release.html"/-->
+      <item name="Releasing (tools)" href="developers/releasing-tools.html"/>
+      <item name="Team" href="developers/team.html"/>
+      <item name="Website" href="developers/website.html"/>
+      <item name="Wiki" href="developers/wiki.html"/>
+    </menu>
+    <menu name="Apache" inherit="bottom">
+      <!-- The skin automatically looks for a "apache/index.html" when clicking on the "Apache" section -->
+      <item name="Apache Software Foundation" href="https://www.apache.org/"/>
+      <item name="How Apache Works" href="https://www.apache.org/foundation/how-it-works.html"/>
+      <item name="License" href="https://www.apache.org/licenses/"/>
+      <item name="Sponsoring Apache" href="https://www.apache.org/foundation/sponsorship.html"/>
+      <item name="Thanks" href="https://www.apache.org/foundation/thanks.html"/>
+    </menu>
+  </body>
+
+</project>
\ No newline at end of file
diff --git a/website-skin/src/main/resources/META-INF/maven/site-macros.vm b/website-skin/src/main/resources/META-INF/maven/site-macros.vm
new file mode 100644
index 00000000..5bb2e5bb
--- /dev/null
+++ b/website-skin/src/main/resources/META-INF/maven/site-macros.vm
@@ -0,0 +1,475 @@
+#*
+  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.
+*#
+
+#macro ( link $href $name $target $img $position $alt $border $width $height $title $class )
+#**##set ( $linkTitle = ' title="' + $name + '"' )
+#**##if( $target )
+#*  *##set ( $linkTarget = ' target="' + $target + '"' )
+#**##else
+#*  *##set ( $linkTarget = "" )
+#**##end
+#**##if ( $decoration.isLink( $href ) )
+#*  *##set ( $linkClass = ' class="externalLink"' )
+#**##else
+#*  *##set ( $linkClass = "" )
+#**##end
+#**##if ( $img )
+#*  *##if ( $position == "left" )
+#*    *#<a href="$href"$linkClass$linkTarget$linkTitle>#image($img $alt $border $width $height $title)$name</a>##
+#*  *##else
+#*    *#<a href="$href"$linkClass$linkTarget$linkTitle>$name #image($img $alt $border $width $height $title)</a>##
+#*  *##end
+#**##else
+#*  *#<a href="$href"$linkClass$linkTarget$linkTitle>$name</a>##
+#**##end
+#end
+##
+#macro ( image $img $alt $border $width $height $title )
+#**##if( $img )
+#*  *##if ( !$decoration.isLink( $img ) )
+#*    *##set ( $imgSrc = $PathTool.calculateLink( $img, $relativePath ) )
+#*    *##set ( $imgSrc = $imgSrc.replaceAll( '\\', '/' ) )
+#*    *##set ( $imgSrc = ' src="' + $imgSrc + '"' )
+#*  *##else
+#*    *##set ( $imgSrc = ' src="' + $img + '"' )
+#*  *##end
+#*  *##if( $alt )
+#*    *##set ( $imgAlt = ' alt="' + $alt + '"' )
+#*  *##else
+#*    *##set ( $imgAlt = ' alt=""' )
+#*  *##end
+#*  *##if( $border )
+#*    *##set ( $imgBorder = ' border="' + $border + '"' )
+#*  *##else
+#*    *##set ( $imgBorder = "" )
+#*  *##end
+#*  *##if( $width )
+#*    *##set ( $imgWidth = ' width="' + $width + '"' )
+#*  *##else
+#*    *##set ( $imgWidth = "" )
+#*  *##end
+#*  *##if( $height )
+#*    *##set ( $imgHeight = ' height="' + $height + '"' )
+#*  *##else
+#*    *##set ( $imgHeight = "" )
+#*  *##end
+#*  *##if( $title )
+#*    *##set ( $imgTitle = ' title="' + $title + '"' )
+#*  *##else
+#*    *##set ( $imgTitle = "" )
+#*  *##end
+#*  *#<img class="imageLink"$imgSrc$imgAlt$imgBorder$imgWidth$imgHeight$imgTitle/>##
+#**##end
+#end
+##
+#macro ( banner $banner $id $class)
+#**##if ( $banner )
+#*  *##if( $banner.href )
+#*    *##set ( $hrf = $banner.href )
+#*    *##if ( !$decoration.isLink( $hrf ) )
+#*      *##set ( $hrf = $PathTool.calculateLink( $hrf, $relativePath ) )
+#*      *##set ( $hrf = $hrf.replaceAll( '\\', '/' ) )
+#*      *##if ( ( $hrf == '' ) )
+#*        *##set ( $hrf = './' )
+#*      *##end
+#*    *##end
+#*    *#<a href="$hrf" id="$id"#if( $banner.alt ) title="$banner.alt"#end>##
+#*  *##else
+#*  *#<div id="$id" class="$class">
+#*  *##end
+##
+#*  *##if( $banner.src )
+#*    *##set ( $src = $banner.src )
+#*      *##if ( !$decoration.isLink( $src ) )
+#*        *##set ( $src = $PathTool.calculateLink( $src, $relativePath ) )
+#*        *##set ( $src = $src.replaceAll( '\\', '/' ) )
+#*      *##end
+#*      *##if ( $banner.alt )
+#*        *##set ( $alt = ' alt="' + $banner.alt + '"' )
+#*      *##elseif ( $banner.name )
+#*        *##set ( $alt = ' alt="' + $banner.name + '"' )
+#*      *##else
+#*        *##set ( $alt = ' alt=""' )
+#*      *##end
+#*      *##if( $banner.border )
+#*        *##set ( $imgBorder = ' border="' + $banner.border + '"' )
+#*      *##else
+#*        *##set ( $imgBorder = "" )
+#*      *##end
+#*      *##if( $banner.width )
+#*        *##set ( $imgWidth = ' width="' + $banner.width + '"' )
+#*      *##else
+#*        *##set ( $imgWidth = "" )
+#*      *##end
+#*      *##if( $banner.height )
+#*        *##set ( $imgHeight = ' height="' + $banner.height + '"' )
+#*      *##else
+#*        *##set ( $imgHeight = "" )
+#*      *##end
+#*      *##if( $banner.title )
+#*        *##set ( $bannerTitle=' title="' + $banner.title + '"' )
+#*      *##else
+#*      *##set ( $bannerTitle="" )
+#*    *##end
+#*    *#<img src="$src" $alt$bannerTitle$imgBorder$imgWidth$imgHeight/>##
+#*  *##else
+#*    *#$banner.name
+#*  *##end
+##
+#*  *##if( $banner.href )
+#*    *#</a>
+#*  *##else
+#*    *#</div>
+#*  *##end
+#**##end
+#end
+##
+#macro ( links $links )
+#**##set ( $counter = 0 )
+#**##foreach( $item in $links )
+#*  *##set ( $counter = $counter + 1 )
+#*  *##set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
+#*  *##set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
+#*  *##link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height $item.title )
+#*  *##if ( $links.size() > $counter )
+#*  *# |
+#*  *##end
+#**##end
+#end
+##
+#macro ( breadcrumbs $breadcrumbs )
+#**##foreach( $item in $breadcrumbs )
+#*  *##set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
+#*  *##set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
+#*  *##if ( ( $currentItemHref == '' ) )
+#*    *##set ( $currentItemHref = './' )
+#*  *##end
+##
+#*  *##link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height $item.title )
+#**# &gt;
+#**##end
+#**#$shortTitle
+#**##if( $decoration.edit && $docRenderingContext.editable )
+#*  *# <a href="$docRenderingContext.getDoxiaSourcePath( $decoration.edit )">[edit]</a>
+#**##end
+#end
+##
+#macro ( displayTree $display $item )
+#**##if ( $item && $item.items && $item.items.size() > 0 )
+#*  *##foreach( $subitem in $item.items )
+#*    *##set ( $subitemHref = $PathTool.calculateLink( $subitem.href, $relativePath ) )
+#*    *##set ( $subitemHref = $subitemHref.replaceAll( '\\', '/' ) )
+##
+#*    *##if ( $alignedFileName == $subitemHref )
+#*      *##set ( $display = true )
+#*    *##end
+##
+#*    *##displayTree( $display $subitem )
+#*  *##end
+#**##end
+#end
+##
+#macro ( menuItem $item )
+    #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
+    #set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
+    ## Output the navigation item
+    <li class="nav-item">
+        ## If the item is the currently selected page, don't output a link, but just present it bold
+        #if ( $alignedFileName == $currentItemHref )
+            <strong class="nav-link">$item.name</strong>
+        #else
+            <a href="$currentItemHref" class="nav-link">$item.name</a>
+        #end
+        ## Output any sub-menu
+        #if ( $item && $item.items && $item.items.size() > 0 )
+            <ul class="flex-column pl-4 nav">
+                #foreach( $subitem in $item.items )
+                    #menuItem( $subitem )
+                #end
+            </ul>
+        #end
+    </li>
+#end
+##
+#macro ( filteredMainMenu $menus )
+    ## Iterate over all menus defined in the site.xml
+    #foreach( $menu in $menus )
+        ## Iterate over all menu items in the current menu.
+        #foreach( $item in $menu.items )
+            ## Calculate the relative address of this item.
+            #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
+            #set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
+
+            ## Extract the item's section.
+            #if ( $currentItemHref.startsWith("https://www.apache.org/"))
+                #set ( $currentItemSectionName = "apache")
+            #else
+                #set ( $currentItemSectionName = $currentItemHref.replaceAll( '\.\./', '') )
+                #if ( !$currentItemSectionName.contains('/'))
+                    #set ( $currentItemSectionName = "home" )
+                #else
+                    #set ( $currentItemSectionName = $currentItemSectionName.substring(0, $currentItemSectionName.indexOf('/')) )
+                #end
+            #end
+
+            ## If the items section matches that of the current page, output the link.
+            #if ($currentItemSectionName == $sectionName)
+                #if ( !$showMenu )
+                    ## We only want to output the menu if there is any content,
+                    ## so check if it has been initialized. If not, do it.
+                    <nav class="col-sm-push col-md-2 pt-3 sidebar">
+                    <div class="sidebar-sticky">
+                    <ul class="nav flex-column">
+                    #set ( $showMenu = true )
+                #end
+                #menuItem( $item )
+            #end
+        #end
+    #end
+    ## If the menu is output, we need to close it.
+    #if ( $showMenu )
+        </ul>
+        </div>
+        </nav>
+    #end
+#end
+##
+#macro ( mainMenu $menus )
+#**##foreach( $menu in $menus )
+#*  *##if ( $menu.name )
+#*    *##if ( $menu.img )
+#*      *##if( $menu.position )
+#*        *##set ( $position = $menu.position )
+#*      *##else
+#*        *##set ( $position = "left" )
+#*      *##end
+##
+#*      *##if ( !$decoration.isLink( $menu.img ) )
+#*        *##set ( $src = $PathTool.calculateLink( $menu.img, $relativePath ) )
+#*        *##set ( $src = $src.replaceAll( '\\', '/' ) )
+#*        *##set ( $src = ' src="' + $src + '"' )
+#*      *##else
+#*        *##set ( $src = ' src="' + $menu.img + '"' )
+#*      *##end
+##
+#*      *##if( $menu.alt )
+#*        *##set ( $alt = ' alt="' + $menu.alt + '"' )
+#*      *##else
+#*        *##set ( $alt = ' alt="' + $menu.name + '"' )
+#*      *##end
+##
+#*      *##if( $menu.border )
+#*        *##set ( $border = ' border="' + $menu.border + '"' )
+#*      *##else
+#*        *##set ( $border = ' border="0"' )
+#*      *##end
+##
+#*      *##if( $menu.width )
+#*        *##set ( $width = ' width="' + $menu.width + '"' )
+#*      *##else
+#*        *##set ( $width = "" )
+#*      *##end
+#*      *##if( $menu.height )
+#*        *##set ( $height = ' height="' + $menu.height + '"' )
+#*      *##else
+#*        *##set ( $height = "" )
+#*      *##end
+#*      *##if( $menu.title )
+#*        *##set ( $title = ' title="' + $menu.title + '"' )
+#*      *##else
+#*        *##set ( $title = "" )
+#*      *##end
+##
+#*      *##set ( $img = '<img class="imageLink"' + $src + $alt + $border + $width + $height + $title + "/>" )
+##
+#*      *##if ( $position == "left" )
+        <h5>$img $menu.name</h5>
+#*      *##else
+        <h5>$menu.name $img</h5>
+#*      *##end
+#*    *##else
+       <h5>$menu.name</h5>
+#*    *##end
+#*  *##end
+#*  *##if ( $menu.items && $menu.items.size() > 0 )
+    <ul>
+#*    *##foreach( $item in $menu.items )
+#*      *##menuItem( $item )
+#*    *##end
+    </ul>
+#*  *##end
+#**##end
+#end
+##
+#macro ( copyright )
+#**##if ( $project )
+#*  *##set ( $period = "" )
+#*  *##set ( $currentYear = ${currentDate.year} + 1900 )
+##
+#*  *##if ( ${project.inceptionYear} && ( ${project.inceptionYear} != ${currentYear.toString()} ) )
+      ${project.inceptionYear}&#x2013;${currentYear}${period}##
+#*  *##else
+      ${currentYear}${period}##
+#*  *##end
+##
+#*  *# <a href="$project.organization.url">${project.organization.name}</a>.
+#**##end
+#end
+##
+#macro ( publishDate $position $decorationPublishDate $version )
+#**##if ( $publishDate )
+#*  *##set ( $dateValue = $dateFormat.format( $publishDate ) )
+#**##elseif ( $decoration.custom.getChild( 'publishDate' ) )
+#*  *##set ( $dateValue = $decoration.custom.getChild( 'publishDate' ).getValue() )
+#**##else
+#*  *##set ( $dateValue = $dateFormat.format( $currentDate ) )
+#**##end
+##
+#**##set ( $datePosition = $decorationPublishDate.position )
+#**##set ( $versionPosition = $version.position )
+##
+#**##set ( $breadcrumbs = $decoration.body.breadcrumbs )
+#**##set ( $links = $decoration.body.links )
+##
+#**##if ( $datePosition.equalsIgnoreCase( "right" ) && $links && $links.size() > 0 )
+#*  *##set ( $prefix = "&nbsp;|" )
+#**##else
+#*  *##set ( $prefix = "" )
+#**##end
+##
+#**##if ( $datePosition.equalsIgnoreCase( $position ) )
+#*  *##if ( ( $datePosition.equalsIgnoreCase( "right" ) ) || ( $datePosition.equalsIgnoreCase( "bottom" ) ) )
+        $prefix <span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateValue</span>
+#*    *##if ( $versionPosition.equalsIgnoreCase( $position ) )
+        &nbsp;| <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
+#*    *##end
+#*  *##elseif ( ( $datePosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $datePosition.equalsIgnoreCase( "navigation-top" ) ) )
+      <div id="lastPublished">
+        <span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateValue</span>
+#*      *##if ( $versionPosition.equalsIgnoreCase( $position ) )
+          &nbsp;| <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
+#*      *##end
+      </div>
+#*    *##elseif ( $datePosition.equalsIgnoreCase( "left" ) )
+      <div class="xleft">
+        <span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateValue</span>
+#*      *##if ( $versionPosition.equalsIgnoreCase( $position ) )
+          &nbsp;| <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
+#*      *##end
+#*      *##if ( $breadcrumbs && $breadcrumbs.size() > 0 )
+          | #breadcrumbs( $breadcrumbs )
+#*      *##end
+      </div>
+#*  *##end
+#**##elseif ( $versionPosition.equalsIgnoreCase( $position ) )
+#*  *##if ( ( $versionPosition.equalsIgnoreCase( "right" ) ) || ( $versionPosition.equalsIgnoreCase( "bottom" ) ) )
+      $prefix <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
+#*  *##elseif ( ( $versionPosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $versionPosition.equalsIgnoreCase( "navigation-top" ) ) )
+      <div id="lastPublished">
+        <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
+      </div>
+#*  *##elseif ( $versionPosition.equalsIgnoreCase( "left" ) )
+      <div class="xleft">
+        <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
+#*      *##if ( $breadcrumbs && $breadcrumbs.size() > 0 )
+          | #breadcrumbs( $breadcrumbs )
+#*      *##end
+      </div>
+#*  *##end
+#**##elseif ( $position.equalsIgnoreCase( "left" ) )
+#*  *##if ( $breadcrumbs && $breadcrumbs.size() > 0 )
+      <div class="xleft">
+#*      *##breadcrumbs( $breadcrumbs )
+      </div>
+#*  *##end
+#**##end
+#end
+##
+#macro ( poweredByLogo $poweredBy )
+#**##if( $poweredBy )
+#*  *##foreach ($item in $poweredBy)
+#*    *##if( $item.href )
+#*      *##set ( $href = $PathTool.calculateLink( $item.href, $relativePath ) )
+#*      *##set ( $href = $href.replaceAll( '\\', '/' ) )
+#*    *##else
+#*      *##set ( $href="http://maven.apache.org/" )
+#*    *##end
+##
+#*    *##if( $item.name )
+#*      *##set ( $name = $item.name )
+#*    *##else
+#*      *##set ( $name = $i18n.getString( "site-renderer", $locale, "template.builtby" )  )
+#*      *##set ( $name = "${name} Maven"  )
+#*    *##end
+##
+#*    *##if( $item.img )
+#*      *##set ( $img = $item.img )
+#*    *##else
+#*      *##set ( $img = "images/maven-feather.png" )
+#*    *##end
+##
+#*    *##if ( !$decoration.isLink( $img ) )
+#*      *##set ( $img = $PathTool.calculateLink( $img, $relativePath ) )
+#*      *##set ( $img = $img.replaceAll( '\\', '/' ) )
+#*    *##end
+##
+#*    *##if( $item.alt )
+#*      *##set ( $alt = ' alt="' + $item.alt + '"' )
+#*    *##else
+#*      *##set ( $alt = ' alt="' + $name + '"' )
+#*    *##end
+##
+#*    *##if( $item.border )
+#*      *##set ( $border = ' border="' + $item.border + '"' )
+#*    *##else
+#*      *##set ( $border = "" )
+#*    *##end
+##
+#*    *##if( $item.width )
+#*      *##set ( $width = ' width="' + $item.width + '"' )
+#*    *##else
+#*      *##set ( $width = "" )
+#*    *##end
+#*    *##if( $item.height )
+#*      *##set ( $height = ' height="' + $item.height + '"' )
+#*    *##else
+#*      *##set ( $height = "" )
+#*    *##end
+#*    *##if( $item.title )
+#*      *##set ( $title = ' title="' + $item.title + '"' )
+#*    *##else
+#*      *##set ( $title = "" )
+#*    *##end
+##
+      <a href="$href" title="$name" class="poweredBy">
+        <img class="poweredBy" $alt src="$img" $border $width $height $title />
+      </a>
+#*  *##end
+#*  *##if( $poweredBy.isEmpty() )
+      <a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" class="poweredBy">
+        <img class="poweredBy" alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="$relativePath/images/maven-feather.png" />
+      </a>
+#*  *##end
+#**##else
+    <a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" class="poweredBy">
+      <img class="poweredBy" alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="$relativePath/images/maven-feather.png" />
+    </a>
+#**##end
+#end
+##
diff --git a/website-skin/src/main/resources/META-INF/maven/site.vm b/website-skin/src/main/resources/META-INF/maven/site.vm
new file mode 100644
index 00000000..de129145
--- /dev/null
+++ b/website-skin/src/main/resources/META-INF/maven/site.vm
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+#*
+  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.
+*#
+    #parse( "site-macros.vm" )
+<html xmlns="http://www.w3.org/1999/xhtml"#if ( $locale ) xml:lang="$locale.language" lang="$locale.language"#end>
+<head>
+    #set( $showMenu = false )
+    ## Calculate the currently selected section of the website.
+    ## Cut off all leading "../" segments, so we'll have the url start with the main section name.
+    #set ( $sectionName = $alignedFileName.replaceAll( '\.\./', '') )
+    ## If the remaining par doesn't contain a "/" we're in the root section, which we call "home".
+    #if ( !$sectionName.contains('/'))
+        #set ( $sectionName = "home" )
+    #else
+        #set ( $sectionName = $sectionName.substring(0, $sectionName.indexOf('/')) )
+    #end
+    <meta http-equiv="Content-Type" content="text/html; charset=${outputEncoding}"/>
+    <title>$title</title>
+    <script src="$relativePath/js/jquery.slim.min.js" type="text/javascript"></script>
+    <!--script src="$relativePath/js/popper.min.js" type="javascript"></script-->
+    <script src="$relativePath/js/bootstrap.bundle.min.js" type="text/javascript"></script>
+    <!-- The tooling for adding images and links to Apache events -->
+    <script src="https://www.apachecon.com/event-images/snippet.js" type="text/javascript"></script>
+    <!-- FontAwesome -->
+    <link rel="stylesheet" href="$relativePath/css/all.min.css" type="text/css"/>
+    <!-- Bootstrap -->
+    <link rel="stylesheet" href="$relativePath/css/bootstrap.min.css" type="text/css"/>
+    <!-- Some Maven Site defaults -->
+    <link rel="stylesheet" href="$relativePath/css/maven-base.css" type="text/css"/>
+    <link rel="stylesheet" href="$relativePath/css/maven-theme.css" type="text/css"/>
+    <!-- The PLC4X version of a bootstrap theme -->
+    <link rel="stylesheet" href="$relativePath/css/themes/plc4x.css" type="text/css" id="pagestyle"/>
+    <!-- A custom style for printing content -->
+    <link rel="stylesheet" href="$relativePath/css/print.css" type="text/css" media="print"/>
+
+    #if ( $locale )
+        <meta http-equiv="Content-Language" content="$locale.language"/>
+    #end
+    #if( $decoration.body.head )
+        $render.eval( $decoration.body.head )
+    #end
+    $headContent
+</head>
+<body class="composite">
+<nav class="navbar navbar-light navbar-expand-md bg-faded justify-content-center border-bottom">
+    <!--a href="/" class="navbar-brand d-flex w-50 mr-auto">Navbar 3</a-->
+    #banner( $decoration.bannerLeft "bannerLeft" "navbar-brand")
+    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsingNavbar3">
+        <span class="navbar-toggler-icon"></span>
+    </button>
+    <div class="navbar-collapse collapse w-100" id="collapsingNavbar3">
+        <ul class="navbar-nav w-100 justify-content-center">
+            #if ($sectionName == "home" )
+            <li class="nav-item active">
+            #else
+            <li class="nav-item">
+            #end
+                <a class="nav-link" href="$relativePath/index.html">Home</a>
+            </li>
+            ## Output only navigation options for the highest level menus
+            ## The convention is that if a name is "Hurz", that there is a directory called "hurz"
+            ## in the site and this contains an index.html
+            #foreach( $menu in $decoration.body.menus )
+                #if ($sectionName == $menu.name.toLowerCase())
+                <li class="nav-item active">
+                #else
+                <li class="nav-item">
+                #end
+                    <a class="nav-link" href="$relativePath/$menu.name.toLowerCase()/index.html">$menu.name</a>
+                </li>
+            #end
+        </ul>
+        <ul class="nav navbar-nav ml-auto justify-content-end">
+            <li class="nav-item row valign-middle">
+                <a class="acevent" data-format="wide" data-mode="light" data-event="random" style="width:240px;height:60px;"></a>
+            </li>
+        </ul>
+    </div>
+</nav>
+<div class="container-fluid">
+    <div class="row h-100">
+        #filteredMainMenu( $decoration.body.menus )
+        ## If the menu is shown, set the body width to only a part of the foll width,
+        ## if it is not shown, display it with 100$ width.
+        #if ($showMenu)
+            #set ( $mainStyles = "col-sm-pull col-md-9 col-lg-10 h-100")
+        #else
+            #set ( $mainStyles = "w-100 h-100")
+        #end
+        <main role="main" class="ml-sm-auto px-4 $mainStyles">
+            $bodyContent
+        </main>
+        <footer class="pt-4 my-md-5 pt-md-5 w-100 border-top">
+            <div class="row justify-content-md-center" style="font-size: 13px">
+                <div class="col col-6 text-center">
+                #if( $decoration.body.footer )
+                    $render.eval( $decoration.body.footer )
+                #else
+                    Copyright &#169;#copyright()All rights reserved.<br/>
+                    Apache PLC4X, PLC4X, Apache, the Apache feather logo, and the Apache PLC4X project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+                    #publishDate("bottom" $decoration.publishDate $decoration.version )
+                    <br/><div style="text-align:center;">Home screen image taken from <a
+                        href="https://flic.kr/p/chEftd">Flickr</a>, "Tesla Robot Dance" by Steve Jurvetson, licensed
+                    under <a href="https://creativecommons.org/licenses/by/2.0/">CC BY 2.0 Generic</a>, image cropped
+                    and blur effect added.</div>
+                #end
+                </div>
+            </div>
+        </footer>
+    </div>
+</div>
+
+<!-- Bootstrap core JavaScript
+================================================== -->
+<!-- Placed at the end of the document so the pages load faster -->
+<script src="$relativePath/js/jquery.slim.min.js"></script>
+<script src="$relativePath/js/popper.min.js"></script>
+<script src="$relativePath/js/bootstrap.min.js"></script>
+<script type="text/javascript">
+    $('.carousel .carousel-item').each(function(){
+        var next = $(this).next();
+        if (!next.length) {
+            next = $(this).siblings(':first');
+        }
+        next.children(':first-child').clone().appendTo($(this));
+
+        for (let i = 0; i < 3; i++) {
+            next=next.next();
+            if (!next.length) {
+                next = $(this).siblings(':first');
+            }
+            next.children(':first-child').clone().appendTo($(this));
+        }
+    });
+</script>
+</body>
+</html>
diff --git a/website-skin/src/main/resources/META-INF/maven/skin.xml b/website-skin/src/main/resources/META-INF/maven/skin.xml
new file mode 100644
index 00000000..4cacd82b
--- /dev/null
+++ b/website-skin/src/main/resources/META-INF/maven/skin.xml
@@ -0,0 +1,25 @@
+<?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.
+  -->
+<skin xmlns="http://maven.apache.org/SKIN/1.7.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/SKIN/1.7.0 http://maven.apache.org/xsd/skin-1.7.0.xsd">
+  <prerequisites>
+    <doxia-sitetools>1.8</doxia-sitetools>
+  </prerequisites>
+</skin>
diff --git a/website-skin/src/main/resources/css/maven-base.css b/website-skin/src/main/resources/css/maven-base.css
new file mode 100644
index 00000000..322efae7
--- /dev/null
+++ b/website-skin/src/main/resources/css/maven-base.css
@@ -0,0 +1,168 @@
+/*
+ * 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.
+ */
+
+body {
+  margin: 0px;
+  padding: 0px;
+}
+table {
+  padding:0px;
+  width: 100%;
+  margin-left: -2px;
+  margin-right: -2px;
+}
+acronym {
+  cursor: help;
+  border-bottom: 1px dotted #feb;
+}
+table.bodyTable th, table.bodyTable td {
+  padding: 2px 4px 2px 4px;
+  vertical-align: top;
+}
+div.clear{
+  clear:both;
+  visibility: hidden;
+}
+div.clear hr{
+  display: none;
+}
+#bannerLeft, #bannerRight {
+  font-size: xx-large;
+  font-weight: bold;
+}
+#bannerLeft img, #bannerRight img {
+  margin: 0px;
+}
+.xleft, #bannerLeft img {
+  float:left;
+}
+.xright, #bannerRight {
+  float:right;
+}
+#banner {
+  padding: 0px;
+}
+#breadcrumbs {
+  padding: 3px 10px 3px 10px;
+}
+#leftColumn {
+ width: 170px;
+ float:left;
+ overflow: auto;
+}
+#bodyColumn {
+  margin-right: 1.5em;
+  margin-left: 197px;
+}
+#legend {
+  padding: 8px 0 8px 0;
+}
+#navcolumn {
+  padding: 8px 4px 0 8px;
+}
+#navcolumn h5 {
+  margin: 0;
+  padding: 0;
+  font-size: small;
+}
+#navcolumn ul {
+  margin: 0;
+  padding: 0;
+  font-size: small;
+}
+#navcolumn li {
+  list-style-type: none;
+  background-image: none;
+  background-repeat: no-repeat;
+  background-position: 0 0.4em;
+  padding-left: 16px;
+  list-style-position: outside;
+  line-height: 1.2em;
+  font-size: smaller;
+}
+#navcolumn li.expanded {
+  background-image: url(../images/expanded.gif);
+}
+#navcolumn li.collapsed {
+  background-image: url(../images/collapsed.gif);
+}
+#navcolumn li.none {
+  text-indent: -1em;
+  margin-left: 1em;
+}
+#poweredBy {
+  text-align: center;
+}
+#navcolumn img {
+  margin-top: 10px;
+  margin-bottom: 3px;
+}
+#poweredBy img {
+  display:block;
+  margin: 20px 0 20px 17px;
+}
+#search img {
+    margin: 0px;
+    display: block;
+}
+#search #q, #search #btnG {
+    border: 1px solid #999;
+    margin-bottom:10px;
+}
+#search form {
+    margin: 0px;
+}
+#lastPublished {
+  font-size: x-small;
+}
+.navSection {
+  margin-bottom: 2px;
+  padding: 8px;
+}
+.navSectionHead {
+  font-weight: bold;
+  font-size: x-small;
+}
+.section {
+  padding: 4px;
+}
+#footer {
+  padding: 3px 10px 3px 10px;
+  font-size: x-small;
+}
+#breadcrumbs {
+  font-size: x-small;
+  margin: 0pt;
+}
+.source {
+  padding: 12px;
+  margin: 1em 7px 1em 7px;
+}
+.source pre {
+  margin: 0px;
+  padding: 0px;
+}
+#navcolumn img.imageLink, .imageLink {
+  padding-left: 0px;
+  padding-bottom: 0px;
+  padding-top: 0px;
+  padding-right: 2px;
+  border: 0px;
+  margin: 0px;
+}
diff --git a/website-skin/src/main/resources/css/maven-theme.css b/website-skin/src/main/resources/css/maven-theme.css
new file mode 100644
index 00000000..743752db
--- /dev/null
+++ b/website-skin/src/main/resources/css/maven-theme.css
@@ -0,0 +1,155 @@
+/*
+ * 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.
+ */
+
+body {
+  padding: 0px 0px 10px 0px;
+}
+body, td, select, input, li{
+  font-family: Verdana, Helvetica, Arial, sans-serif;
+  font-size: 13px;
+}
+code{
+  font-family: Courier, monospace;
+  font-size: 13px;
+}
+a {
+  text-decoration: none;
+}
+a:link {
+  color:#36a;
+}
+a:visited  {
+  color:#47a;
+}
+a:active, a:hover {
+  color:#69c;
+}
+#legend li.externalLink {
+  background: url(../images/external.png) left top no-repeat;
+  padding-left: 18px;
+}
+a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {
+  background: url(../images/external.png) right center no-repeat;
+  padding-right: 18px;
+}
+#legend li.newWindow {
+  background: url(../images/newwindow.png) left top no-repeat;
+  padding-left: 18px;
+}
+a.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover {
+  background: url(../images/newwindow.png) right center no-repeat;
+  padding-right: 18px;
+}
+h2 {
+  padding: 4px 4px 4px 6px;
+  color: #900;
+  font-weight:900;
+  font-size: x-large;
+}
+h3 {
+  padding: 4px 4px 4px 6px;
+  color: #900;
+  font-weight: normal;
+  font-size: large;
+}
+h4 {
+  padding: 4px 4px 4px 6px;
+  color: #900;
+  font-weight: normal;
+  font-size: large;
+}
+h5 {
+  padding: 4px 4px 4px 6px;
+  color: #900;
+  font-size: medium;
+}
+p {
+  line-height: 1.3em;
+  font-size: small;
+}
+#breadcrumbs {
+  border-top: 1px solid #aaa;
+  border-bottom: 1px solid #aaa;
+  background-color: #ccc;
+}
+#leftColumn {
+  margin: 10px 0 0 5px;
+  border: 1px solid #999;
+  background-color: #eee;
+  padding-bottom: 3px; /* IE-9 scrollbar-fix */
+}
+#navcolumn h5 {
+  font-size: smaller;
+  border-bottom: 1px solid #aaaaaa;
+  padding-top: 2px;
+  color: #000;
+}
+
+table.bodyTable th {
+  color: white;
+  background-color: #bbb;
+  text-align: left;
+  font-weight: bold;
+}
+
+table.bodyTable th, table.bodyTable td {
+  font-size: 1em;
+}
+
+table.bodyTable tr.a {
+  background-color: #ddd;
+}
+
+table.bodyTable tr.b {
+  background-color: #eee;
+}
+
+.source {
+  border: 1px solid #999;
+}
+dl {
+  padding: 4px 4px 4px 6px;
+  border: 1px solid #aaa;
+  background-color: #ffc;
+}
+dt {
+  color: #900;
+}
+#organizationLogo img, #projectLogo img, #projectLogo span{
+  margin: 8px;
+}
+#banner {
+  border-bottom: 1px solid #fff;
+}
+.errormark, .warningmark, .donemark, .infomark {
+  background: url(../images/icon_error_sml.gif) no-repeat;
+}
+
+.warningmark {
+  background-image: url(../images/icon_warning_sml.gif);
+}
+
+.donemark {
+  background-image: url(../images/icon_success_sml.gif);
+}
+
+.infomark {
+  background-image: url(../images/icon_info_sml.gif);
+}
+
diff --git a/website-skin/src/main/resources/css/print.css b/website-skin/src/main/resources/css/print.css
new file mode 100644
index 00000000..18fcbad7
--- /dev/null
+++ b/website-skin/src/main/resources/css/print.css
@@ -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.
+ */
+
+#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {
+	display: none !important;
+}
+#bodyColumn, body.docs div.docs {
+	margin: 0 !important;
+	border: none !important
+}
diff --git a/website-skin/src/main/resources/css/themes/training.css b/website-skin/src/main/resources/css/themes/training.css
new file mode 100644
index 00000000..39643828
--- /dev/null
+++ b/website-skin/src/main/resources/css/themes/training.css
@@ -0,0 +1,945 @@
+/*
+ * 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.
+ */
+
+/* normalize.css v2.1.1 | MIT License | git.io/normalize */
+/* ========================================================================== HTML5 display definitions ========================================================================== */
+/** Correct `block` display not defined in IE 8/9. */
+article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
+
+/** Correct `inline-block` display not defined in IE 8/9. */
+audio, canvas, video { display: inline-block; }
+
+/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
+audio:not([controls]) { display: none; height: 0; }
+
+/** Address styling not present in IE 8/9. */
+[hidden] { display: none; }
+
+/* ========================================================================== Base ========================================================================== */
+/** 1. Prevent system color scheme's background color being used in Firefox, IE, and Opera. 2. Prevent system color scheme's text color being used in Firefox, IE, and Opera. 3. Set default font family to sans-serif. 4. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
+html { background: #fff; /* 1 */ color: #000; /* 2 */ font-family: sans-serif; /* 3 */ -ms-text-size-adjust: 100%; /* 4 */ -webkit-text-size-adjust: 100%; /* 4 */ height: 100%; }
+
+/** Remove default margin. */
+body { margin: 0; padding: 0; min-height: 100%; }
+
+/* ========================================================================== Links ========================================================================== */
+/** Address `outline` inconsistency between Chrome and other browsers. */
+a:focus { outline: thin dotted; }
+
+/** Improve readability when focused and also mouse hovered in all browsers. */
+a:active, a:hover { outline: 0; }
+
+/* ========================================================================== Typography ========================================================================== */
+/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari 5, and Chrome. */
+h1 { font-size: 2em; margin: 0.67em 0; }
+
+/** Address styling not present in IE 8/9, Safari 5, and Chrome. */
+abbr[title] { border-bottom: 1px dotted; }
+
+/** Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. */
+b, strong { font-weight: bold; }
+
+/** Address styling not present in Safari 5 and Chrome. */
+dfn { font-style: italic; }
+
+/** Address differences between Firefox and other browsers. */
+hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; }
+
+/** Address styling not present in IE 8/9. */
+mark { background: #ff0; color: #000; }
+
+/** Correct font family set oddly in Safari 5 and Chrome. */
+code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; }
+
+/** Improve readability of pre-formatted text in all browsers. */
+pre { white-space: pre-wrap; }
+
+/** Set consistent quote types. */
+q { quotes: "\201C" "\201D" "\2018" "\2019"; }
+
+/** Address inconsistent and variable font size in all browsers. */
+small { font-size: 80%; }
+
+/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
+sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
+
+sup { top: -0.5em; }
+
+sub { bottom: -0.25em; }
+
+/* ========================================================================== Embedded content ========================================================================== */
+/** Remove border when inside `a` element in IE 8/9. */
+img { border: 0; }
+
+/** Correct overflow displayed oddly in IE 9. */
+svg:not(:root) { overflow: hidden; }
+
+/* ========================================================================== Figures ========================================================================== */
+/** Address margin not present in IE 8/9 and Safari 5. */
+figure { margin: 0; }
+
+/* ========================================================================== Forms ========================================================================== */
+/** Define consistent border, margin, and padding. */
+fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
+
+/** 1. Correct `color` not being inherited in IE 8/9. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
+legend { border: 0; /* 1 */ padding: 0; /* 2 */ }
+
+/** 1. Correct font family not being inherited in all browsers. 2. Correct font size not being inherited in all browsers. 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. */
+button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ }
+
+/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
+button, input { line-height: normal; }
+
+/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. Correct `select` style inheritance in Firefox 4+ and Opera. */
+button, select { text-transform: none; }
+
+/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
+button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }
+
+/** Re-set default cursor for disabled elements. */
+button[disabled], html input[disabled] { cursor: default; }
+
+/** 1. Address box sizing set to `content-box` in IE 8/9. 2. Remove excess padding in IE 8/9. */
+input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }
+
+/** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */
+input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; }
+
+/** Remove inner padding and search cancel button in Safari 5 and Chrome on OS X. */
+input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
+
+/** Remove inner padding and border in Firefox 4+. */
+button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
+
+/** 1. Remove default vertical scrollbar in IE 8/9. 2. Improve readability and alignment in all browsers. */
+textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ }
+
+/* ========================================================================== Tables ========================================================================== */
+/** Remove most spacing between table cells. */
+table { border-collapse: collapse; border-spacing: 0; }
+
+*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
+
+html, body { font-size: 100%; }
+
+body { background: white; color: #222222; padding: 0; margin: 0; font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; font-weight: normal; font-style: normal; line-height: 1; position: relative; cursor: auto; }
+
+a:hover { cursor: pointer; }
+
+a:focus { outline: none; }
+
+img, object, embed { max-width: 100%; height: auto; }
+
+object, embed { height: 100%; }
+
+img { -ms-interpolation-mode: bicubic; }
+
+#map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object { max-width: none !important; }
+
+.left { float: left !important; }
+
+.right { float: right !important; }
+
+.text-left { text-align: left !important; }
+
+.text-right { text-align: right !important; }
+
+.text-center { text-align: center !important; }
+
+.text-justify { text-align: justify !important; }
+
+.hide { display: none; }
+
+.antialiased, body { -webkit-font-smoothing: antialiased; }
+
+img { display: inline-block; vertical-align: middle; }
+
+textarea { height: auto; min-height: 50px; }
+
+select { width: 100%; }
+
+.c-white {
+  color:white !important;
+}
+
+p.lead, .paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { font-size: 1.21875em; line-height: 1.6; color: black; }
+
+.subheader, #content #toctitle, .admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title, .tableblock > caption { line-height: 1.4; color: #6f6f6f; font-weight: 300; margin-top:  [...]
+
+/* Typography resets */
+div, dl, dt, dd, ul, ol, li, h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; direction: ltr; }
+
+/* Default Link Styles */
+a { color: #2ba6cb; text-decoration: none; line-height: inherit; }
+a:hover, a:focus { color: #2795b6; }
+a img { border: none; }
+
+/* Default paragraph styles */
+p { font-family: inherit; font-weight: normal; font-size: 1em; line-height: 1.6; margin-bottom: 1.25em; text-rendering: optimizeLegibility; }
+p aside { font-size: 0.875em; line-height: 1.35; font-style: italic; }
+
+/* Default header styles */
+h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { font-family: Arial, sans-serif; font-weight: normal; font-style: normal; color: #C42043; text-rendering: optimizeLegibility; margin-top: 0.5em; margin-bottom: 0.5em; line-height: 1.2125em; }
+h1 small, h2 small, h3 small, #toctitle small, .sidebarblock > .content > .title small, h4 small, h5 small, h6 small { font-size: 60%; color: #ff6b15; line-height: 0; }
+
+h1 { font-size: 2.125em; }
+
+h2 { font-size: 1.6875em; }
+
+h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.375em; }
+
+h4 { font-size: 1.125em; }
+
+h5 { font-size: 1.125em; }
+
+h6 { font-size: 1em; }
+
+hr { border: solid #dddddd; border-width: 1px 0 0; clear: both; margin: 1.25em 0 1.1875em; height: 0; }
+
+/* Helpful Typography Defaults */
+em, i { font-style: italic; line-height: inherit; }
+
+strong, b { font-weight: bold; line-height: inherit; }
+
+small { font-size: 60%; line-height: inherit; }
+
+code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: bold; color: #A42052; background-color: #f5f5f5; border-radius: 4px; }
+
+/* Lists */
+ul, ol, dl { font-size: 1em; line-height: 1.2; margin-bottom: 1.25em; list-style-position: outside; font-family: inherit; }
+
+ul, ol { margin-left: 1.5em; }
+
+/* Unordered Lists */
+ul li ul, ul li ol { margin-left: 1.25em; margin-bottom: 0; font-size: 1em; /* Override nested font-size change */ }
+ul.square li ul, ul.circle li ul, ul.disc li ul { list-style: inherit; }
+ul.square { list-style-type: square; }
+ul.circle { list-style-type: circle; }
+ul.disc { list-style-type: disc; }
+ul.no-bullet { list-style: none; }
+
+/* Ordered Lists */
+ol li ul, ol li ol { margin-left: 1.25em; margin-bottom: 0; }
+
+/* Definition Lists */
+dl dt { margin-bottom: 0.3125em; font-weight: bold; }
+dl dd { margin-bottom: 1.25em; }
+
+/* Abbreviations */
+abbr, acronym { text-transform: uppercase; font-size: 90%; color: #222222; border-bottom: 1px dotted #dddddd; cursor: help; }
+
+abbr { text-transform: none; }
+
+/* Blockquotes */
+blockquote { margin: 0 0 1.25em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #dddddd; }
+blockquote cite { display: block; font-size: 0.8125em; color: #555555; }
+blockquote cite:before { content: "\2014 \0020"; }
+blockquote cite a, blockquote cite a:visited { color: #555555; }
+
+blockquote, blockquote p { line-height: 1.6; color: #6f6f6f; }
+
+/* Microformats */
+.vcard { display: inline-block; margin: 0 0 1.25em 0; border: 1px solid #dddddd; padding: 0.625em 0.75em; }
+.vcard li { margin: 0; display: block; }
+.vcard .fn { font-weight: bold; font-size: 0.9375em; }
+
+.vevent .summary { font-weight: bold; }
+.vevent abbr { cursor: auto; text-decoration: none; font-weight: bold; border: none; padding: 0 0.0625em; }
+
+@media only screen and (min-width: 768px) { h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.4; }
+  h1 { font-size: 2.75em; }
+  h2 { font-size: 2.3125em; }
+  h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.6875em; }
+  h4 { font-size: 1.4375em; } }
+/* Print styles.  Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/ Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
+*/
+.print-only { display: none !important; }
+
+@media print { * { background: transparent !important; color: #000 !important; /* Black prints faster: h5bp.com/s */ box-shadow: none !important; text-shadow: none !important; }
+  a, a:visited { text-decoration: underline; }
+  a[href]:after { content: " (" attr(href) ")"; }
+  abbr[title]:after { content: " (" attr(title) ")"; }
+  .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
+  pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
+  thead { display: table-header-group; /* h5bp.com/t */ }
+  tr, img { page-break-inside: avoid; }
+  img { max-width: 100% !important; }
+  @page { margin: 0.5cm; }
+  p, h2, h3, #toctitle, .sidebarblock > .content > .title { orphans: 3; widows: 3; }
+  h2, h3, #toctitle, .sidebarblock > .content > .title { page-break-after: avoid; }
+  .hide-on-print { display: none !important; }
+  .print-only { display: block !important; }
+  .hide-for-print { display: none !important; }
+  .show-for-print { display: inherit !important; } }
+/* Tables */
+table { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; }
+table thead, table tfoot { background: whitesmoke; font-weight: bold; }
+table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; }
+table tr th, table tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; }
+table tr.even, table tr.alt, table tr:nth-of-type(even) { background: #f9f9f9; }
+table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: 1.4; }
+
+.clearfix:before, .clearfix:after, .float-group:before, .float-group:after { content: " "; display: table; }
+.clearfix:after, .float-group:after { clear: both; }
+
+*:not(pre) > code { font-family: Arial, sans-serif; font-weight: bold; font-size: inherit; padding: 3px; white-space: nowrap; background-color: #eeeeee; border: 0 solid #dddddd; -webkit-border-radius: 0; border-radius: 0; text-shadow: none; }
+
+pre, pre > code { line-height: 1.4; color: black; font-family: monospace, serif; font-weight: normal; }
+
+kbd.keyseq { color: #555555; }
+
+kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; }
+
+kbd kbd:first-child { margin-left: 0; }
+
+kbd kbd:last-child { margin-right: 0; }
+
+.menuseq, .menu { color: #090909; }
+
+#header, #content, #footnotes, #footer { width: 100%; margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; *zoom: 1; position: relative; padding-left: 0.9375em; padding-right: 0.9375em; }
+#header:before, #header:after, #content:before, #content:after, #footnotes:before, #footnotes:after, #footer:before, #footer:after { content: " "; display: table; }
+#header:after, #content:after, #footnotes:after, #footer:after { clear: both; }
+
+#header { margin-bottom: 2.5em; }
+#header > h1 { color: black; font-weight: bold; border-bottom: 1px solid #dddddd; margin-bottom: -28px; padding-bottom: 32px; }
+#header span { color: #6f6f6f; }
+#header #revnumber { text-transform: capitalize; }
+#header br { display: none; }
+#header br + span { padding-left: 3px; }
+#header br + span:before { content: "\2013 \0020"; }
+#header br + span.author { padding-left: 0; }
+#header br + span.author:before { content: ", "; }
+
+#toc { border-bottom: 1px solid #dddddd; padding-bottom: 1.25em; }
+#toc > ul { margin-left: 0.25em; }
+#toc ul.sectlevel0 > li > a { font-style: italic; }
+#toc ul.sectlevel0 ul.sectlevel1 { margin-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; }
+#toc ul { list-style-type: none; }
+
+#toctitle { color: #6f6f6f; }
+
+@media only screen and (min-width: 1280px) { body.toc2 { padding-left: 20em; }
+  #toc.toc2 { position: fixed; width: 20em; left: 0; top: 0; border-right: 1px solid #dddddd; border-bottom: 0; z-index: 1000; padding: 1em; height: 100%; overflow: auto; }
+  #toc.toc2 #toctitle { margin-top: 0; }
+  #toc.toc2 > ul { font-size: .95em; }
+  #toc.toc2 ul ul { margin-left: 0; padding-left: 1.25em; }
+  #toc.toc2 ul.sectlevel0 ul.sectlevel1 { padding-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; }
+  body.toc2.toc-right { padding-left: 0; padding-right: 20em; }
+  body.toc2.toc-right #toc.toc2 { border-right: 0; border-left: 1px solid #dddddd; left: auto; right: 0; } }
+#content #toc { border-style: solid; border-width: 1px; border-color: #d9d9d9; margin-bottom: 1.25em; padding: 1.25em; background: #f2f2f2; border-width: 0; -webkit-border-radius: 0; border-radius: 0; }
+#content #toc > :first-child { margin-top: 0; }
+#content #toc > :last-child { margin-bottom: 0; }
+#content #toc a { text-decoration: none; }
+
+#content #toctitle { font-weight: bold; font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; font-size: 1em; padding-left: 0.125em; }
+
+#footer { max-width: 100%; background-color: #222222; padding: 1.25em; }
+
+#footer-text { color: #dddddd; line-height: 1.44; }
+
+.sect1 { padding-bottom: 1.25em; }
+
+.sect1 + .sect1 { border-top: 1px solid #dddddd; }
+
+#content h1 > a.anchor, h2 > a.anchor, h3 > a.anchor, #toctitle > a.anchor, .sidebarblock > .content > .title > a.anchor, h4 > a.anchor, h5 > a.anchor, h6 > a.anchor { position: absolute; width: 1em; margin-left: -1em; display: block; text-decoration: none; visibility: hidden; text-align: center; font-weight: normal; }
+#content h1 > a.anchor:before, h2 > a.anchor:before, h3 > a.anchor:before, #toctitle > a.anchor:before, .sidebarblock > .content > .title > a.anchor:before, h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before { content: '\00A7'; font-size: .85em; vertical-align: text-top; display: block; margin-top: 0.05em; }
+#content h1:hover > a.anchor, #content h1 > a.anchor:hover, h2:hover > a.anchor, h2 > a.anchor:hover, h3:hover > a.anchor, #toctitle:hover > a.anchor, .sidebarblock > .content > .title:hover > a.anchor, h3 > a.anchor:hover, #toctitle > a.anchor:hover, .sidebarblock > .content > .title > a.anchor:hover, h4:hover > a.anchor, h4 > a.anchor:hover, h5:hover > a.anchor, h5 > a.anchor:hover, h6:hover > a.anchor, h6 > a.anchor:hover { visibility: visible; }
+#content h1 > a.link, h2 > a.link, h3 > a.link, #toctitle > a.link, .sidebarblock > .content > .title > a.link, h4 > a.link, h5 > a.link, h6 > a.link { color: #222222; text-decoration: none; }
+#content h1 > a.link:hover, h2 > a.link:hover, h3 > a.link:hover, #toctitle > a.link:hover, .sidebarblock > .content > .title > a.link:hover, h4 > a.link:hover, h5 > a.link:hover, h6 > a.link:hover { color: #151515; }
+
+.imageblock, .literalblock, .listingblock, .verseblock, .videoblock { margin-bottom: 1.25em; }
+
+.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-align: left; font-weight: bold; }
+
+.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; }
+
+table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
+
+.admonitionblock > table { border: 0; background: none; width: 100%; }
+.admonitionblock > table td.icon { text-align: center; width: 80px; }
+.admonitionblock > table td.icon img { max-width: none; }
+.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; }
+.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; }
+.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }
+
+.exampleblock > .content { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: white; -webkit-border-radius: 0; border-radius: 0; }
+.exampleblock > .content > :first-child { margin-top: 0; }
+.exampleblock > .content > :last-child { margin-bottom: 0; }
+.exampleblock > .content h1, .exampleblock > .content h2, .exampleblock > .content h3, .exampleblock > .content #toctitle, .sidebarblock.exampleblock > .content > .title, .exampleblock > .content h4, .exampleblock > .content h5, .exampleblock > .content h6, .exampleblock > .content p { color: #333333; }
+.exampleblock > .content h1, .exampleblock > .content h2, .exampleblock > .content h3, .exampleblock > .content #toctitle, .sidebarblock.exampleblock > .content > .title, .exampleblock > .content h4, .exampleblock > .content h5, .exampleblock > .content h6 { line-height: 1; margin-bottom: 0.625em; }
+.exampleblock > .content h1.subheader, .exampleblock > .content h2.subheader, .exampleblock > .content h3.subheader, .exampleblock > .content .subheader#toctitle, .sidebarblock.exampleblock > .content > .subheader.title, .exampleblock > .content h4.subheader, .exampleblock > .content h5.subheader, .exampleblock > .content h6.subheader { line-height: 1.4; }
+
+.exampleblock.result > .content { -webkit-box-shadow: 0 1px 8px #d9d9d9; box-shadow: 0 1px 8px #d9d9d9; }
+
+.sidebarblock { border-style: solid; border-width: 1px; border-color: #d9d9d9; margin-bottom: 1.25em; padding: 1.25em; background: #f2f2f2; -webkit-border-radius: 0; border-radius: 0; }
+.sidebarblock > :first-child { margin-top: 0; }
+.sidebarblock > :last-child { margin-bottom: 0; }
+.sidebarblock h1, .sidebarblock h2, .sidebarblock h3, .sidebarblock #toctitle, .sidebarblock > .content > .title, .sidebarblock h4, .sidebarblock h5, .sidebarblock h6, .sidebarblock p { color: #333333; }
+.sidebarblock h1, .sidebarblock h2, .sidebarblock h3, .sidebarblock #toctitle, .sidebarblock > .content > .title, .sidebarblock h4, .sidebarblock h5, .sidebarblock h6 { line-height: 1; margin-bottom: 0.625em; }
+.sidebarblock h1.subheader, .sidebarblock h2.subheader, .sidebarblock h3.subheader, .sidebarblock .subheader#toctitle, .sidebarblock > .content > .subheader.title, .sidebarblock h4.subheader, .sidebarblock h5.subheader, .sidebarblock h6.subheader { line-height: 1.4; }
+.sidebarblock > .content > .title { color: #6f6f6f; margin-top: 0; line-height: 1.6; }
+
+.exampleblock > .content > :last-child > :last-child, .exampleblock > .content .olist > ol > li:last-child > :last-child, .exampleblock > .content .ulist > ul > li:last-child > :last-child, .exampleblock > .content .qlist > ol > li:last-child > :last-child, .sidebarblock > .content > :last-child > :last-child, .sidebarblock > .content .olist > ol > li:last-child > :last-child, .sidebarblock > .content .ulist > ul > li:last-child > :last-child, .sidebarblock > .content .qlist > ol > li:la [...]
+
+.literalblock > .content pre, .listingblock > .content pre { background: #eeeeee; border-width: 1px; border-style: dashed; border-color: #666666; -webkit-border-radius: 0; border-radius: 0; padding: 1.25em 1.5625em 1.125em 1.5625em; word-wrap: break-word; }
+.literalblock > .content pre.nowrap, .listingblock > .content pre.nowrap { overflow-x: auto; white-space: pre; word-wrap: normal; }
+.literalblock > .content pre > code, .listingblock > .content pre > code { display: block; }
+@media only screen { .literalblock > .content pre, .listingblock > .content pre { font-size: 0.72em; } }
+@media only screen and (min-width: 768px) { .literalblock > .content pre, .listingblock > .content pre { font-size: 0.81em; } }
+@media only screen and (min-width: 1280px) { .literalblock > .content pre, .listingblock > .content pre { font-size: 0.9em; } }
+
+.listingblock > .content { position: relative; }
+
+.listingblock:hover code[class*=" language-"]:before { text-transform: uppercase; font-size: 0.9em; color: #999; position: absolute; top: 0.375em; right: 0.375em; }
+
+.listingblock:hover code.asciidoc:before { content: "asciidoc"; }
+.listingblock:hover code.clojure:before { content: "clojure"; }
+.listingblock:hover code.css:before { content: "css"; }
+.listingblock:hover code.groovy:before { content: "groovy"; }
+.listingblock:hover code.html:before { content: "html"; }
+.listingblock:hover code.java:before { content: "java"; }
+.listingblock:hover code.javascript:before { content: "javascript"; }
+.listingblock:hover code.python:before { content: "python"; }
+.listingblock:hover code.ruby:before { content: "ruby"; }
+.listingblock:hover code.scss:before { content: "scss"; }
+.listingblock:hover code.xml:before { content: "xml"; }
+.listingblock:hover code.yaml:before { content: "yaml"; }
+
+.listingblock.terminal pre .command:before { content: attr(data-prompt); padding-right: 0.5em; color: #999; }
+
+.listingblock.terminal pre .command:not([data-prompt]):before { content: '$'; }
+
+table.pyhltable { border: 0; margin-bottom: 0; }
+
+table.pyhltable td { vertical-align: top; padding-top: 0; padding-bottom: 0; }
+
+table.pyhltable td.code { padding-left: .75em; padding-right: 0; }
+
+.highlight.pygments .lineno, table.pyhltable td:not(.code) { color: #999; padding-left: 0; padding-right: .5em; border-right: 1px solid #dddddd; }
+
+.highlight.pygments .lineno { display: inline-block; margin-right: .25em; }
+
+table.pyhltable .linenodiv { background-color: transparent !important; padding-right: 0 !important; }
+
+.quoteblock { margin: 0 0 1.25em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #dddddd; }
+.quoteblock blockquote { margin: 0 0 1.25em 0; padding: 0 0 0.5625em 0; border: 0; }
+.quoteblock blockquote > .paragraph:last-child p { margin-bottom: 0; }
+.quoteblock .attribution { margin-top: -.25em; padding-bottom: 0.5625em; font-size: 0.8125em; color: #555555; }
+.quoteblock .attribution br { display: none; }
+.quoteblock .attribution cite { display: block; margin-bottom: 0.625em; }
+
+table thead th, table tfoot th { font-weight: bold; }
+
+table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 0; border-radius: 0; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; }
+
+table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; }
+
+table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; }
+
+table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; }
+
+th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; }
+
+th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; }
+
+th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; }
+
+th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; }
+
+th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; }
+
+th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; }
+
+p.tableblock.header { color: #222222; font-weight: bold; }
+
+td > div.verse { white-space: pre; }
+
+ol { margin-left: 1.75em; }
+
+ul li ol { margin-left: 1.5em; }
+
+dl dd { margin-left: 1.125em; }
+
+dl dd:last-child, dl dd:last-child > :last-child { margin-bottom: 0; }
+
+ol > li p, ul > li p, ul dd, ol dd, .olist .olist, .ulist .ulist, .ulist .olist, .olist .ulist { margin-bottom: 0.625em; }
+
+ul.unstyled, ol.unnumbered, ul.checklist, ul.none { list-style-type: none; }
+
+ul.unstyled, ol.unnumbered, ul.checklist { margin-left: 0.625em; }
+
+ul.checklist li > p:first-child > i[class^="icon-check"]:first-child, ul.checklist li > p:first-child > input[type="checkbox"]:first-child { margin-right: 0.25em; }
+
+ul.checklist li > p:first-child > input[type="checkbox"]:first-child { position: relative; top: 1px; }
+
+ul.inline { margin: 0 auto 0.625em auto; margin-left: -1.375em; margin-right: 0; padding: 0; list-style: none; overflow: hidden; }
+ul.inline > li { list-style: none; float: left; margin-left: 1.375em; display: block; }
+ul.inline > li > * { display: block; }
+
+.unstyled dl dt { font-weight: normal; font-style: normal; }
+
+ol.arabic { list-style-type: decimal; }
+
+ol.decimal { list-style-type: decimal-leading-zero; }
+
+ol.loweralpha { list-style-type: lower-alpha; }
+
+ol.upperalpha { list-style-type: upper-alpha; }
+
+ol.lowerroman { list-style-type: lower-roman; }
+
+ol.upperroman { list-style-type: upper-roman; }
+
+ol.lowergreek { list-style-type: lower-greek; }
+
+.hdlist > table, .colist > table { border: 0; background: none; }
+.hdlist > table > tbody > tr, .colist > table > tbody > tr { background: none; }
+
+td.hdlist1 { padding-right: .8em; font-weight: bold; }
+
+td.hdlist1, td.hdlist2 { vertical-align: top; }
+
+.literalblock + .colist, .listingblock + .colist { margin-top: -0.5em; }
+
+.colist > table tr > td:first-of-type { padding: 0 .8em; line-height: 1; }
+.colist > table tr > td:last-of-type { padding: 0.25em 0; }
+
+.qanda > ol > li > p > em:only-child { color: #2795b6; }
+
+.thumb, .th { line-height: 0; display: inline-block; border: solid 4px white; -webkit-box-shadow: 0 0 0 1px #dddddd; box-shadow: 0 0 0 1px #dddddd; }
+
+.imageblock.left, .imageblock[style*="float: left"] { margin: 0.25em 0.625em 1.25em 0; }
+.imageblock.right, .imageblock[style*="float: right"] { margin: 0.25em 0 1.25em 0.625em; }
+.imageblock > .title { margin-bottom: 0; }
+.imageblock.thumb, .imageblock.th { border-width: 6px; }
+.imageblock.thumb > .title, .imageblock.th > .title { padding: 0 0.125em; }
+
+.image.left, .image.right { margin-top: 0.25em; margin-bottom: 0.25em; display: inline-block; line-height: 0; }
+.image.left { margin-right: 0.625em; }
+.image.right { margin-left: 0.625em; }
+
+a.image { text-decoration: none; }
+
+span.footnote, span.footnoteref { vertical-align: super; font-size: 0.875em; }
+span.footnote a, span.footnoteref a { text-decoration: none; }
+
+#footnotes { padding-top: 0.75em; padding-bottom: 0.75em; margin-bottom: 0.625em; }
+#footnotes hr { width: 20%; min-width: 6.25em; margin: -.25em 0 .75em 0; border-width: 1px 0 0 0; }
+#footnotes .footnote { padding: 0 0.375em; line-height: 1.3; font-size: 0.875em; margin-left: 1.2em; text-indent: -1.2em; margin-bottom: .2em; }
+#footnotes .footnote a:first-of-type { font-weight: bold; text-decoration: none; }
+#footnotes .footnote:last-of-type { margin-bottom: 0; }
+
+#content #footnotes { margin-top: -0.625em; margin-bottom: 0; padding: 0.75em 0; }
+
+.gist .file-data > table { border: none; background: #fff; width: 100%; margin-bottom: 0; }
+.gist .file-data > table td.line-data { width: 99%; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+.big { font-size: larger; }
+
+.small { font-size: smaller; }
+
+.underline { text-decoration: underline; }
+
+.overline { text-decoration: overline; }
+
+.line-through { text-decoration: line-through; }
+
+.aqua { color: #00bfbf; }
+
+.aqua-background { background-color: #00fafa; }
+
+.black { color: black; }
+
+.black-background { background-color: black; }
+
+.blue { color: #0000bf; }
+
+.blue-background { background-color: #0000fa; }
+
+.fuchsia { color: #bf00bf; }
+
+.fuchsia-background { background-color: #fa00fa; }
+
+.gray { color: #606060; }
+
+.gray-background { background-color: #7d7d7d; }
+
+.green { color: #006000; }
+
+.green-background { background-color: #007d00; }
+
+.lime { color: #00bf00; }
+
+.lime-background { background-color: #00fa00; }
+
+.maroon { color: #600000; }
+
+.maroon-background { background-color: #7d0000; }
+
+.navy { color: #000060; }
+
+.navy-background { background-color: #00007d; }
+
+.olive { color: #606000; }
+
+.olive-background { background-color: #7d7d00; }
+
+.purple { color: #600060; }
+
+.purple-background { background-color: #7d007d; }
+
+.red { color: #bf0000; }
+
+.red-background { background-color: #fa0000; }
+
+.silver { color: #909090; }
+
+.silver-background { background-color: #bcbcbc; }
+
+.teal { color: #006060; }
+
+.teal-background { background-color: #007d7d; }
+
+.white { color: #bfbfbf; }
+
+.white-background { background-color: #fafafa; }
+
+.yellow { color: #bfbf00; }
+
+.yellow-background { background-color: #fafa00; }
+
+span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
+
+.admonitionblock td.icon [class^="icon-"]:before { font-size: 2.5em; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); cursor: default; }
+.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #2ba6cb; color: #207c98; }
+.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
+.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
+.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
+.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }
+
+.conum { display: inline-block; color: white !important; background-color: #222222; -webkit-border-radius: 100px; border-radius: 100px; text-align: center; width: 20px; height: 20px; font-size: 12px; font-weight: bold; line-height: 20px; font-family: Arial, sans-serif; font-style: normal; position: relative; top: -2px; letter-spacing: -1px; }
+.conum * { color: white !important; }
+.conum + b { display: none; }
+.conum:after { content: attr(data-value); }
+.conum:not([data-value]):empty { display: none; }
+
+/* Reduce the gap between navigation menu entries */
+.nav-link {display: block; padding: 0.2rem 1rem;}
+
+
+.jumbotron {
+  background: white;
+  margin-bottom:0px;
+}
+
+.px-4 {
+  padding-left: 0px !important;
+  padding-right:0px !important;
+}
+
+.teaser-img {
+  position: relative;
+  background: #FFFFFF;
+  overflow: hidden;
+}
+
+.teaser-img:after {
+  content: ' ';
+  display: block;
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  z-index: 1;
+  opacity: 0.9;
+  background-image: url('../../images/background-index-3.png');
+  background-repeat: no-repeat;
+  background-position: 50% 0;
+  -ms-background-size: cover;
+  -o-background-size: cover;
+  -moz-background-size: cover;
+  -webkit-background-size: cover;
+  background-size: cover;
+  filter: blur(6px);
+  -webkit-filter: blur(6px);
+}
+
+.teaser-box {
+  background:white;
+  /*border: 5px solid #A42052;*/
+  box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22);
+  padding:35px;
+  border-radius:15px;
+  display:inline-block;
+  margin: 50px 30px;
+}
+
+.apache-teaser {
+  position: relative;
+  padding-left: 1em;
+  /*border-left: 0.2em solid #A42052;*/
+  font-size: 16pt;
+  font-weight: 100;
+  margin-bottom:20px;
+}
+
+.apache-teaser:before, .apache-teaser:after {
+  content: '\201C';
+  color: rgb(27, 20, 100);
+}
+
+.apache-teaser:after {
+  content: '\201D';
+}
+
+.header-apache-text {
+  line-height:1.2;
+  font-family: 'Heebo', sans-serif;
+  font-size:32pt;
+  margin-bottom:20px;
+  font-weight:800;
+}
+
+.plc4x-button {
+  display: inline-block ;
+  vertical-align: middle;
+  border: 0;
+  border-radius: 3px;
+  cursor: pointer;
+  font-family: inherit;
+  font-weight: bold;
+  text-transform: uppercase;
+  font-size: 0.9em;
+  letter-spacing: 0.1em;
+  line-height: 1em;
+  padding: 0.75em 1.25em;
+  margin-right:0.125em;
+  margin-left: 0.125em;
+  margin-top:0px;
+}
+
+.plc4x-button-large {
+  font-size: 1.0em;
+  padding: 1em 1.0em;
+}
+
+.plc4x-button.plc4x-button-primary:hover {
+  background: #ea2d80;
+  -webkit-transition: all 0.75s ease;
+  transition: all 0.75s ease;
+  text-decoration: none;
+}
+
+.plc4x-button.plc4x-button-primary {
+  background: #A42052;
+  color: rgba(255, 255, 255, 0.75);
+}
+
+.plc4x-headline {
+  color:#A42052;
+  font-weight:700;
+  display:inline-block;
+  padding:5px;
+  text-align:center;
+}
+
+.section-highlight {
+  padding-left:30px;
+  padding-right:30px;
+  padding-top:30px;
+}
+
+.section-highlight-primary {
+  background-color: #A42052;
+  color:white;
+}
+
+.section-highlight-secondary {
+  background-color: white;
+  color:#A42052;
+}
+
+.section-highlight-text-primary {
+  color:white;
+}
+
+.section-highlight-text-secondary {
+  color:#A42052;
+}
+
+.highlight-icon {
+  border-radius:50%/25%;
+  padding:30px;
+}
+
+.highlight-icon-primary {
+  background:white;
+  color: #A42052;
+}
+
+.highlight-icon-secondary {
+  background:#A42052;
+  color: white;
+}
+
+.center {
+  display:block;
+  margin-left:auto;
+  margin-right:auto;
+}
+
+.margin-rl-0 {
+  margin-left:0;
+  margin-right:0;
+}
+
+.margin-rl-auto {
+  margin-left:auto;
+  margin-right:auto;
+}
+
+.plc4x-logo {
+  margin-top:30px;
+  margin-bottom:30px;
+}
+
+.text-center {
+  text-align:center;
+}
+
+.carousel-control-prev-icon {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E") !important;
+}
+
+.carousel-control-next-icon {
+  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E") !important;
+}
+
+@media (max-width: 768px) {
+  .carousel-inner .carousel-item > div {
+    display: none;
+  }
+  .carousel-inner .carousel-item > div:first-child {
+    display: block;
+  }
+}
+
+.carousel-inner .carousel-item.active,
+.carousel-inner .carousel-item-next,
+.carousel-inner .carousel-item-prev {
+  display: flex;
+}
+
+@media (min-width: 768px) {
+
+  .carousel-inner .carousel-item-right.active,
+  .carousel-inner .carousel-item-next {
+    transform: translateX(33.333%);
+  }
+
+  .carousel-inner .carousel-item-left.active,
+  .carousel-inner .carousel-item-prev {
+    transform: translateX(-33.333%);
+  }
+}
+
+.carousel-inner .carousel-item-right,
+.carousel-inner .carousel-item-left{
+  transform: translateX(0);
+}
+
+#integrationCarousel {
+  margin-left: 50px;
+  margin-right: 50px;
+}
+
+.carousel-control-prev {
+  margin-left: -80px;
+}
+
+.carousel-control-next {
+  margin-right: -80px;
+}
+
+.jumbotron {
+  background: white;
+  margin-bottom:0px;
+}
+
+.px-4 {
+  padding-left: 0px !important;
+  padding-right:0px !important;
+}
+
+
+div.bubble {
+  position: relative;
+  width: 100%;
+  text-align: center;
+  line-height: 1.4em;
+  margin: 40px auto;
+  background-color: #fff;
+  border-radius: 10px;
+  font-family: sans-serif;
+  padding: 20px;
+  font-size: large;
+}
+
+div.thought {
+  width: 100%;
+  border-radius: 20px;
+  padding: 30px;
+}
+
+div.bubble:before,
+div.bubble:after {
+  content: ' ';
+  position: absolute;
+  width: 0;
+  height: 0;
+}
+
+
+div.thought:before,
+div.thought:after {
+  left: 10px;
+  bottom: -30px;
+  width: 40px;
+  height: 40px;
+  background-color: #fff;
+  border: 8px solid #333;
+  -webkit-border-radius: 28px;
+  -moz-border-radius: 28px;
+  border-radius: 28px;
+}
+
+div.thought:after {
+  width: 20px;
+  height: 20px;
+  left: 5px;
+  bottom: -40px;
+  -webkit-border-radius: 18px;
+  -moz-border-radius: 18px;
+  border-radius: 18px;
+}
+
diff --git a/website-skin/src/main/resources/images/expanded.gif b/website-skin/src/main/resources/images/expanded.gif
new file mode 100644
index 00000000..02b74626
Binary files /dev/null and b/website-skin/src/main/resources/images/expanded.gif differ
diff --git a/website-skin/src/main/resources/images/external.png b/website-skin/src/main/resources/images/external.png
new file mode 100644
index 00000000..3f999fc8
Binary files /dev/null and b/website-skin/src/main/resources/images/external.png differ
diff --git a/website-skin/src/main/resources/images/icon_error_sml.gif b/website-skin/src/main/resources/images/icon_error_sml.gif
new file mode 100644
index 00000000..61132ef2
Binary files /dev/null and b/website-skin/src/main/resources/images/icon_error_sml.gif differ
diff --git a/website-skin/src/main/resources/images/icon_info_sml.gif b/website-skin/src/main/resources/images/icon_info_sml.gif
new file mode 100644
index 00000000..c6cb9ad7
Binary files /dev/null and b/website-skin/src/main/resources/images/icon_info_sml.gif differ
diff --git a/website-skin/src/main/resources/images/icon_success_sml.gif b/website-skin/src/main/resources/images/icon_success_sml.gif
new file mode 100644
index 00000000..52e85a43
Binary files /dev/null and b/website-skin/src/main/resources/images/icon_success_sml.gif differ
diff --git a/website-skin/src/main/resources/images/icon_warning_sml.gif b/website-skin/src/main/resources/images/icon_warning_sml.gif
new file mode 100644
index 00000000..873bbb52
Binary files /dev/null and b/website-skin/src/main/resources/images/icon_warning_sml.gif differ
diff --git a/website-skin/src/main/resources/images/maven-feather.png b/website-skin/src/main/resources/images/maven-feather.png
new file mode 100644
index 00000000..f509f824
Binary files /dev/null and b/website-skin/src/main/resources/images/maven-feather.png differ
diff --git a/website-skin/src/main/resources/images/newwindow.png b/website-skin/src/main/resources/images/newwindow.png
new file mode 100644
index 00000000..6287f72b
Binary files /dev/null and b/website-skin/src/main/resources/images/newwindow.png differ


---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@incubator.apache.org
For additional commands, e-mail: cvs-help@incubator.apache.org