Converted site to Hugo
diff --git a/.gitignore b/.gitignore
index 3eace51..97dd012 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,12 +1,7 @@
-# Jekyll generated

-target

-.jekyll-metadata

-

-# IntelliJ generated

-*.iml

-.idea

-.java-version

-

-# Bundler generated

-.bundle

-vendor/

+# Generated content
+target
+
+# IntelliJ generated
+*.iml
+.idea
+.java-version
diff --git a/Gemfile b/Gemfile
deleted file mode 100644
index 0bd62a9..0000000
--- a/Gemfile
+++ /dev/null
@@ -1,4 +0,0 @@
-source "https://rubygems.org"
-
-gem "jekyll"
-gem "json"
diff --git a/Gemfile.lock b/Gemfile.lock
deleted file mode 100644
index 48b700c..0000000
--- a/Gemfile.lock
+++ /dev/null
@@ -1,65 +0,0 @@
-GEM
-  remote: https://rubygems.org/
-  specs:
-    addressable (2.5.2)
-      public_suffix (>= 2.0.2, < 4.0)
-    colorator (1.1.0)
-    concurrent-ruby (1.1.4)
-    em-websocket (0.5.1)
-      eventmachine (>= 0.12.9)
-      http_parser.rb (~> 0.6.0)
-    eventmachine (1.2.7)
-    ffi (1.9.25)
-    forwardable-extended (2.6.0)
-    http_parser.rb (0.6.0)
-    i18n (0.9.5)
-      concurrent-ruby (~> 1.0)
-    jekyll (3.8.5)
-      addressable (~> 2.4)
-      colorator (~> 1.0)
-      em-websocket (~> 0.5)
-      i18n (~> 0.7)
-      jekyll-sass-converter (~> 1.0)
-      jekyll-watch (~> 2.0)
-      kramdown (~> 1.14)
-      liquid (~> 4.0)
-      mercenary (~> 0.3.3)
-      pathutil (~> 0.9)
-      rouge (>= 1.7, < 4)
-      safe_yaml (~> 1.0)
-    jekyll-sass-converter (1.5.2)
-      sass (~> 3.4)
-    jekyll-watch (2.1.2)
-      listen (~> 3.0)
-    json (2.1.0)
-    kramdown (1.17.0)
-    liquid (4.0.1)
-    listen (3.1.5)
-      rb-fsevent (~> 0.9, >= 0.9.4)
-      rb-inotify (~> 0.9, >= 0.9.7)
-      ruby_dep (~> 1.2)
-    mercenary (0.3.6)
-    pathutil (0.16.2)
-      forwardable-extended (~> 2.6)
-    public_suffix (3.0.3)
-    rb-fsevent (0.10.3)
-    rb-inotify (0.10.0)
-      ffi (~> 1.0)
-    rouge (3.3.0)
-    ruby_dep (1.5.0)
-    safe_yaml (1.0.4)
-    sass (3.7.2)
-      sass-listen (~> 4.0.0)
-    sass-listen (4.0.0)
-      rb-fsevent (~> 0.9, >= 0.9.4)
-      rb-inotify (~> 0.9, >= 0.9.7)
-
-PLATFORMS
-  ruby
-
-DEPENDENCIES
-  jekyll
-  json
-
-BUNDLED WITH
-   1.16.1
diff --git a/README.md b/README.md
index 7dd51b6..c778073 100644
--- a/README.md
+++ b/README.md
@@ -15,9 +15,7 @@
 limitations under the License.
 -->
 # Apache Celix website
-The updated Celix website is still under construction and not live yet.
-
-This is source code for the website of [Apache Celix](https://celix.apache.org/), hosted at:
+This is the source code for the website of [Apache Celix](https://celix.apache.org/), hosted at:
 
     https://celix.apache.org/
 
@@ -30,8 +28,8 @@
 and commit the changes to the `asf-site` branch.
 
 ## Content Management System
-The Celix website uses Jekyll as static website generator. 
-See [Jekyll](https://jekyllrb.com/) for more info and for details how to install Jekyll.
+The Celix website uses Hugo as static website generator. 
+See [Hugo](https://gohugo.io/) for more info and for details how to install Hugo.
 
 ## Generate the website
 
@@ -46,10 +44,10 @@
 
 ### Generate the static website
 
-To generate the static website, execute `run.sh` to generate and serve the website on `localhost:4000`.
+To generate the static website, execute `hugo` to generate and serve the website on `localhost:1313`.
 
-During development, it may be useful to run an incremental build. For this to work, execute `run_incremental.sh` to 
-continuously generate and serve the website on `localhost:4000`.
+During development, it may be useful to run an incremental build. For this to work, execute `hugo server -D` to 
+continuously generate and serve the website on `localhost:1313`.
 
 ## Publish the website
 
diff --git a/_config.yml b/_config.yml
deleted file mode 100644
index e4e419f..0000000
--- a/_config.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-name:           Apache Celix
-source:         source
-destination:    target/content
-encoding:       UTF-8
-highlighter:    rouge
-markdown:       kramdown
-markdown_ext:   md
-kramdown:
-  input:              GFM
-  syntax_highlighter: rouge
-
-# Allows directly edit pages on GitHub
-celix_repository_url: https://github.com/apache/celix
-celix_repository_source_branch: develop
-
-repository_url: https://github.com/apache/celix-site
-repository_source_branch: master
diff --git a/archetypes/default.md b/archetypes/default.md
new file mode 100644
index 0000000..00e77bd
--- /dev/null
+++ b/archetypes/default.md
@@ -0,0 +1,6 @@
+---
+title: "{{ replace .Name "-" " " | title }}"
+date: {{ .Date }}
+draft: true
+---
+
diff --git a/config.toml b/config.toml
new file mode 100644
index 0000000..1203824
--- /dev/null
+++ b/config.toml
@@ -0,0 +1,36 @@
+baseURL = "http://celix.apache.org"

+title = "Apache Celix"

+languageCode = "en"

+

+contentDir = "source"

+publishDir = "target/content"

+

+uglyURLs = true

+enableRobotsTXT = true

+disableBrowserError = true

+timeout = 3000

+

+disableKinds = ["taxonomy", "taxonomyTerm"]

+ignoreFiles = [ ] # No files to ignore

+

+# Highlighting config. See https://help.farbox.com/pygments.html

+pygmentsCodeFences = true

+pygmentsUseClasses = false

+pygmentsStyle = "emacs"

+

+# Enable Git variables like commit, lastmod

+enableGitInfo = true

+

+[blackfriday]

+hrefTargetBlank = true

+fractions = false

+

+[frontmatter]

+date = ["date", ":filename", "publishDate", "lastmod"]

+

+[params]

+repositoryUrl = "https://github.com/apache/celix"

+repositorySourceBranch = "develop"

+

+siteRepositoryUrl = "https://github.com/apache/celix-site"

+siteRepositorySourceBranch = "master"

diff --git a/extract_celix_docs.sh b/extract_celix_docs.sh
index 6f4fc1e..d7ff47d 100644
--- a/extract_celix_docs.sh
+++ b/extract_celix_docs.sh
@@ -18,14 +18,24 @@
 # A script to extract all markdown files from the Celix main repository
 # and copies them to the path specified in ${site_doc_dir}
 
-celix_src_dir=celix-src
-site_doc_dir=source/docs/celix
+CELIX_SRC_DIR=celix-src
+CELIX_DOC_DIR=source/docs/celix
 
-rm -rf ${site_doc_dir}/*
+rm -rf ${CELIX_DOC_DIR}/*
 
-for file in `cd ${celix_src_dir}; find . -name \*.md`
-do
-    file_dir="`dirname ${file}`"
-    mkdir -p ${site_doc_dir}/${file_dir}
-    cp -v ${celix_src_dir}/${file} ${site_doc_dir}/${file_dir}
+for FILE_PATH in $(cd ${CELIX_SRC_DIR}; find . -name \*.md); do
+    # Retrieve file information
+    FILE_DIR="$(dirname ${FILE_PATH})"
+    FILE_NAME="$(basename ${FILE_PATH})"
+
+    # Copy markdown file to site destination
+    mkdir -p ${CELIX_DOC_DIR}/${FILE_DIR}
+    cp -v ${CELIX_SRC_DIR}/${FILE_PATH} ${CELIX_DOC_DIR}/${FILE_DIR}
+
+    # Prepend markdown file with Hugo header
+    SECOND_LINE=$(head -n 2 ${FILE_PATH} | tail -n 1)
+
+    if [[ "${SECOND_LINE}" != *"type: celix-doc"* ]]; then
+        sed -i '1s;^;---\ntype: celix-doc\ntitle: ${FILE_NAME}\n---\n\n;' ${FILE_PATH}
+    fi
 done
diff --git a/layouts/404.html b/layouts/404.html
new file mode 100644
index 0000000..a94e8c3
--- /dev/null
+++ b/layouts/404.html
@@ -0,0 +1,65 @@
+<!--
+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.
+-->
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <title>404 Page Not Found / {{ site.Title }}</title>
+
+    {{ $favicon := "assets/img/favicon.ico" }}
+    <link rel="icon" href="{{ $favicon | relURL }}">
+
+    <!-- Bootstrap core CSS -->
+    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
+
+    <!-- Custom style -->
+    <link href="/assets/css/style.css" rel="stylesheet">
+</head>
+<body class="light-grey">
+
+{{ partial "header.html" . }}
+{{ $configURL := printf "%s/blob/%s/config.toml" .Site.Params.siteRepositoryUrl .Site.Params.siteRepositorySourceBranch | safeURL }}
+
+<div class="section">
+    <div class="container">
+        <div class="row py-4">
+            <div class="col-sm-12 card">
+                <div class="card-body pt-5">
+                    <a class="edit-on-gh" href="{{ .Site.Params.siteRepositoryUrl }}/edit/{{ .Site.Params.siteRepositorySourceBranch }}/layouts/404.html" title="Edit this page on GitHub">Edit on GitHub</a>
+
+                    <h1>404 Page Not Found</h1>
+
+                    <p>
+                        The page was moved or never existed. Use the menu above to navigate or go to <a href="{{ .Site.Home.RelPermalink }}">home page</a>.
+                        If you noticed any site problem, typos, etc on any page, please correct
+                        using the "Edit on GitHub" button or check on <a href="{{ .Site.Params.siteRepositoryUrl }}">{{ .Site.Params.siteRepositoryUrl }}</a>.
+                        For example, the general site config is stored in the <a href="{{ $configURL }}"><code class="highlighter-rouge">config.toml</code></a>.
+                    </p>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+{{ partial "footer.html" . }}
+
+</body>
+</html>
diff --git a/source/_layouts/celix-md.html b/layouts/_default/baseof.html
similarity index 73%
rename from source/_layouts/celix-md.html
rename to layouts/_default/baseof.html
index a1f9a11..9d30c84 100644
--- a/source/_layouts/celix-md.html
+++ b/layouts/_default/baseof.html
@@ -22,7 +22,10 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>{{ page.title }} / Apache Celix</title>
+    <title>{{ if .Title }}{{ .Title }} / {{ end }}{{ site.Title }}</title>
+
+    {{ $favicon := "assets/img/favicon.ico" }}
+    <link rel="icon" href="{{ $favicon | relURL }}">
 
     <!-- Bootstrap core CSS -->
     <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
@@ -32,24 +35,23 @@
 </head>
 <body class="light-grey">
 
-{% include header.html %}
+{{ partial "header.html" . }}
 
 <div class="section">
     <div class="container">
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                    <a class="edit-on-gh" href="{{ site.celix_repository_url }}/edit/{{ site.celix_repository_source_branch }}/{{ page.path | replace_first:'docs/celix/','' }}" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/" title="back to documentation">&lt;&lt; back to documentation</a>
+                    <a class="edit-on-gh" href="{{ .Site.Params.siteRepositoryUrl }}/edit/{{ .Site.Params.siteRepositorySourceBranch }}/source/{{ .Page.File.Path }}" title="Edit this page on GitHub">Edit on GitHub</a>
 
-                    {{ content }}
+                    {{ block "main" . }}{{ end }}
                 </div>
             </div>
         </div>
     </div>
 </div>
 
-{% include footer.html %}
+{{ partial "footer.html" . }}
 
 </body>
 </html>
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
new file mode 100644
index 0000000..c1339be
--- /dev/null
+++ b/layouts/_default/list.html
@@ -0,0 +1,3 @@
+{{ define "main" }}
+	{{ .Content }}
+{{ end }}
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
new file mode 100644
index 0000000..c1339be
--- /dev/null
+++ b/layouts/_default/single.html
@@ -0,0 +1,3 @@
+{{ define "main" }}
+	{{ .Content }}
+{{ end }}
diff --git a/source/_layouts/default.html b/layouts/celix-doc/baseof.html
similarity index 67%
rename from source/_layouts/default.html
rename to layouts/celix-doc/baseof.html
index 24fdb3f..e29b09b 100644
--- a/source/_layouts/default.html
+++ b/layouts/celix-doc/baseof.html
@@ -22,7 +22,10 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>{{ page.title }} / Apache Celix</title>
+    <title>{{ if .Title }}{{ .Title }} / {{ end }}{{ site.Title }}</title>
+
+    {{ $favicon := "assets/img/favicon.ico" }}
+    <link rel="icon" href="{{ $favicon | relURL }}">
 
     <!-- Bootstrap core CSS -->
     <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
@@ -32,27 +35,25 @@
 </head>
 <body class="light-grey">
 
-{% include header.html %}
+{{ partial "header.html" . }}
 
 <div class="section">
     <div class="container">
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                    <a class="edit-on-gh" href="{{ site.repository_url }}/edit/{{ site.repository_source_branch }}/source/{{ page.path }}" title="Edit this page on GitHub">Edit on GitHub</a>
+                    {{ $page := replaceRE "TODO" "" .Page.File.Path }} <!-- TODO: .*(docs\/celix\/) -->
+                    <a class="edit-on-gh" href="{{ .Site.Params.repositoryUrl }}/edit/{{ .Site.Params.repositorySourceBranch }}/{{ $page }}" title="Edit this page on GitHub">Edit on GitHub</a>
+                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
 
-                    {% if page.parent %}
-                    <a href="{{ page.parent.url }}" title="back to {{ page.parent.title }}">&lt;&lt; back to {{ page.parent.title }}</a>
-                    {% endif %}
-
-                    {{ content }}
+                    {{ block "main" . }}{{ end }}
                 </div>
             </div>
         </div>
     </div>
 </div>
 
-{% include footer.html %}
+{{ partial "footer.html" . }}
 
 </body>
 </html>
diff --git a/layouts/celix-doc/list.html b/layouts/celix-doc/list.html
new file mode 100644
index 0000000..c1339be
--- /dev/null
+++ b/layouts/celix-doc/list.html
@@ -0,0 +1,3 @@
+{{ define "main" }}
+	{{ .Content }}
+{{ end }}
diff --git a/layouts/celix-doc/single.html b/layouts/celix-doc/single.html
new file mode 100644
index 0000000..c1339be
--- /dev/null
+++ b/layouts/celix-doc/single.html
@@ -0,0 +1,3 @@
+{{ define "main" }}
+	{{ .Content }}
+{{ end }}
diff --git a/layouts/index.html b/layouts/index.html
new file mode 100644
index 0000000..b21192a
--- /dev/null
+++ b/layouts/index.html
@@ -0,0 +1,121 @@
+<!--
+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.
+-->
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <title>{{ site.Title }}</title>
+
+    {{ $favicon := "assets/img/favicon.ico" }}
+    <link rel="icon" href="{{ $favicon | relURL }}">
+
+    <!-- Bootstrap core CSS -->
+    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
+
+    <!-- Custom style -->
+    <link href="/assets/css/style.css" rel="stylesheet">
+
+    <!-- Font awesome icon set -->
+    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
+</head>
+<body>
+
+{{ partial "header.html" . }}
+
+<!-- Page Intro -->
+<div class="section">
+    <div class="container my-5">
+        <div class="section no-pad-bot" id="index-banner">
+            <div class="col-sm-12">
+                <h1 class="text-center">Welcome to Apache Celix</h1>
+            </div>
+
+            <div class="row my-4">
+                <img class="text-center mx-auto img-home" src="/assets/img/celix.svg" alt="Celix Logo">
+            </div>
+
+            <div class="col-sm-12 mb-4">
+                <h2 class="text-center">An implementation of the OSGi specification adapted to C and C++</h2>
+            </div>
+
+            <div class="col-sm-12 text-center mx-auto">
+                <a href="/download.cgi" class="btn btn-primary btn-lg mb-1">
+                    <i class="fas fa-download"></i> DOWNLOAD
+                </a>
+                &nbsp;
+                <a href="/docs/docs.html" class="btn btn-primary btn-lg mb-1">
+                    <i class="fas fa-book-open"></i> GETTING STARTED
+                </a>
+            </div>
+        </div>
+    </div>
+</div>
+
+<div class="section light-grey">
+    <div class="container py-3">
+
+        <div class="row my-4">
+            <div class="col-sm-12 card">
+                <div class="card-body">
+                    <h4 class="card-title">Welcome to Apache Celix</h4>
+                    <p class="card-text">
+                        Apache Celix is an implementation of the OSGi specification adapted to C and C++. It is a framework to
+                        develop (dynamic) modular software applications using component and/or service-oriented programming.
+                    </p>
+
+                    <p class="card-text">
+                        Apache Celix is primarily developed in C and adds an additional abstraction, in the form of a library, to
+                        support for C++.
+                    </p>
+
+                    <p class="card-text">
+                        Modularity in Apache Celix is achieved by supporting - run-time installed - bundles. <code>Bundles</code>
+                        are zip files and can contain software modules in the form of shared libraries. <code>Modules</code> can
+                        provide and request dynamic services, for and from other modules, by interacting with a provided bundle
+                        context. <code>Services</code> in Apache Celix are "plain old" structs with function pointers or "plain
+                        old C++ Objects" (POCO).
+                    </p>
+                </div>
+            </div>
+        </div>
+
+        <div class="row my-4">
+            <div class="col-sm-12 card">
+                <div class="card-body">
+                    <h4 class="card-title">News</h4>
+                    <p class="card-text">
+                        <strong>30-Jan-2018</strong> - After a successful vote Celix 2.1.0 is released.<br>
+                        <strong>26-Oct-2016</strong> - After a successful vote Celix 2.0.0 is released.<br>
+                        <strong>16-Jul-2014</strong> - After a successful graduation vote Apache Celix has graduated to a top-level project.<br>
+                        <strong>25-Feb-2014</strong> - After a successful vote Celix 1.0.0.incubating is released. The release is now available via the <a href="/download.cgi">download</a> section.<br>
+                        <strong>16-Dec-2012</strong> - After a successful vote Celix 0.0.1-incubating is released.<br>
+                    </p>
+                </div>
+            </div>
+        </div>
+
+    </div>
+</div>
+
+{{ partial "footer.html" . }}
+
+</body>
+</html>
diff --git a/source/_includes/footer.html b/layouts/partials/footer.html
similarity index 89%
rename from source/_includes/footer.html
rename to layouts/partials/footer.html
index a5b8b3c..cc59f88 100644
--- a/source/_includes/footer.html
+++ b/layouts/partials/footer.html
@@ -4,7 +4,7 @@
         <div class="row">
             <div class="col-md-8 text-center">
                 <p class="m-0 text-white">
-                    Copyright &copy; {{ 'now' | date: "%Y" }} The Apache Software Foundation, Licensed under
+                    Copyright &copy; {{ now.Year }} The Apache Software Foundation, Licensed under
                     the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
                     <br>
                     Apache Celix, Celix, Apache, the Apache feather logo and the Apache Celix logo are trademarks of The Apache Software Foundation.
diff --git a/source/_includes/header.html b/layouts/partials/header.html
similarity index 80%
rename from source/_includes/header.html
rename to layouts/partials/header.html
index d65d338..f47aa96 100644
--- a/source/_includes/header.html
+++ b/layouts/partials/header.html
@@ -1,4 +1,4 @@
-<a href="{{ site.celix_repository_url }}" class="github-ribbon">
+<a href="{{ .Site.Params.repositoryUrl }}" class="github-ribbon">
     <img src="/assets/img/forkme_right_red_aa0000.png" alt="Fork me on GitHub">
 </a>
 
@@ -13,16 +13,16 @@
         </button>
         <div class="collapse navbar-collapse" id="navbarResponsive">
             <ul class="navbar-nav ml-auto">
-                {% if page.url == "/" %}<li class="nav-item active">{% else %}<li class="nav-item">{% endif %}
+                {{ if eq .Kind "home" }}<li class="nav-item active">{{ else }}<li class="nav-item">{{ end }}
                     <a class="nav-link" href="/">Home</a>
                 </li>
-                {% if page.url == "/download.cgi" or page.url == "/download.html" %}<li class="nav-item active">{% else %}<li class="nav-item">{% endif %}
+                {{ if hasPrefix .Page.File.Path "download" }}<li class="nav-item active">{{ else }}<li class="nav-item">{{ end }}
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                {% if page.url contains '/docs/' or page.url contains '/celix/' %}<li class="nav-item active">{% else %}<li class="nav-item">{% endif %}
-                    <a class="nav-link" href="/docs/">Docs</a>
+                {{ if hasPrefix .Page.File.Path "docs" }}<li class="nav-item active">{{ else }}<li class="nav-item">{{ end }}
+                    <a class="nav-link" href="/docs/docs.html">Docs</a>
                 </li>
-                {% if page.url contains '/contributing/' %}<li class="nav-item dropdown active">{% else %}<li class="nav-item dropdown">{% endif %}
+                {{ if hasPrefix .Page.File.Path "contributing" }}<li class="nav-item dropdown active">{{ else }}<li class="nav-item dropdown">{{ end }}
                     <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                         Community
                     </a>
@@ -34,7 +34,7 @@
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
                     </div>
                 </li>
-                {% if page.url contains '/support/' %}<li class="nav-item dropdown active">{% else %}<li class="nav-item dropdown">{% endif %}
+                {{ if hasPrefix .Page.File.Path "support" }}<li class="nav-item dropdown active">{{ else }}<li class="nav-item dropdown">{{ end }}
                     <a class="nav-link dropdown-toggle" href="#" id="ddSupport" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                         Support
                     </a>
diff --git a/layouts/robots.txt b/layouts/robots.txt
new file mode 100644
index 0000000..1ce9645
--- /dev/null
+++ b/layouts/robots.txt
@@ -0,0 +1,6 @@
+User-agent: *
+
+Disallow: /404/
+Disallow: 404.html
+
+SITEMAP: {{ "sitemap.xml" | absLangURL }}
diff --git a/layouts/shortcodes/tableofcontents.html b/layouts/shortcodes/tableofcontents.html
new file mode 100644
index 0000000..aca3785
--- /dev/null
+++ b/layouts/shortcodes/tableofcontents.html
@@ -0,0 +1 @@
+{{ .Page.TableOfContents }}
\ No newline at end of file
diff --git a/publish.sh b/publish.sh
index 29b8bb1..37e1414 100644
--- a/publish.sh
+++ b/publish.sh
@@ -15,7 +15,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# A script to build the Celix site (based on jekyll)
+# A script to build the Celix site (based on Hugo)
 
 # specify source and site branches
 SOURCE="master"
@@ -27,17 +27,17 @@
 # Get the latest commit SHA in SOURCE branch
 last_SHA=( $(git log -n 1 --pretty=format:"%H") )
 
-# use last commit sha as temp folder name
+# Create a temporary folder
 tmp_dir=`mktemp -d`
 out_dir=${tmp_dir}/content
 mkdir -p ${out_dir}
 
-# Build the Jekyll site  to our temporary folder
-bundle exec jekyll build -d ${out_dir} > /dev/null 2>&1
+# Build the site to our temporary folder
+hugo --destination ${out_dir} > /dev/null 2>&1
 if [ $? = 0 ]; then
-  echo "Jekyll build successful"
+  echo "Hugo build successful"
 else
-  echo "Jekyll build failed"
+  echo "Hugo build failed"
   exit 1
 fi
 
diff --git a/run.sh b/run.sh
deleted file mode 100644
index 8311795..0000000
--- a/run.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-
-# 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.
-
-bundle exec jekyll serve -w --trace --host 0.0.0.0
diff --git a/run_incremental.sh b/run_incremental.sh
deleted file mode 100644
index d6eeb98..0000000
--- a/run_incremental.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-
-# 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.
-
-bundle exec jekyll serve --watch --trace --host=0.0.0.0 --force_polling --incremental
diff --git a/source/404.md b/source/404.md
deleted file mode 100644
index 5ac02da..0000000
--- a/source/404.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-layout: default
-title: 404 Page Not Found
----
-
-# 404 Page Not Found
-
-The page was moved or never existed. Use the menu above to navigate or go to [home page](/). 
-If you noticed any site problem, typos, etc on any page, please correct 
-using the "Edit on GitHub" button or check on <https://github.com/apache/celix-site>. 
-For example, redirects can be configured in [`.htaccess`](https://github.com/apache/celix-site/blob/master/source/.htaccess).
diff --git a/source/_layouts/main-page.html b/source/_layouts/main-page.html
deleted file mode 100644
index 59e8e41..0000000
--- a/source/_layouts/main-page.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!--
-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.
--->
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="">
-
-    <title>{{ page.title }}</title>
-
-    <!-- Bootstrap core CSS -->
-    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
-
-    <!-- Custom style -->
-    <link href="/assets/css/style.css" rel="stylesheet">
-
-    <!-- Font awesome icon set -->
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
-</head>
-<body>
-
-{% include header.html %}
-
-{{ content }}
-
-{% include footer.html %}
-
-</body>
-</html>
diff --git a/source/_plugins/remote_file_content.rb b/source/_plugins/remote_file_content.rb
deleted file mode 100644
index dd772e6..0000000
--- a/source/_plugins/remote_file_content.rb
+++ /dev/null
@@ -1,60 +0,0 @@
-# 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.
-
-require 'net/http'
-require 'uri'
-
-module Jekyll
-
-  class RemoteFileContent < Liquid::Tag
-
-    def initialize(tag_name, markup, tokens)
-      url = markup
-
-      puts 'Fetching content of url: ' + url
-
-      if url =~ URI::regexp
-        @content = removeComments(rewriteLinks(fetchContent(url)))
-      else
-        raise 'Invalid URL passed to RemoteFileContent'
-      end
-
-      super
-    end
-
-    def render(context)
-      if @content
-        @content
-      else
-        raise 'Something went wrong in RemoteFileContent'
-      end
-    end
-
-    def fetchContent(url)
-      Net::HTTP.get(URI.parse(URI.encode(url.strip))).force_encoding("UTF-8").encode("UTF-8")
-    end
-
-    def rewriteLinks(c)
-      c = c.gsub(/(\[[^\]]*\]\([^:\)]*)\.md\)/, '\1.html)')
-    end
-
-    def removeComments(c)
-      c = c.sub(/\<\!\-([\s\S]*?)\-\>/, '')
-    end
-
-  end
-end
-
-Liquid::Template.register_tag('remote_file_content', Jekyll::RemoteFileContent)
\ No newline at end of file
diff --git a/source/_plugins/update_celix_markdown.rb b/source/_plugins/update_celix_markdown.rb
deleted file mode 100644
index 8a08f4c..0000000
--- a/source/_plugins/update_celix_markdown.rb
+++ /dev/null
@@ -1,84 +0,0 @@
-# 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.
-
-module Jekyll
-
-  class CelixPage < Page
-    def initialize(site, base, dir, name)
-      @site = site
-      @base = base
-      @dir = dir
-      @name = name
-
-      full_path = "source/" + dir
-      if !full_path.end_with?("/") then
-        full_path += "/"
-      end
-      full_path += name
-
-      file_contents = File.read(full_path, :encoding => 'utf-8')
-
-      if !file_contents.start_with?("---") then
-        hdr  = "---\n"
-        hdr += "layout: celix-md\n"
-        hdr += "title: " + name + "\n"
-        hdr += "---\n\n\n"
-
-        edited_file_contents = hdr + file_contents
-        out_file = File.new(full_path, "w")
-        out_file.puts(edited_file_contents)
-        out_file.close
-      end
-
-      self.process(@name)
-      self.read_yaml(File.join(base, '_layouts'), 'celix-md.html')
-
-      self.data['title'] = name
-
-      super
-    end
-  end
-
-  class CelixPageGenerator < Generator
-    safe true
-
-    @@celix_doc_dir = "docs/celix"
-
-    def generate(site)
-      if site.layouts.key? 'celix-md'
-        celix_dir = site.source + "/" + @@celix_doc_dir
-        celix_markdown = File.join(celix_dir + "/**", "*.md")
-
-        Dir.glob(celix_markdown).select{ |e|
-          markdown_file = e
-
-          spl = markdown_file.rpartition('/')
-          file_name = spl.last()
-          splDir = spl.first().rpartition('source/' + @@celix_doc_dir)
-          file_dir = splDir.last()
-
-          if file_dir.start_with?("/") then
-            file_dir = file_dir[1, file_dir.length - 1]
-          end
-
-          file_dir = @@celix_doc_dir + "/" + file_dir
-
-          site.pages << CelixPage.new(site, site.source, file_dir, file_name)
-        }
-      end
-    end
-  end
-
-end
diff --git a/source/_plugins/update_links.rb b/source/_plugins/update_links.rb
deleted file mode 100644
index 8145f55..0000000
--- a/source/_plugins/update_links.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-# 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.
-
-module UpdateLinks
-  class Generator < Jekyll::Generator
-
-    def generate(site)
-      site.pages.each { |p| rewriteLinks(site, p) }
-    end
-
-    def rewriteLinks(site, page)
-      if page
-        page.content = page.content.gsub(/(\[[^\]]*\]\([^:\)]*)\.md\)/, '\1.html)')
-      end
-    end
-
-  end
-end
\ No newline at end of file
diff --git a/source/contributing/releasing.md b/source/contributing/releasing.md
index 5290900..072c24f 100644
--- a/source/contributing/releasing.md
+++ b/source/contributing/releasing.md
@@ -1,17 +1,14 @@
 ---
-layout: default
 title: Releasing Process
 ---
 
 # Releasing Apache Celix
-{:.no_toc}
 
 Note: This information is only of use to Apache Celix Release Managers!
 
 Steps to follow:
 
-* Will be replaced with the ToC, excluding a header
-{:toc}
+{{% tableofcontents %}}
 
 Interesting links:
 
@@ -57,8 +54,8 @@
 set(CELIX_MICRO "Z")
 ```
 
-Note: The DEFAULT_VERSION property is used as default version for new bundles and as such does not need to be updated when making a release.
-{:.alert .alert-primary}
+<p class="alert alert-primary">Note: The DEFAULT_VERSION property is used as default version for new bundles and as 
+such does not need to be updated when making a release.</p>
 
 ## Compile and test
 
@@ -203,8 +200,8 @@
 
 After this first vote the results must be posted to the "dev" list, see below for more information.
 
-Note: Be sure to use the \[VOTE\] tag, this is used by the automated vote tracking system to keep track of outstanding vote threads.
-{:.alert .alert-primary}
+<p class="alert alert-primary">Note: Be sure to use the [VOTE] tag, this is used by the automated vote tracking 
+system to keep track of outstanding vote threads.</p>
 
 ## Post the vote results
 As mentioned before, after each vote the results must be posted to the corresponding list. This "Result" vote contains the number 
@@ -229,9 +226,8 @@
 Thanks for voting.
 ```
 
-Note: Be sure to post the vote result with the same topic as the original message. Also prepend the subject 
-with \[RESULT\]. This is, again, needed to be able to keep track of vote threads.
-{:.alert .alert-primary}
+<p class="alert alert-primary">Note: Be sure to post the vote result with the same topic as the original message. Also 
+prepend the subject with [RESULT]. This is, again, needed to be able to keep track of vote threads.</p>
 
 ## Roll out release artifacts
 
@@ -277,5 +273,4 @@
 The Apache Celix Team
 ```
 
-Note: the email must be sent from an @apache.org address
-{:.alert .alert-primary}
+<p class="alert alert-primary">Note: the email must be sent from an @apache.org address</p>
diff --git a/source/contributing/submitting-patches.md b/source/contributing/submitting-patches.md
index ed31a35..49f5da0 100644
--- a/source/contributing/submitting-patches.md
+++ b/source/contributing/submitting-patches.md
@@ -1,13 +1,10 @@
 ---
-layout: default
 title: Submitting patches
 ---
 
 # Submitting patches
-{:.no_toc}
 
-* Will be replaced with the ToC, excluding a header
-{:toc}
+{{% tableofcontents %}}
 
 ## Contributing with GitHub
 
diff --git a/source/contributing/volunteers.md b/source/contributing/volunteers.md
index bce6c76..fff1642 100644
--- a/source/contributing/volunteers.md
+++ b/source/contributing/volunteers.md
@@ -1,13 +1,10 @@
 ---
-layout: default
 title: Volunteers
 ---
 
 # Volunteers
-{:.no_toc}
 
-* Will be replaced with the ToC, excluding a header
-{:toc}
+{{% tableofcontents %}}
 
 The project consists of a diverse group of volunteers who share common values regarding collaborative,
 community-based open source development.
diff --git a/source/contributing/youatcelix.md b/source/contributing/youatcelix.md
index 3c06cdf..3269bf7 100644
--- a/source/contributing/youatcelix.md
+++ b/source/contributing/youatcelix.md
@@ -1,5 +1,4 @@
 ---
-layout: default
 title: You at Celix
 ---
 
diff --git a/source/docs/celix/CHANGES.md b/source/docs/celix/CHANGES.md
index 1833739..46fc02d 100644
--- a/source/docs/celix/CHANGES.md
+++ b/source/docs/celix/CHANGES.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: CHANGES.md
 ---
 
diff --git a/source/docs/celix/README.md b/source/docs/celix/README.md
index 790d971..50b12ed 100644
--- a/source/docs/celix/README.md
+++ b/source/docs/celix/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/config_admin/readme.md b/source/docs/celix/config_admin/readme.md
index f6615c9..03af413 100644
--- a/source/docs/celix/config_admin/readme.md
+++ b/source/docs/celix/config_admin/readme.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: readme.md
 ---
 
diff --git a/source/docs/celix/dependency_manager/readme.md b/source/docs/celix/dependency_manager/readme.md
index 3f97edc..0b484a7 100644
--- a/source/docs/celix/dependency_manager/readme.md
+++ b/source/docs/celix/dependency_manager/readme.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: readme.md
 ---
 
diff --git a/source/docs/celix/dependency_manager_cxx/readme.md b/source/docs/celix/dependency_manager_cxx/readme.md
index f6cfd50..ed90b36 100644
--- a/source/docs/celix/dependency_manager_cxx/readme.md
+++ b/source/docs/celix/dependency_manager_cxx/readme.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: readme.md
 ---
 
diff --git a/source/docs/celix/deployment_admin/README.md b/source/docs/celix/deployment_admin/README.md
index ee3e022..52f7031 100644
--- a/source/docs/celix/deployment_admin/README.md
+++ b/source/docs/celix/deployment_admin/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/device_access/README.md b/source/docs/celix/device_access/README.md
index 62c9804..a9840cd 100644
--- a/source/docs/celix/device_access/README.md
+++ b/source/docs/celix/device_access/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/documents/building/readme.md b/source/docs/celix/documents/building/readme.md
index 544147f..86cc13e 100644
--- a/source/docs/celix/documents/building/readme.md
+++ b/source/docs/celix/documents/building/readme.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: readme.md
 ---
 
diff --git a/source/docs/celix/documents/cmake_commands/readme.md b/source/docs/celix/documents/cmake_commands/readme.md
index 1837f55..fe74f70 100644
--- a/source/docs/celix/documents/cmake_commands/readme.md
+++ b/source/docs/celix/documents/cmake_commands/readme.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: readme.md
 ---
 
diff --git a/source/docs/celix/documents/getting_started/creating_a_simple_bundle.md b/source/docs/celix/documents/getting_started/creating_a_simple_bundle.md
index 655a1b3..231dc08 100644
--- a/source/docs/celix/documents/getting_started/creating_a_simple_bundle.md
+++ b/source/docs/celix/documents/getting_started/creating_a_simple_bundle.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: creating_a_simple_bundle.md
 ---
 
diff --git a/source/docs/celix/documents/getting_started/readme.md b/source/docs/celix/documents/getting_started/readme.md
index 29e7a93..e53644b 100644
--- a/source/docs/celix/documents/getting_started/readme.md
+++ b/source/docs/celix/documents/getting_started/readme.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: readme.md
 ---
 
diff --git a/source/docs/celix/documents/getting_started/using_services_with_c.md b/source/docs/celix/documents/getting_started/using_services_with_c.md
index d8ffaf8..6ad0fa1 100644
--- a/source/docs/celix/documents/getting_started/using_services_with_c.md
+++ b/source/docs/celix/documents/getting_started/using_services_with_c.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: using_services_with_c.md
 ---
 
diff --git a/source/docs/celix/documents/getting_started/using_services_with_cxx.md b/source/docs/celix/documents/getting_started/using_services_with_cxx.md
index f9f6e77..96fb3d5 100644
--- a/source/docs/celix/documents/getting_started/using_services_with_cxx.md
+++ b/source/docs/celix/documents/getting_started/using_services_with_cxx.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: using_services_with_cxx.md
 ---
 
diff --git a/source/docs/celix/documents/intro/readme.md b/source/docs/celix/documents/intro/readme.md
index 5ab5c42..eb79672 100644
--- a/source/docs/celix/documents/intro/readme.md
+++ b/source/docs/celix/documents/intro/readme.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: readme.md
 ---
 
diff --git a/source/docs/celix/documents/roadmap/api_v3/readme.md b/source/docs/celix/documents/roadmap/api_v3/readme.md
index 3cd4c11..576e4dd 100644
--- a/source/docs/celix/documents/roadmap/api_v3/readme.md
+++ b/source/docs/celix/documents/roadmap/api_v3/readme.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: readme.md
 ---
 
diff --git a/source/docs/celix/documents/roadmap/improvement_ideas.md b/source/docs/celix/documents/roadmap/improvement_ideas.md
index ac11056..1cf877c 100644
--- a/source/docs/celix/documents/roadmap/improvement_ideas.md
+++ b/source/docs/celix/documents/roadmap/improvement_ideas.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: improvement_ideas.md
 ---
 
diff --git a/source/docs/celix/documents/roadmap/roadmap.md b/source/docs/celix/documents/roadmap/roadmap.md
index 62f1c8a..a5896e4 100644
--- a/source/docs/celix/documents/roadmap/roadmap.md
+++ b/source/docs/celix/documents/roadmap/roadmap.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: roadmap.md
 ---
 
diff --git a/source/docs/celix/documents/subprojects/readme.md b/source/docs/celix/documents/subprojects/readme.md
index a51ac7d..4488cf6 100644
--- a/source/docs/celix/documents/subprojects/readme.md
+++ b/source/docs/celix/documents/subprojects/readme.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: readme.md
 ---
 
diff --git a/source/docs/celix/etcdlib/README.md b/source/docs/celix/etcdlib/README.md
index 9a5549d..06592b1 100644
--- a/source/docs/celix/etcdlib/README.md
+++ b/source/docs/celix/etcdlib/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/launcher/README.md b/source/docs/celix/launcher/README.md
index 46570cd..09d5b07 100644
--- a/source/docs/celix/launcher/README.md
+++ b/source/docs/celix/launcher/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/log_service/README.md b/source/docs/celix/log_service/README.md
index c2510e6..ff17d08 100644
--- a/source/docs/celix/log_service/README.md
+++ b/source/docs/celix/log_service/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/log_writer/README.md b/source/docs/celix/log_writer/README.md
index c1efa9c..d2e990a 100644
--- a/source/docs/celix/log_writer/README.md
+++ b/source/docs/celix/log_writer/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/pubsub/README.md b/source/docs/celix/pubsub/README.md
index c516640..5cc3cfe 100644
--- a/source/docs/celix/pubsub/README.md
+++ b/source/docs/celix/pubsub/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/pubsub/examples/keys/README.md b/source/docs/celix/pubsub/examples/keys/README.md
index 6741b73..a35695c 100644
--- a/source/docs/celix/pubsub/examples/keys/README.md
+++ b/source/docs/celix/pubsub/examples/keys/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/pubsub/pubsub_admin_udp_mc/README.md b/source/docs/celix/pubsub/pubsub_admin_udp_mc/README.md
index 3cfd84a..565ef6f 100644
--- a/source/docs/celix/pubsub/pubsub_admin_udp_mc/README.md
+++ b/source/docs/celix/pubsub/pubsub_admin_udp_mc/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/remote_services/README.md b/source/docs/celix/remote_services/README.md
index d3be604..5050bd0 100644
--- a/source/docs/celix/remote_services/README.md
+++ b/source/docs/celix/remote_services/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/remote_services/discovery_etcd/README.md b/source/docs/celix/remote_services/discovery_etcd/README.md
index 376797c..b5829d2 100644
--- a/source/docs/celix/remote_services/discovery_etcd/README.md
+++ b/source/docs/celix/remote_services/discovery_etcd/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/remote_services/remote_service_admin/README.md b/source/docs/celix/remote_services/remote_service_admin/README.md
index 2d536a6..4abc94a 100644
--- a/source/docs/celix/remote_services/remote_service_admin/README.md
+++ b/source/docs/celix/remote_services/remote_service_admin/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/remote_services/topology_manager/README.md b/source/docs/celix/remote_services/topology_manager/README.md
index 332944d..bae7405 100644
--- a/source/docs/celix/remote_services/topology_manager/README.md
+++ b/source/docs/celix/remote_services/topology_manager/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/remote_shell/README.md b/source/docs/celix/remote_shell/README.md
index b21b761..fd8cd8b 100644
--- a/source/docs/celix/remote_shell/README.md
+++ b/source/docs/celix/remote_shell/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/shell/README.md b/source/docs/celix/shell/README.md
index 5718e91..df6a60f 100644
--- a/source/docs/celix/shell/README.md
+++ b/source/docs/celix/shell/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/shell_tui/README.md b/source/docs/celix/shell_tui/README.md
index cb3703b..164d258 100644
--- a/source/docs/celix/shell_tui/README.md
+++ b/source/docs/celix/shell_tui/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/utils/README.md b/source/docs/celix/utils/README.md
index a13be7e..b8e58b6 100644
--- a/source/docs/celix/utils/README.md
+++ b/source/docs/celix/utils/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/utils/docs/thpool/Design.md b/source/docs/celix/utils/docs/thpool/Design.md
index 8444b68..20705ca 100644
--- a/source/docs/celix/utils/docs/thpool/Design.md
+++ b/source/docs/celix/utils/docs/thpool/Design.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: Design.md
 ---
 
diff --git a/source/docs/celix/utils/docs/thpool/FAQ.md b/source/docs/celix/utils/docs/thpool/FAQ.md
index fb7f221..7a9c2e6 100644
--- a/source/docs/celix/utils/docs/thpool/FAQ.md
+++ b/source/docs/celix/utils/docs/thpool/FAQ.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: FAQ.md
 ---
 
diff --git a/source/docs/celix/utils/docs/thpool/README.md b/source/docs/celix/utils/docs/thpool/README.md
index 2016970..d0fe29b 100644
--- a/source/docs/celix/utils/docs/thpool/README.md
+++ b/source/docs/celix/utils/docs/thpool/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/celix/utils/public/include/memstream/README.md b/source/docs/celix/utils/public/include/memstream/README.md
index 0c83ce9..3e5fcaf 100644
--- a/source/docs/celix/utils/public/include/memstream/README.md
+++ b/source/docs/celix/utils/public/include/memstream/README.md
@@ -1,5 +1,5 @@
 ---
-layout: celix-md
+type: celix-doc
 title: README.md
 ---
 
diff --git a/source/docs/index.md b/source/docs/docs.md
similarity index 85%
rename from source/docs/index.md
rename to source/docs/docs.md
index 340dbed..e1b1d83 100644
--- a/source/docs/index.md
+++ b/source/docs/docs.md
@@ -1,10 +1,8 @@
 ---
-layout: default
 title: Documentation
 ---
 
 # Documentation
-[Edit on GitHub]({{ site.repository_url }}/edit/master/source/{{ page.path }}){: .edit-on-gh title="Edit this page on GitHub"}
 
 Get started with Celix by going through the appropriate content.
 
diff --git a/source/download.md b/source/download.md
index 53f4bc6..2fa9225 100644
--- a/source/download.md
+++ b/source/download.md
@@ -1,5 +1,4 @@
 ---
-layout: default
 title: Download
 ---
 
diff --git a/source/index.html b/source/index.html
deleted file mode 100644
index c97f834..0000000
--- a/source/index.html
+++ /dev/null
@@ -1,79 +0,0 @@
----
-layout: main-page
-title: Welcome to Apache Celix
----
-
-<!-- Page Intro -->
-<div class="section">
-  <div class="container my-5">
-    <div class="section no-pad-bot" id="index-banner">
-      <div class="col-sm-12">
-        <h1 class="text-center">Welcome to Apache Celix</h1>
-      </div>
-
-      <div class="row my-4">
-        <img class="text-center mx-auto img-home" src="/assets/img/celix.svg" alt="Celix Logo">
-      </div>
-
-      <div class="col-sm-12 mb-4">
-        <h2 class="text-center">An implementation of the OSGi specification adapted to C and C++</h2>
-      </div>
-
-      <div class="col-sm-12 text-center mx-auto">
-        <a href="/download.cgi" class="btn btn-primary btn-lg mb-1">
-          <i class="fas fa-download"></i> DOWNLOAD
-        </a>
-        &nbsp;
-        <a href="/docs/" class="btn btn-primary btn-lg mb-1">
-          <i class="fas fa-book-open"></i> GETTING STARTED
-        </a>
-      </div>
-    </div>
-  </div>
-</div>
-
-<div class="section light-grey">
-  <div class="container py-3">
-
-    <div class="row my-4">
-      <div class="col-sm-12 card">
-        <div class="card-body">
-          <h4 class="card-title">Welcome to Apache Celix</h4>
-          <p class="card-text">
-            Apache Celix is an implementation of the OSGi specification adapted to C and C++. It is a framework to 
-            develop (dynamic) modular software applications using component and/or service-oriented programming.
-          </p>
-
-          <p class="card-text">
-            Apache Celix is primarily developed in C and adds an additional abstraction, in the form of a library, to
-            support for C++.
-          </p>
-
-          <p class="card-text">
-            Modularity in Apache Celix is achieved by supporting - run-time installed - bundles. <code>Bundles</code>
-            are zip files and can contain software modules in the form of shared libraries. <code>Modules</code> can
-            provide and request dynamic services, for and from other modules, by interacting with a provided bundle
-            context. <code>Services</code> in Apache Celix are "plain old" structs with function pointers or "plain
-            old C++ Objects" (POCO).
-          </p>
-        </div>
-      </div>
-    </div>
-
-    <div class="row my-4">
-      <div class="col-sm-12 card">
-        <div class="card-body">
-          <h4 class="card-title">News</h4>
-          <p class="card-text">
-            <strong>30-Jan-2018</strong> - After a successful vote Celix 2.1.0 is released.<br>
-            <strong>26-Oct-2016</strong> - After a successful vote Celix 2.0.0 is released.<br>
-            <strong>16-Jul-2014</strong> - After a successful graduation vote Apache Celix has graduated to a top-level project.<br>
-            <strong>25-Feb-2014</strong> - After a successful vote Celix 1.0.0.incubating is released. The release is now available via the <a href="/download.cgi">download</a> section.<br>
-            <strong>16-Dec-2012</strong> - After a successful vote Celix 0.0.1-incubating is released.<br>
-          </p>
-        </div>
-      </div>
-    </div>
-
-  </div>
-</div>
diff --git a/source/robots.txt b/source/robots.txt
deleted file mode 100644
index 7d329b1..0000000
--- a/source/robots.txt
+++ /dev/null
@@ -1 +0,0 @@
-User-agent: *
diff --git a/source/support/issue-tracking.md b/source/support/issue-tracking.md
index d768351..6f8e65f 100644
--- a/source/support/issue-tracking.md
+++ b/source/support/issue-tracking.md
@@ -1,5 +1,4 @@
 ---
-layout: default
 title: Issue Tracking
 ---
 
diff --git a/source/support/mailing-list.md b/source/support/mailing-list.md
index f41b6fe..6796be1 100644
--- a/source/support/mailing-list.md
+++ b/source/support/mailing-list.md
@@ -1,5 +1,4 @@
 ---
-layout: default
 title: Mailing Lists
 ---
 
@@ -11,11 +10,10 @@
 
 **HEADS UP!**
 
-A message sent to a public mailing list cannot be unpublished. Although we might be able to modify our own mail archives, 
+<p class="alert alert-primary">A message sent to a public mailing list cannot be unpublished. Although we might be able to modify our own mail archives, 
 the message is mirrored to a lot of other archiving systems which we do not have under control. Therefore almost 100% 
-of all delete requests are denied. Please make sure you **do not send any potential sensitive information to the mailing list**,
-including passwords, server names, ips and so on.
-{:.alert .alert-primary}
+of all delete requests are denied. Please make sure you <strong>do not send any potential sensitive information to the mailing list</strong>,
+including passwords, server names, ips and so on.</p>
 
 ## Lists
 
diff --git a/source/.htaccess b/static/.htaccess
similarity index 99%
rename from source/.htaccess
rename to static/.htaccess
index 0c3e605..2d86f59 100644
--- a/source/.htaccess
+++ b/static/.htaccess
@@ -1,18 +1,18 @@
-# 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.
-
-DirectoryIndex index.html
-
-ErrorDocument 404 /404.html
+# 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.

+

+DirectoryIndex index.html

+

+ErrorDocument 404 /404.html
\ No newline at end of file
diff --git a/source/assets/css/bootstrap-grid.css b/static/assets/css/bootstrap-grid.css
similarity index 100%
rename from source/assets/css/bootstrap-grid.css
rename to static/assets/css/bootstrap-grid.css
diff --git a/source/assets/css/bootstrap-grid.css.map b/static/assets/css/bootstrap-grid.css.map
similarity index 100%
rename from source/assets/css/bootstrap-grid.css.map
rename to static/assets/css/bootstrap-grid.css.map
diff --git a/source/assets/css/bootstrap-grid.min.css b/static/assets/css/bootstrap-grid.min.css
similarity index 100%
rename from source/assets/css/bootstrap-grid.min.css
rename to static/assets/css/bootstrap-grid.min.css
diff --git a/source/assets/css/bootstrap-grid.min.css.map b/static/assets/css/bootstrap-grid.min.css.map
similarity index 100%
rename from source/assets/css/bootstrap-grid.min.css.map
rename to static/assets/css/bootstrap-grid.min.css.map
diff --git a/source/assets/css/bootstrap-reboot.css b/static/assets/css/bootstrap-reboot.css
similarity index 100%
rename from source/assets/css/bootstrap-reboot.css
rename to static/assets/css/bootstrap-reboot.css
diff --git a/source/assets/css/bootstrap-reboot.css.map b/static/assets/css/bootstrap-reboot.css.map
similarity index 100%
rename from source/assets/css/bootstrap-reboot.css.map
rename to static/assets/css/bootstrap-reboot.css.map
diff --git a/source/assets/css/bootstrap-reboot.min.css b/static/assets/css/bootstrap-reboot.min.css
similarity index 100%
rename from source/assets/css/bootstrap-reboot.min.css
rename to static/assets/css/bootstrap-reboot.min.css
diff --git a/source/assets/css/bootstrap-reboot.min.css.map b/static/assets/css/bootstrap-reboot.min.css.map
similarity index 100%
rename from source/assets/css/bootstrap-reboot.min.css.map
rename to static/assets/css/bootstrap-reboot.min.css.map
diff --git a/source/assets/css/bootstrap.css b/static/assets/css/bootstrap.css
similarity index 100%
rename from source/assets/css/bootstrap.css
rename to static/assets/css/bootstrap.css
diff --git a/source/assets/css/bootstrap.css.map b/static/assets/css/bootstrap.css.map
similarity index 100%
rename from source/assets/css/bootstrap.css.map
rename to static/assets/css/bootstrap.css.map
diff --git a/source/assets/css/bootstrap.min.css b/static/assets/css/bootstrap.min.css
similarity index 100%
rename from source/assets/css/bootstrap.min.css
rename to static/assets/css/bootstrap.min.css
diff --git a/source/assets/css/bootstrap.min.css.map b/static/assets/css/bootstrap.min.css.map
similarity index 100%
rename from source/assets/css/bootstrap.min.css.map
rename to static/assets/css/bootstrap.min.css.map
diff --git a/source/assets/css/style.css b/static/assets/css/style.css
similarity index 100%
rename from source/assets/css/style.css
rename to static/assets/css/style.css
diff --git a/source/assets/img/apache.png b/static/assets/img/apache.png
similarity index 100%
rename from source/assets/img/apache.png
rename to static/assets/img/apache.png
Binary files differ
diff --git a/source/assets/img/celix-white.svg b/static/assets/img/celix-white.svg
similarity index 100%
rename from source/assets/img/celix-white.svg
rename to static/assets/img/celix-white.svg
diff --git a/source/assets/img/celix.svg b/static/assets/img/celix.svg
similarity index 100%
rename from source/assets/img/celix.svg
rename to static/assets/img/celix.svg
diff --git a/source/favicon.ico b/static/assets/img/favicon.ico
similarity index 100%
rename from source/favicon.ico
rename to static/assets/img/favicon.ico
Binary files differ
diff --git a/source/assets/img/forkme_right_red_aa0000.png b/static/assets/img/forkme_right_red_aa0000.png
similarity index 100%
rename from source/assets/img/forkme_right_red_aa0000.png
rename to static/assets/img/forkme_right_red_aa0000.png
Binary files differ
diff --git a/source/assets/img/icon-primer.svg b/static/assets/img/icon-primer.svg
similarity index 100%
rename from source/assets/img/icon-primer.svg
rename to static/assets/img/icon-primer.svg
diff --git a/source/assets/js/bootstrap.bundle.js b/static/assets/js/bootstrap.bundle.js
similarity index 100%
rename from source/assets/js/bootstrap.bundle.js
rename to static/assets/js/bootstrap.bundle.js
diff --git a/source/assets/js/bootstrap.bundle.js.map b/static/assets/js/bootstrap.bundle.js.map
similarity index 100%
rename from source/assets/js/bootstrap.bundle.js.map
rename to static/assets/js/bootstrap.bundle.js.map
diff --git a/source/assets/js/bootstrap.bundle.min.js b/static/assets/js/bootstrap.bundle.min.js
similarity index 100%
rename from source/assets/js/bootstrap.bundle.min.js
rename to static/assets/js/bootstrap.bundle.min.js
diff --git a/source/assets/js/bootstrap.bundle.min.js.map b/static/assets/js/bootstrap.bundle.min.js.map
similarity index 100%
rename from source/assets/js/bootstrap.bundle.min.js.map
rename to static/assets/js/bootstrap.bundle.min.js.map
diff --git a/source/assets/js/bootstrap.js b/static/assets/js/bootstrap.js
similarity index 100%
rename from source/assets/js/bootstrap.js
rename to static/assets/js/bootstrap.js
diff --git a/source/assets/js/bootstrap.js.map b/static/assets/js/bootstrap.js.map
similarity index 100%
rename from source/assets/js/bootstrap.js.map
rename to static/assets/js/bootstrap.js.map
diff --git a/source/assets/js/bootstrap.min.js b/static/assets/js/bootstrap.min.js
similarity index 100%
rename from source/assets/js/bootstrap.min.js
rename to static/assets/js/bootstrap.min.js
diff --git a/source/assets/js/bootstrap.min.js.map b/static/assets/js/bootstrap.min.js.map
similarity index 100%
rename from source/assets/js/bootstrap.min.js.map
rename to static/assets/js/bootstrap.min.js.map
diff --git a/source/assets/js/jquery.js b/static/assets/js/jquery.js
similarity index 100%
rename from source/assets/js/jquery.js
rename to static/assets/js/jquery.js
diff --git a/source/assets/js/jquery.min.js b/static/assets/js/jquery.min.js
similarity index 100%
rename from source/assets/js/jquery.min.js
rename to static/assets/js/jquery.min.js
diff --git a/source/assets/js/jquery.slim.js b/static/assets/js/jquery.slim.js
similarity index 100%
rename from source/assets/js/jquery.slim.js
rename to static/assets/js/jquery.slim.js
diff --git a/source/assets/js/jquery.slim.min.js b/static/assets/js/jquery.slim.min.js
similarity index 100%
rename from source/assets/js/jquery.slim.min.js
rename to static/assets/js/jquery.slim.min.js