You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2023/03/28 02:02:47 UTC

[james-site] 02/30: [JAMES-3294] Added the UI bundle for Antora

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

rcordier pushed a commit to branch staging
in repository https://gitbox.apache.org/repos/asf/james-site.git

commit 20e11142413cffb163cdf20ed2142df1b44be13a
Author: Eugen Stan <eu...@ieugen.ro>
AuthorDate: Mon Jul 13 00:59:06 2020 +0300

    [JAMES-3294] Added the UI bundle for Antora
    
    * We build the ui bundle locally
---
 doc-sites/antora-playbook.yml                      |   5 ++-
 doc-sites/build.gradle                             |  11 ++++-
 settings.gradle                                    |   1 +
 ui-bundle/build.gradle                             |   8 ++++
 ui-bundle/src/main/dist/css/site.css               |   3 ++
 ui-bundle/src/main/dist/font/roboto-latin-400.woff | Bin 0 -> 20268 bytes
 .../src/main/dist/font/roboto-latin-400.woff2      | Bin 0 -> 15736 bytes
 .../src/main/dist/font/roboto-latin-400italic.woff | Bin 0 -> 21952 bytes
 .../main/dist/font/roboto-latin-400italic.woff2    | Bin 0 -> 17324 bytes
 ui-bundle/src/main/dist/font/roboto-latin-500.woff | Bin 0 -> 20464 bytes
 .../src/main/dist/font/roboto-latin-500.woff2      | Bin 0 -> 15872 bytes
 .../src/main/dist/font/roboto-latin-500italic.woff | Bin 0 -> 22020 bytes
 .../main/dist/font/roboto-latin-500italic.woff2    | Bin 0 -> 17316 bytes
 .../src/main/dist/font/roboto-mono-latin-400.woff  | Bin 0 -> 19972 bytes
 .../src/main/dist/font/roboto-mono-latin-400.woff2 | Bin 0 -> 16328 bytes
 .../src/main/dist/font/roboto-mono-latin-500.woff  | Bin 0 -> 20040 bytes
 .../src/main/dist/font/roboto-mono-latin-500.woff2 | Bin 0 -> 16380 bytes
 ui-bundle/src/main/dist/helpers/and.js             |   9 ++++
 ui-bundle/src/main/dist/helpers/detag.js           |   5 +++
 ui-bundle/src/main/dist/helpers/eq.js              |   3 ++
 ui-bundle/src/main/dist/helpers/increment.js       |   3 ++
 ui-bundle/src/main/dist/helpers/not.js             |   3 ++
 ui-bundle/src/main/dist/helpers/or.js              |   9 ++++
 ui-bundle/src/main/dist/helpers/relativize.js      |  24 +++++++++++
 ui-bundle/src/main/dist/helpers/year.js            |   3 ++
 ui-bundle/src/main/dist/img/back.svg               |   1 +
 ui-bundle/src/main/dist/img/caret.svg              |   1 +
 ui-bundle/src/main/dist/img/chevron.svg            |   1 +
 ui-bundle/src/main/dist/img/close.svg              |   1 +
 ui-bundle/src/main/dist/img/home-o.svg             |   1 +
 ui-bundle/src/main/dist/img/home.svg               |   1 +
 ui-bundle/src/main/dist/img/menu.svg               |   1 +
 ui-bundle/src/main/dist/js/site.js                 |   5 +++
 ui-bundle/src/main/dist/js/vendor/highlight.js     |   1 +
 ui-bundle/src/main/dist/layouts/404.hbs            |  11 +++++
 ui-bundle/src/main/dist/layouts/default.hbs        |  11 +++++
 ui-bundle/src/main/dist/partials/article.hbs       |  18 ++++++++
 ui-bundle/src/main/dist/partials/body.hbs          |   4 ++
 ui-bundle/src/main/dist/partials/breadcrumbs.hbs   |  20 +++++++++
 .../src/main/dist/partials/footer-content.hbs      |   4 ++
 .../src/main/dist/partials/footer-scripts.hbs      |   2 +
 ui-bundle/src/main/dist/partials/footer.hbs        |   2 +
 ui-bundle/src/main/dist/partials/head-icons.hbs    |   1 +
 ui-bundle/src/main/dist/partials/head-info.hbs     |  20 +++++++++
 ui-bundle/src/main/dist/partials/head-meta.hbs     |   1 +
 ui-bundle/src/main/dist/partials/head-prelude.hbs  |   2 +
 ui-bundle/src/main/dist/partials/head-scripts.hbs  |   4 ++
 ui-bundle/src/main/dist/partials/head-styles.hbs   |   1 +
 ui-bundle/src/main/dist/partials/head-title.hbs    |   1 +
 ui-bundle/src/main/dist/partials/head.hbs          |   7 ++++
 .../src/main/dist/partials/header-content.hbs      |  46 +++++++++++++++++++++
 .../src/main/dist/partials/header-scripts.hbs      |   1 +
 ui-bundle/src/main/dist/partials/header.hbs        |   2 +
 ui-bundle/src/main/dist/partials/main.hbs          |   7 ++++
 ui-bundle/src/main/dist/partials/nav-explore.hbs   |  24 +++++++++++
 ui-bundle/src/main/dist/partials/nav-menu.hbs      |  10 +++++
 ui-bundle/src/main/dist/partials/nav-toggle.hbs    |   1 +
 ui-bundle/src/main/dist/partials/nav-tree.hbs      |  21 ++++++++++
 ui-bundle/src/main/dist/partials/nav.hbs           |   8 ++++
 ui-bundle/src/main/dist/partials/page-versions.hbs |  12 ++++++
 ui-bundle/src/main/dist/partials/pagination.hbs    |  12 ++++++
 ui-bundle/src/main/dist/partials/toc.hbs           |   3 ++
 ui-bundle/src/main/dist/partials/toolbar.hbs       |  13 ++++++
 63 files changed, 366 insertions(+), 3 deletions(-)

diff --git a/doc-sites/antora-playbook.yml b/doc-sites/antora-playbook.yml
index 1c6aae483..881aecee1 100644
--- a/doc-sites/antora-playbook.yml
+++ b/doc-sites/antora-playbook.yml
@@ -12,6 +12,7 @@ content:
   #   start_path: docs
 ui:
   bundle:
-    url: https://gitlab.com/antora/antora-ui-default/-/jobs/artifacts/master/raw/build/ui-bundle.zip?job=bundle-stable
+    url: ./../ui-bundle/build/distributions/ui-bundle.zip
+    start_path: ui-bundle
 runtime:
-  fetch: true
\ No newline at end of file
+  fetch: true
diff --git a/doc-sites/build.gradle b/doc-sites/build.gradle
index e9fe96753..a06289b6e 100644
--- a/doc-sites/build.gradle
+++ b/doc-sites/build.gradle
@@ -3,6 +3,14 @@ plugins {
   id 'com.github.node-gradle.node' version '2.2.4'
 }
 
+configurations {
+  antora
+}
+
+dependencies {
+  antora(project(path: ':ui-bundle', configuration: 'uiBundle'))
+}
+
 node {
   // Version of node to use.
   version = '12.18.2'
@@ -13,6 +21,7 @@ def siteOutputDir = "${buildDir}/site";
 
 task generateDocs(type: NpxTask) {
   dependsOn npmInstall
+  dependsOn ':ui-bundle:build'
 
   inputs.files('package.json', 'package-lock.json', 'antora-playbook.yml')
   inputs.dir(fileTree('node_modules').exclude('.cache'))
@@ -32,4 +41,4 @@ task buildSite() {
   dependsOn generateDocs, copySomeFiles
 }
 
-tasks.build.dependsOn buildSite
\ No newline at end of file
+tasks.build.dependsOn buildSite
diff --git a/settings.gradle b/settings.gradle
index 5702f174e..4500e7a48 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,3 +1,4 @@
 rootProject.name = 'james-site'
 
+include ':ui-bundle'
 include ':doc-sites'
diff --git a/ui-bundle/build.gradle b/ui-bundle/build.gradle
new file mode 100644
index 000000000..24524a882
--- /dev/null
+++ b/ui-bundle/build.gradle
@@ -0,0 +1,8 @@
+plugins {
+  id 'base'
+  id 'distribution'
+}
+
+distTar {
+  enabled = false
+}
diff --git a/ui-bundle/src/main/dist/css/site.css b/ui-bundle/src/main/dist/css/site.css
new file mode 100644
index 000000000..2bb4de985
--- /dev/null
+++ b/ui-bundle/src/main/dist/css/site.css
@@ -0,0 +1,3 @@
+@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local("Roboto Regular"),local("Roboto-Regular"),url(../font/roboto-latin-400.woff2) format("woff2"),url(../font/roboto-latin-400.woff) format("woff")}@font-face{font-family:Roboto;font-style:italic;font-weight:400;src:local("Roboto Italic"),local("Roboto-Italic"),url(../font/roboto-latin-400italic.woff2) format("woff2"),url(../font/roboto-latin-400italic.woff) format("woff")}@font-face{font-family:Roboto;font-style:norma [...]
+
+/*! Adapted from the GitHub style by Vasily Polovnyov <va...@whiteants.net> */.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:500}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:500}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-wei [...]
\ No newline at end of file
diff --git a/ui-bundle/src/main/dist/font/roboto-latin-400.woff b/ui-bundle/src/main/dist/font/roboto-latin-400.woff
new file mode 100644
index 000000000..69c882540
Binary files /dev/null and b/ui-bundle/src/main/dist/font/roboto-latin-400.woff differ
diff --git a/ui-bundle/src/main/dist/font/roboto-latin-400.woff2 b/ui-bundle/src/main/dist/font/roboto-latin-400.woff2
new file mode 100644
index 000000000..1a5370151
Binary files /dev/null and b/ui-bundle/src/main/dist/font/roboto-latin-400.woff2 differ
diff --git a/ui-bundle/src/main/dist/font/roboto-latin-400italic.woff b/ui-bundle/src/main/dist/font/roboto-latin-400italic.woff
new file mode 100644
index 000000000..b940dbcb7
Binary files /dev/null and b/ui-bundle/src/main/dist/font/roboto-latin-400italic.woff differ
diff --git a/ui-bundle/src/main/dist/font/roboto-latin-400italic.woff2 b/ui-bundle/src/main/dist/font/roboto-latin-400italic.woff2
new file mode 100644
index 000000000..2741d4f08
Binary files /dev/null and b/ui-bundle/src/main/dist/font/roboto-latin-400italic.woff2 differ
diff --git a/ui-bundle/src/main/dist/font/roboto-latin-500.woff b/ui-bundle/src/main/dist/font/roboto-latin-500.woff
new file mode 100644
index 000000000..869925869
Binary files /dev/null and b/ui-bundle/src/main/dist/font/roboto-latin-500.woff differ
diff --git a/ui-bundle/src/main/dist/font/roboto-latin-500.woff2 b/ui-bundle/src/main/dist/font/roboto-latin-500.woff2
new file mode 100644
index 000000000..6362d7f64
Binary files /dev/null and b/ui-bundle/src/main/dist/font/roboto-latin-500.woff2 differ
diff --git a/ui-bundle/src/main/dist/font/roboto-latin-500italic.woff b/ui-bundle/src/main/dist/font/roboto-latin-500italic.woff
new file mode 100644
index 000000000..b794d20de
Binary files /dev/null and b/ui-bundle/src/main/dist/font/roboto-latin-500italic.woff differ
diff --git a/ui-bundle/src/main/dist/font/roboto-latin-500italic.woff2 b/ui-bundle/src/main/dist/font/roboto-latin-500italic.woff2
new file mode 100644
index 000000000..0ff2f813d
Binary files /dev/null and b/ui-bundle/src/main/dist/font/roboto-latin-500italic.woff2 differ
diff --git a/ui-bundle/src/main/dist/font/roboto-mono-latin-400.woff b/ui-bundle/src/main/dist/font/roboto-mono-latin-400.woff
new file mode 100644
index 000000000..c41382c27
Binary files /dev/null and b/ui-bundle/src/main/dist/font/roboto-mono-latin-400.woff differ
diff --git a/ui-bundle/src/main/dist/font/roboto-mono-latin-400.woff2 b/ui-bundle/src/main/dist/font/roboto-mono-latin-400.woff2
new file mode 100644
index 000000000..53d4b505c
Binary files /dev/null and b/ui-bundle/src/main/dist/font/roboto-mono-latin-400.woff2 differ
diff --git a/ui-bundle/src/main/dist/font/roboto-mono-latin-500.woff b/ui-bundle/src/main/dist/font/roboto-mono-latin-500.woff
new file mode 100644
index 000000000..ba8ff09b3
Binary files /dev/null and b/ui-bundle/src/main/dist/font/roboto-mono-latin-500.woff differ
diff --git a/ui-bundle/src/main/dist/font/roboto-mono-latin-500.woff2 b/ui-bundle/src/main/dist/font/roboto-mono-latin-500.woff2
new file mode 100644
index 000000000..ec09ab18f
Binary files /dev/null and b/ui-bundle/src/main/dist/font/roboto-mono-latin-500.woff2 differ
diff --git a/ui-bundle/src/main/dist/helpers/and.js b/ui-bundle/src/main/dist/helpers/and.js
new file mode 100644
index 000000000..5637b154b
--- /dev/null
+++ b/ui-bundle/src/main/dist/helpers/and.js
@@ -0,0 +1,9 @@
+'use strict'
+
+module.exports = (...args) => {
+  const numArgs = args.length
+  if (numArgs === 3) return args[0] && args[1]
+  if (numArgs < 3) throw new Error('{{and}} helper expects at least 2 arguments')
+  args.pop()
+  return args.every((it) => it)
+}
diff --git a/ui-bundle/src/main/dist/helpers/detag.js b/ui-bundle/src/main/dist/helpers/detag.js
new file mode 100644
index 000000000..e32f14766
--- /dev/null
+++ b/ui-bundle/src/main/dist/helpers/detag.js
@@ -0,0 +1,5 @@
+'use strict'
+
+const TAG_ALL_RX = /<[^>]+>/g
+
+module.exports = (html) => html && html.replace(TAG_ALL_RX, '')
diff --git a/ui-bundle/src/main/dist/helpers/eq.js b/ui-bundle/src/main/dist/helpers/eq.js
new file mode 100644
index 000000000..16dc28701
--- /dev/null
+++ b/ui-bundle/src/main/dist/helpers/eq.js
@@ -0,0 +1,3 @@
+'use strict'
+
+module.exports = (a, b) => a === b
diff --git a/ui-bundle/src/main/dist/helpers/increment.js b/ui-bundle/src/main/dist/helpers/increment.js
new file mode 100644
index 000000000..bb8f7e185
--- /dev/null
+++ b/ui-bundle/src/main/dist/helpers/increment.js
@@ -0,0 +1,3 @@
+'use strict'
+
+module.exports = (value) => (value || 0) + 1
diff --git a/ui-bundle/src/main/dist/helpers/not.js b/ui-bundle/src/main/dist/helpers/not.js
new file mode 100644
index 000000000..8b3aa917b
--- /dev/null
+++ b/ui-bundle/src/main/dist/helpers/not.js
@@ -0,0 +1,3 @@
+'use strict'
+
+module.exports = (val) => !val
diff --git a/ui-bundle/src/main/dist/helpers/or.js b/ui-bundle/src/main/dist/helpers/or.js
new file mode 100644
index 000000000..eb53907aa
--- /dev/null
+++ b/ui-bundle/src/main/dist/helpers/or.js
@@ -0,0 +1,9 @@
+'use strict'
+
+module.exports = (...args) => {
+  const numArgs = args.length
+  if (numArgs === 3) return args[0] || args[1]
+  if (numArgs < 3) throw new Error('{{or}} helper expects at least 2 arguments')
+  args.pop()
+  return args.some((it) => it)
+}
diff --git a/ui-bundle/src/main/dist/helpers/relativize.js b/ui-bundle/src/main/dist/helpers/relativize.js
new file mode 100644
index 000000000..6fdfb45e6
--- /dev/null
+++ b/ui-bundle/src/main/dist/helpers/relativize.js
@@ -0,0 +1,24 @@
+'use strict'
+
+const { posix: path } = require('path')
+
+module.exports = (to, from, ctx) => {
+  if (!to) return '#'
+  // NOTE only legacy invocation provides both to and from
+  if (!ctx) from = (ctx = from).data.root.page.url
+  if (to.charAt() !== '/') return to
+  if (!from) return (ctx.data.root.site.path || '') + to
+  let hash = ''
+  const hashIdx = to.indexOf('#')
+  if (~hashIdx) {
+    hash = to.substr(hashIdx)
+    to = to.substr(0, hashIdx)
+  }
+  return to === from
+    ? hash || (isDir(to) ? './' : path.basename(to))
+    : (path.relative(path.dirname(from + '.'), to) || '.') + (isDir(to) ? '/' + hash : hash)
+}
+
+function isDir (str) {
+  return str.charAt(str.length - 1) === '/'
+}
diff --git a/ui-bundle/src/main/dist/helpers/year.js b/ui-bundle/src/main/dist/helpers/year.js
new file mode 100644
index 000000000..aa38992cc
--- /dev/null
+++ b/ui-bundle/src/main/dist/helpers/year.js
@@ -0,0 +1,3 @@
+'use strict'
+
+module.exports = () => new Date().getFullYear().toString()
diff --git a/ui-bundle/src/main/dist/img/back.svg b/ui-bundle/src/main/dist/img/back.svg
new file mode 100644
index 000000000..bf7d30e9a
--- /dev/null
+++ b/ui-bundle/src/main/dist/img/back.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M50.001 9.9L9.9 50 50 90.1l5.656-5.655-30.435-30.442H90.1v-8.006H25.222l30.435-30.44z"/></svg>
\ No newline at end of file
diff --git a/ui-bundle/src/main/dist/img/caret.svg b/ui-bundle/src/main/dist/img/caret.svg
new file mode 100644
index 000000000..1af41bc6e
--- /dev/null
+++ b/ui-bundle/src/main/dist/img/caret.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30"><path d="M10.187 3l14 12-14 12z" fill="#c1c1c1" stroke="#c1c1c1" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/ui-bundle/src/main/dist/img/chevron.svg b/ui-bundle/src/main/dist/img/chevron.svg
new file mode 100644
index 000000000..40e962aff
--- /dev/null
+++ b/ui-bundle/src/main/dist/img/chevron.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30"><path d="M3.67 6.59L1.455 8.615 15 23.375l13.545-14.76L26.33 6.59 15 18.76z" fill="#5d5d5d"/></svg>
\ No newline at end of file
diff --git a/ui-bundle/src/main/dist/img/close.svg b/ui-bundle/src/main/dist/img/close.svg
new file mode 100644
index 000000000..b4a80887b
--- /dev/null
+++ b/ui-bundle/src/main/dist/img/close.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M12.736 87.264l74.528-74.528m-74.528 0l74.528 74.528" fill="none" stroke="#222" stroke-width="8"/></svg>
\ No newline at end of file
diff --git a/ui-bundle/src/main/dist/img/home-o.svg b/ui-bundle/src/main/dist/img/home-o.svg
new file mode 100644
index 000000000..95d193b77
--- /dev/null
+++ b/ui-bundle/src/main/dist/img/home-o.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><g fill="none" stroke="#222" stroke-width="4"><path d="M50.02 13.576l-28.58 25.54-.02 47.345h21.506l.025-25.166H57.05l.025 25.166H78.62l.02-47.31-28.62-25.575z"/><path d="M63.815 25.904v-9.217h8.657V33.64zM21.439 39.116l-9.982 8.92m77.125 0l-9.943-8.885"/></g></svg>
\ No newline at end of file
diff --git a/ui-bundle/src/main/dist/img/home.svg b/ui-bundle/src/main/dist/img/home.svg
new file mode 100644
index 000000000..4e96b3545
--- /dev/null
+++ b/ui-bundle/src/main/dist/img/home.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><g stroke="#222" stroke-width="4"><path d="M50.02 13.576l-28.58 25.54-.02 47.345h21.506l.025-25.166H57.05l.025 25.166H78.62l.02-47.31-28.62-25.575z" fill="#222" fill-rule="evenodd"/><path d="M63.815 25.904v-9.217h8.657V33.64z" fill="#222" fill-rule="evenodd"/><path d="M21.439 39.116l-9.982 8.92m77.125 0l-9.943-8.885" fill="none"/></g></svg>
\ No newline at end of file
diff --git a/ui-bundle/src/main/dist/img/menu.svg b/ui-bundle/src/main/dist/img/menu.svg
new file mode 100644
index 000000000..8b43b2e00
--- /dev/null
+++ b/ui-bundle/src/main/dist/img/menu.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M35 19.772h55" fill="none" stroke="#222" stroke-width="8" stroke-opacity=".941"/><path fill="#222" d="M10 12.272h15v15H10z"/><path d="M43 63.678h45" fill="none" stroke="#222" stroke-width="5" stroke-opacity=".941"/><path fill="#222" d="M23 58.677h10v10H23z"/><path d="M43 82.727h45" fill="none" stroke="#222" stroke-width="5" stroke-opacity=".941"/><path fill="#222" d="M23 77.727h10v10H23z"/><path d="M43 44.628h45" fill [...]
\ No newline at end of file
diff --git a/ui-bundle/src/main/dist/js/site.js b/ui-bundle/src/main/dist/js/site.js
new file mode 100644
index 000000000..d992c6633
--- /dev/null
+++ b/ui-bundle/src/main/dist/js/site.js
@@ -0,0 +1,5 @@
+!function(){"use strict";var s=/^sect(\d)$/,n=document.querySelector(".nav-container"),i=document.querySelector(".nav-toggle");i.addEventListener("click",function(e){if(i.classList.contains("is-active"))return r(e);var t=document.documentElement;t.classList.add("is-clipped--nav"),i.classList.add("is-active"),n.classList.add("is-active"),t.addEventListener("click",r),v(e)}),n.addEventListener("click",v);var o=n.querySelector("[data-panel=menu]");if(o){var c=n.querySelector(".nav"),l=o.que [...]
+!function(){"use strict";var e=document.querySelector("aside.toc.sidebar");if(e){if(document.querySelector("body.-toc"))return e.parentNode.removeChild(e);var t=parseInt(e.dataset.levels||2);if(!(t<0)){for(var d,n,o,c,s=document.querySelector("article.doc"),i=[],r=0;r<=t;r++)i.push(r?".sect"+r+">h"+(r+1)+"[id]":"h1[id].sect0");if(n=i.join(","),o=s,!(d=[].slice.call((o||document).querySelectorAll(n))).length)return e.parentNode.removeChild(e);var l={},u=d.reduce(function(e,t){var n=docume [...]
+!function(){"use strict";var o=document.querySelector("article.doc"),t=document.querySelector(".toolbar");function i(e){return e&&(~e.indexOf("%")?decodeURIComponent(e):e).slice(1)}function c(e){e&&(window.location.hash="#"+this.id,e.preventDefault()),window.scrollTo(0,function e(t,n){return o.contains(t)?e(t.offsetParent,t.offsetTop+n):n}(this,0)-t.getBoundingClientRect().bottom)}window.addEventListener("load",function e(t){var n,o;(n=i(window.location.hash))&&(o=document.getElementById [...]
+!function(){"use strict";var e=document.querySelector(".page-versions .version-menu-toggle");if(e){var t=document.querySelector(".page-versions");e.addEventListener("click",function(e){t.classList.toggle("is-active"),e.stopPropagation()}),document.documentElement.addEventListener("click",function(){t.classList.remove("is-active")})}}();
+document.addEventListener("DOMContentLoaded",function(){var t=Array.prototype.slice.call(document.querySelectorAll(".navbar-burger"),0);0!==t.length&&t.forEach(function(e){e.addEventListener("click",function(t){t.stopPropagation(),e.classList.toggle("is-active"),document.getElementById(e.dataset.target).classList.toggle("is-active"),document.documentElement.classList.toggle("is-clipped--navbar")})})});
\ No newline at end of file
diff --git a/ui-bundle/src/main/dist/js/vendor/highlight.js b/ui-bundle/src/main/dist/js/vendor/highlight.js
new file mode 100644
index 000000000..44c255888
--- /dev/null
+++ b/ui-bundle/src/main/dist/js/vendor/highlight.js
@@ -0,0 +1 @@
+!function(){var e,n,a={};e=function(i){var a,g=[],r=Object.keys,y={},u={},w=!0,n=/^(no-?highlight|plain|text)$/i,_=/\blang(?:uage)?-([\w-]+)\b/i,t=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,O="</span>",M="Could not find the language '{}', did you forget to load/include a language module?",C={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},l="of and for in not or if then".split(" ");function x(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function m(e){ret [...]
\ No newline at end of file
diff --git a/ui-bundle/src/main/dist/layouts/404.hbs b/ui-bundle/src/main/dist/layouts/404.hbs
new file mode 100644
index 000000000..8caab1dc8
--- /dev/null
+++ b/ui-bundle/src/main/dist/layouts/404.hbs
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+{{> head defaultPageTitle='Page Not Found'}}
+  </head>
+  <body class="status-404">
+{{> header}}
+{{> body}}
+{{> footer}}
+  </body>
+</html>
diff --git a/ui-bundle/src/main/dist/layouts/default.hbs b/ui-bundle/src/main/dist/layouts/default.hbs
new file mode 100644
index 000000000..eef835d46
--- /dev/null
+++ b/ui-bundle/src/main/dist/layouts/default.hbs
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+{{> head defaultPageTitle='Untitled'}}
+  </head>
+  <body class="article{{#with (or page.attributes.role page.role)}} {{this}}{{/with}}">
+{{> header}}
+{{> body}}
+{{> footer}}
+  </body>
+</html>
diff --git a/ui-bundle/src/main/dist/partials/article.hbs b/ui-bundle/src/main/dist/partials/article.hbs
new file mode 100644
index 000000000..55167cabe
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/article.hbs
@@ -0,0 +1,18 @@
+<article class="doc">
+{{#if (eq page.layout '404')}}
+<h1 class="page">{{{or page.title 'Page Not Found'}}}</h1>
+<div class="paragraph">
+<p>The page you&#8217;re looking for does not exist. It may have been moved.</p>
+</div>
+<div class="paragraph">
+<p>If you arrived on this page by clicking on a link, please notify the owner of the site that the link is broken.
+If you typed the URL of this page manually, please double check that you entered the address correctly.</p>
+</div>
+{{else}}
+{{#with page.title}}
+<h1 class="page">{{{this}}}</h1>
+{{/with}}
+{{{page.contents}}}
+{{/if}}
+{{> pagination}}
+</article>
diff --git a/ui-bundle/src/main/dist/partials/body.hbs b/ui-bundle/src/main/dist/partials/body.hbs
new file mode 100644
index 000000000..4a0ac2594
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/body.hbs
@@ -0,0 +1,4 @@
+<div class="body">
+{{> nav}}
+{{> main}}
+</div>
diff --git a/ui-bundle/src/main/dist/partials/breadcrumbs.hbs b/ui-bundle/src/main/dist/partials/breadcrumbs.hbs
new file mode 100644
index 000000000..6ab292131
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/breadcrumbs.hbs
@@ -0,0 +1,20 @@
+<nav class="breadcrumbs" aria-label="breadcrumbs">
+  {{#if page.breadcrumbs}}
+  <ul>
+    {{#with page.componentVersion}}
+    {{#if (and ./title (not (or ./root (eq ./title @root.page.breadcrumbs.0.content))))}}
+    <li><a href="{{{relativize ./url}}}">{{{./title}}}</a></li>
+    {{/if}}
+    {{/with}}
+    {{#each page.breadcrumbs}}
+    <li>
+    {{~#if (and ./url (eq ./urlType 'internal'))~}}
+    <a href="{{{relativize ./url}}}">{{{./content}}}</a>
+    {{~else~}}
+    {{{./content}}}
+    {{~/if~}}
+    </li>
+    {{/each}}
+  </ul>
+  {{/if}}
+</nav>
diff --git a/ui-bundle/src/main/dist/partials/footer-content.hbs b/ui-bundle/src/main/dist/partials/footer-content.hbs
new file mode 100644
index 000000000..cdeeb474c
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/footer-content.hbs
@@ -0,0 +1,4 @@
+<footer class="footer">
+  <p>This page was built using the Antora default UI.</p>
+  <p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p>
+</footer>
diff --git a/ui-bundle/src/main/dist/partials/footer-scripts.hbs b/ui-bundle/src/main/dist/partials/footer-scripts.hbs
new file mode 100644
index 000000000..77f26d1f0
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/footer-scripts.hbs
@@ -0,0 +1,2 @@
+<script src="{{uiRootPath}}/js/site.js"></script>
+<script async src="{{uiRootPath}}/js/vendor/highlight.js"></script>
diff --git a/ui-bundle/src/main/dist/partials/footer.hbs b/ui-bundle/src/main/dist/partials/footer.hbs
new file mode 100644
index 000000000..9d4901793
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/footer.hbs
@@ -0,0 +1,2 @@
+{{> footer-content}}
+{{> footer-scripts}}
diff --git a/ui-bundle/src/main/dist/partials/head-icons.hbs b/ui-bundle/src/main/dist/partials/head-icons.hbs
new file mode 100644
index 000000000..aa089d02f
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/head-icons.hbs
@@ -0,0 +1 @@
+    {{!-- <link rel="icon" href="{{uiRootPath}}/img/favicon.ico" type="image/x-icon"> --}}
diff --git a/ui-bundle/src/main/dist/partials/head-info.hbs b/ui-bundle/src/main/dist/partials/head-info.hbs
new file mode 100644
index 000000000..f18e7da3f
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/head-info.hbs
@@ -0,0 +1,20 @@
+    {{#with page.canonicalUrl}}
+    <link rel="canonical" href="{{this}}">
+    {{/with}}
+    {{#unless (eq page.attributes.pagination undefined)}}
+    {{#with page.previous}}
+    <link rel="prev" href="{{{relativize ./url}}}">
+    {{/with}}
+    {{#with page.next}}
+    <link rel="next" href="{{{relativize ./url}}}">
+    {{/with}}
+    {{/unless}}
+    {{#with page.description}}
+    <meta name="description" content="{{this}}">
+    {{/with}}
+    {{#with page.keywords}}
+    <meta name="keywords" content="{{this}}">
+    {{/with}}
+    {{#with (or antoraVersion site.antoraVersion)}}
+    <meta name="generator" content="Antora {{this}}">
+    {{/with}}
diff --git a/ui-bundle/src/main/dist/partials/head-meta.hbs b/ui-bundle/src/main/dist/partials/head-meta.hbs
new file mode 100644
index 000000000..1aef0afe7
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/head-meta.hbs
@@ -0,0 +1 @@
+    {{!-- Add additional meta tags here --}}
diff --git a/ui-bundle/src/main/dist/partials/head-prelude.hbs b/ui-bundle/src/main/dist/partials/head-prelude.hbs
new file mode 100644
index 000000000..a8b267d3a
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/head-prelude.hbs
@@ -0,0 +1,2 @@
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
diff --git a/ui-bundle/src/main/dist/partials/head-scripts.hbs b/ui-bundle/src/main/dist/partials/head-scripts.hbs
new file mode 100644
index 000000000..e7da2bbd6
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/head-scripts.hbs
@@ -0,0 +1,4 @@
+    {{#with site.keys.googleAnalytics}}
+    <script async src="https://www.googletagmanager.com/gtag/js?id={{this}}"></script>
+    <script>function gtag(){dataLayer.push(arguments)};window.dataLayer=window.dataLayer||[];gtag('js',new Date());gtag('config','{{this}}')</script>
+    {{/with}}
diff --git a/ui-bundle/src/main/dist/partials/head-styles.hbs b/ui-bundle/src/main/dist/partials/head-styles.hbs
new file mode 100644
index 000000000..c1df1aeb2
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/head-styles.hbs
@@ -0,0 +1 @@
+    <link rel="stylesheet" href="{{uiRootPath}}/css/site.css">
diff --git a/ui-bundle/src/main/dist/partials/head-title.hbs b/ui-bundle/src/main/dist/partials/head-title.hbs
new file mode 100644
index 000000000..924fcac84
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/head-title.hbs
@@ -0,0 +1 @@
+    <title>{{{detag (or page.title defaultPageTitle)}}}{{#with site.title}} :: {{this}}{{/with}}</title>
diff --git a/ui-bundle/src/main/dist/partials/head.hbs b/ui-bundle/src/main/dist/partials/head.hbs
new file mode 100644
index 000000000..7dd18b2a4
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/head.hbs
@@ -0,0 +1,7 @@
+{{> head-prelude}}
+{{> head-title}}
+{{> head-info}}
+{{> head-styles}}
+{{> head-meta}}
+{{> head-scripts}}
+{{> head-icons}}
diff --git a/ui-bundle/src/main/dist/partials/header-content.hbs b/ui-bundle/src/main/dist/partials/header-content.hbs
new file mode 100644
index 000000000..1b6b8a4eb
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/header-content.hbs
@@ -0,0 +1,46 @@
+<header class="header">
+  <nav class="navbar">
+    <div class="navbar-brand">
+      <a class="navbar-item" href="{{or site.url (or siteRootUrl siteRootPath)}}">{{site.title}}</a>
+      <!--button class="navbar-burger" data-target="topbar-nav">
+        <span></span>
+        <span></span>
+        <span></span>
+      </button-->
+    </div>
+    <!--div id="topbar-nav" class="navbar-menu">
+      <div class="navbar-end">
+        <a class="navbar-item" href="#">Home</a>
+        <div class="navbar-item has-dropdown is-hoverable">
+          <a class="navbar-link" href="#">Products</a>
+          <div class="navbar-dropdown">
+            <a class="navbar-item" href="#">Product A</a>
+            <a class="navbar-item" href="#">Product B</a>
+            <a class="navbar-item" href="#">Product C</a>
+          </div>
+        </div>
+        <div class="navbar-item has-dropdown is-hoverable">
+          <a class="navbar-link" href="#">Services</a>
+          <div class="navbar-dropdown">
+            <a class="navbar-item" href="#">Service A</a>
+            <a class="navbar-item" href="#">Service B</a>
+            <a class="navbar-item" href="#">Service C</a>
+          </div>
+        </div>
+        <div class="navbar-item has-dropdown is-hoverable">
+          <a class="navbar-link" href="#">Resources</a>
+          <div class="navbar-dropdown">
+            <a class="navbar-item" href="#">Resource A</a>
+            <a class="navbar-item" href="#">Resource B</a>
+            <a class="navbar-item" href="#">Resource C</a>
+          </div>
+        </div>
+        <div class="navbar-item">
+          <span class="control">
+            <a class="button is-primary" href="#">Download</a>
+          </span>
+        </div>
+      </div>
+    </div-->
+  </nav>
+</header>
diff --git a/ui-bundle/src/main/dist/partials/header-scripts.hbs b/ui-bundle/src/main/dist/partials/header-scripts.hbs
new file mode 100644
index 000000000..b9e907cc7
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/header-scripts.hbs
@@ -0,0 +1 @@
+{{!-- Add header scripts here --}}
diff --git a/ui-bundle/src/main/dist/partials/header.hbs b/ui-bundle/src/main/dist/partials/header.hbs
new file mode 100644
index 000000000..8a394222e
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/header.hbs
@@ -0,0 +1,2 @@
+{{> header-scripts}}
+{{> header-content}}
diff --git a/ui-bundle/src/main/dist/partials/main.hbs b/ui-bundle/src/main/dist/partials/main.hbs
new file mode 100644
index 000000000..04752de8b
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/main.hbs
@@ -0,0 +1,7 @@
+<main class="article">
+{{> toolbar}}
+  <div class="content">
+{{> article}}
+{{> toc}}
+  </div>
+</main>
diff --git a/ui-bundle/src/main/dist/partials/nav-explore.hbs b/ui-bundle/src/main/dist/partials/nav-explore.hbs
new file mode 100644
index 000000000..8bab9ddf2
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/nav-explore.hbs
@@ -0,0 +1,24 @@
+<div class="nav-panel-explore{{#unless page.navigation}} is-active{{/unless}}" data-panel="explore">
+  {{#if page.component}}
+  <div class="context">
+    <span class="title">{{page.component.title}}</span>
+    <span class="version">{{page.componentVersion.displayVersion}}</span>
+  </div>
+  {{/if}}
+  <ul class="components">
+    {{#each site.components}}
+    <li class="component{{#if (eq this @root.page.component)}} is-current{{/if}}">
+      <span class="title">{{{./title}}}</span>
+      <ul class="versions">
+        {{#each ./versions}}
+        <li class="version
+          {{~#if (and (eq .. @root.page.component) (eq this @root.page.componentVersion))}} is-current{{/if~}}
+          {{~#if (eq this ../latestVersion)}} is-latest{{/if}}">
+          <a href="{{{relativize ./url}}}">{{./displayVersion}}</a>
+        </li>
+        {{/each}}
+      </ul>
+    </li>
+    {{/each}}
+  </ul>
+</div>
diff --git a/ui-bundle/src/main/dist/partials/nav-menu.hbs b/ui-bundle/src/main/dist/partials/nav-menu.hbs
new file mode 100644
index 000000000..46adf923e
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/nav-menu.hbs
@@ -0,0 +1,10 @@
+{{#with page.navigation}}
+<div class="nav-panel-menu is-active" data-panel="menu">
+  <nav class="nav-menu">
+    {{#with @root.page.componentVersion}}
+    <h3 class="title"><a href="{{{relativize ./url}}}">{{./title}}</a></h3>
+    {{/with}}
+{{> nav-tree navigation=this}}
+  </nav>
+</div>
+{{/with}}
diff --git a/ui-bundle/src/main/dist/partials/nav-toggle.hbs b/ui-bundle/src/main/dist/partials/nav-toggle.hbs
new file mode 100644
index 000000000..0f11e2523
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/nav-toggle.hbs
@@ -0,0 +1 @@
+<button class="nav-toggle"></button>
diff --git a/ui-bundle/src/main/dist/partials/nav-tree.hbs b/ui-bundle/src/main/dist/partials/nav-tree.hbs
new file mode 100644
index 000000000..79e3c1e18
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/nav-tree.hbs
@@ -0,0 +1,21 @@
+{{#if navigation.length}}
+<ul class="nav-list">
+  {{#each navigation}}
+  <li class="nav-item{{#if (eq ./url @root.page.url)}} is-current-page{{/if}}" data-depth="{{or ../level 0}}">
+    {{#if ./content}}
+    {{#if ./items.length}}
+    <button class="nav-item-toggle"></button>
+    {{/if}}
+    {{#if ./url}}
+    <a class="nav-link" href="
+      {{~#if (eq ./urlType 'internal')}}{{{relativize ./url}}}
+      {{~else}}{{{./url}}}{{~/if}}">{{{./content}}}</a>
+    {{else}}
+    <span class="nav-text">{{{./content}}}</span>
+    {{/if}}
+    {{/if}}
+{{> nav-tree navigation=./items level=(increment ../level)}}
+  </li>
+  {{/each}}
+</ul>
+{{/if}}
diff --git a/ui-bundle/src/main/dist/partials/nav.hbs b/ui-bundle/src/main/dist/partials/nav.hbs
new file mode 100644
index 000000000..7e0f09123
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/nav.hbs
@@ -0,0 +1,8 @@
+<div class="nav-container"{{#if page.component}} data-component="{{page.component.name}}" data-version="{{page.version}}"{{/if}}>
+  <aside class="nav">
+    <div class="panels">
+{{> nav-menu}}
+{{> nav-explore}}
+    </div>
+  </aside>
+</div>
diff --git a/ui-bundle/src/main/dist/partials/page-versions.hbs b/ui-bundle/src/main/dist/partials/page-versions.hbs
new file mode 100644
index 000000000..a9792db06
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/page-versions.hbs
@@ -0,0 +1,12 @@
+{{#with page.versions}}
+<div class="page-versions">
+  <button class="version-menu-toggle" title="Show other versions of page">{{@root.page.componentVersion.displayVersion}}</button>
+  <div class="version-menu">
+    {{#each this}}
+    <a class="version
+      {{~#if (eq ./version @root.page.version)}} is-current{{/if~}}
+      {{~#if ./missing}} is-missing{{/if}}" href="{{{relativize ./url}}}">{{./displayVersion}}</a>
+    {{/each}}
+  </div>
+</div>
+{{/with}}
diff --git a/ui-bundle/src/main/dist/partials/pagination.hbs b/ui-bundle/src/main/dist/partials/pagination.hbs
new file mode 100644
index 000000000..4f6300f3a
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/pagination.hbs
@@ -0,0 +1,12 @@
+{{#unless (eq page.attributes.pagination undefined)}}
+{{#if (or page.previous page.next)}}
+<nav class="pagination">
+  {{#with page.previous}}
+  <span class="prev"><a href="{{{relativize ./url}}}">{{{./content}}}</a></span>
+  {{/with}}
+  {{#with page.next}}
+  <span class="next"><a href="{{{relativize ./url}}}">{{{./content}}}</a></span>
+  {{/with}}
+</nav>
+{{/if}}
+{{/unless}}
diff --git a/ui-bundle/src/main/dist/partials/toc.hbs b/ui-bundle/src/main/dist/partials/toc.hbs
new file mode 100644
index 000000000..2b291908e
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/toc.hbs
@@ -0,0 +1,3 @@
+<aside class="toc sidebar" data-title="{{or page.attributes.toctitle 'Contents'}}" data-levels="{{{or page.attributes.toclevels 2}}}">
+  <div class="toc-menu"></div>
+</aside>
diff --git a/ui-bundle/src/main/dist/partials/toolbar.hbs b/ui-bundle/src/main/dist/partials/toolbar.hbs
new file mode 100644
index 000000000..c6e9ea6d8
--- /dev/null
+++ b/ui-bundle/src/main/dist/partials/toolbar.hbs
@@ -0,0 +1,13 @@
+<div class="toolbar" role="navigation">
+{{> nav-toggle}}
+  {{#with site.homeUrl}}
+  <a href="{{{relativize this}}}" class="home-link{{#if @root.page.home}} is-current{{/if}}"></a>
+  {{/with}}
+{{> breadcrumbs}}
+{{> page-versions}}
+  {{#if (and page.fileUri (not env.CI))}}
+  <div class="edit-this-page"><a href="{{page.fileUri}}">Edit this Page</a></div>
+  {{else if (and page.editUrl (or env.FORCE_SHOW_EDIT_PAGE_LINK (not page.origin.private)))}}
+  <div class="edit-this-page"><a href="{{page.editUrl}}">Edit this Page</a></div>
+  {{/if}}
+</div>


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org