You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by zr...@apache.org on 2019/04/22 14:26:44 UTC

[camel-website] branch master updated: chore: rebase on antora-default-ui

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

zregvart pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 673ac5c  chore: rebase on antora-default-ui
673ac5c is described below

commit 673ac5cecd46cc196a052193d91d9a1a1b7ecb4d
Author: Zoran Regvart <zr...@apache.org>
AuthorDate: Sun Apr 21 20:27:22 2019 +0200

    chore: rebase on antora-default-ui
---
 .github/action-website/event.json                  | 222 ++++++++++++++
 antora-ui-camel/README.adoc                        |   3 -
 antora-ui-camel/docs/modules/ROOT/_attributes.adoc |   4 -
 .../docs/modules/ROOT/pages/_attributes.adoc       |   2 -
 .../docs/modules/ROOT/pages/admonition-styles.adoc |   3 -
 .../docs/modules/ROOT/pages/build-preview-ui.adoc  |  15 +-
 .../modules/ROOT/pages/development-workflow.adoc   |   3 -
 antora-ui-camel/docs/modules/ROOT/pages/index.adoc |   5 +-
 .../modules/ROOT/pages/inline-text-styles.adoc     |   5 +-
 .../docs/modules/ROOT/pages/list-styles.adoc       |   3 -
 .../docs/modules/ROOT/pages/prerequisites.adoc     |   3 -
 .../docs/modules/ROOT/pages/set-up-project.adoc    |   3 -
 .../docs/modules/ROOT/pages/sidebar-styles.adoc    |   3 -
 .../docs/modules/ROOT/pages/style-guide.adoc       |   3 -
 .../docs/modules/ROOT/pages/stylesheets.adoc       |   3 -
 .../docs/modules/ROOT/pages/templates.adoc         |  10 +-
 .../docs/modules/ROOT/pages/ui-macro-styles.adoc   |   3 -
 antora-ui-camel/gulpfile.js/index.js               |   4 +-
 antora-ui-camel/gulpfile.js/tasks/build.js         |  11 +-
 antora-ui-camel/gulpfile.js/tasks/preview-pages.js |  86 ++++--
 antora-ui-camel/package.json                       |   1 +
 antora-ui-camel/preview-site-src/index.html        | 335 ---------------------
 .../404.html => preview-src/404.adoc}              |   0
 antora-ui-camel/preview-src/index.adoc             | 202 +++++++++++++
 .../{preview-site-src => preview-src}/ui-model.yml |   2 +
 .../src/partials/.header-content.hbs.swp           | Bin 0 -> 16384 bytes
 antora-ui-camel/src/partials/toolbar.hbs           |   2 +-
 antora-ui-camel/yarn.lock                          |  33 +-
 28 files changed, 552 insertions(+), 417 deletions(-)

diff --git a/.github/action-website/event.json b/.github/action-website/event.json
new file mode 100644
index 0000000..9a99bae
--- /dev/null
+++ b/.github/action-website/event.json
@@ -0,0 +1,222 @@
+{
+  "action": "created",
+  "issue": {
+    "url": "https://api.github.com/repos/syndesisio/syndesis/issues/5248",
+    "repository_url": "https://api.github.com/repos/syndesisio/syndesis",
+    "labels_url": "https://api.github.com/repos/syndesisio/syndesis/issues/5248/labels{/name}",
+    "comments_url": "https://api.github.com/repos/syndesisio/syndesis/issues/5248/comments",
+    "events_url": "https://api.github.com/repos/syndesisio/syndesis/issues/5248/events",
+    "html_url": "https://github.com/syndesisio/syndesis/pull/5248",
+    "id": 434387879,
+    "node_id": "MDExOlB1bGxSZXF1ZXN0MjcxMzkxMzg2",
+    "number": 5248,
+    "title": "ENTESB-9863 Upgrade jackson-databind version to 2.8.11.3 in integration-bom",
+    "user": {
+      "login": "cunningt",
+      "id": 392240,
+      "node_id": "MDQ6VXNlcjM5MjI0MA==",
+      "avatar_url": "https://avatars1.githubusercontent.com/u/392240?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/cunningt",
+      "html_url": "https://github.com/cunningt",
+      "followers_url": "https://api.github.com/users/cunningt/followers",
+      "following_url": "https://api.github.com/users/cunningt/following{/other_user}",
+      "gists_url": "https://api.github.com/users/cunningt/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/cunningt/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/cunningt/subscriptions",
+      "organizations_url": "https://api.github.com/users/cunningt/orgs",
+      "repos_url": "https://api.github.com/users/cunningt/repos",
+      "events_url": "https://api.github.com/users/cunningt/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/cunningt/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "labels": [
+
+    ],
+    "state": "open",
+    "locked": false,
+    "assignee": null,
+    "assignees": [
+
+    ],
+    "milestone": null,
+    "comments": 0,
+    "created_at": "2019-04-17T16:57:00Z",
+    "updated_at": "2019-04-17T18:12:29Z",
+    "closed_at": null,
+    "author_association": "CONTRIBUTOR",
+    "pull_request": {
+      "url": "https://api.github.com/repos/syndesisio/syndesis/pulls/5248",
+      "html_url": "https://github.com/syndesisio/syndesis/pull/5248",
+      "diff_url": "https://github.com/syndesisio/syndesis/pull/5248.diff",
+      "patch_url": "https://github.com/syndesisio/syndesis/pull/5248.patch"
+    },
+    "body": "Upgrade jackson-databind version to 2.8.11.3 in integration-bom"
+  },
+  "comment": {
+    "url": "https://api.github.com/repos/syndesisio/syndesis/issues/comments/484202440",
+    "html_url": "https://github.com/syndesisio/syndesis/pull/5248#issuecomment-484202440",
+    "issue_url": "https://api.github.com/repos/syndesisio/syndesis/issues/5248",
+    "id": 484202440,
+    "node_id": "MDEyOklzc3VlQ29tbWVudDQ4NDIwMjQ0MA==",
+    "user": {
+      "login": "pure-bot[bot]",
+      "id": 26906916,
+      "node_id": "MDM6Qm90MjY5MDY5MTY=",
+      "avatar_url": "https://avatars3.githubusercontent.com/u/23079786?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/pure-bot%5Bbot%5D",
+      "html_url": "https://github.com/apps/pure-bot",
+      "followers_url": "https://api.github.com/users/pure-bot%5Bbot%5D/followers",
+      "following_url": "https://api.github.com/users/pure-bot%5Bbot%5D/following{/other_user}",
+      "gists_url": "https://api.github.com/users/pure-bot%5Bbot%5D/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/pure-bot%5Bbot%5D/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/pure-bot%5Bbot%5D/subscriptions",
+      "organizations_url": "https://api.github.com/users/pure-bot%5Bbot%5D/orgs",
+      "repos_url": "https://api.github.com/users/pure-bot%5Bbot%5D/repos",
+      "events_url": "https://api.github.com/users/pure-bot%5Bbot%5D/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/pure-bot%5Bbot%5D/received_events",
+      "type": "Bot",
+      "site_admin": false
+    },
+    "created_at": "2019-04-17T18:12:29Z",
+    "updated_at": "2019-04-17T18:12:29Z",
+    "author_association": "CONTRIBUTOR",
+    "body": "Pull request [approved](https://github.com/syndesisio/syndesis/pull/5248#pullrequestreview-227916796) by @zregvart - applying _pr/approved_ label"
+  },
+  "repository": {
+    "id": 105563335,
+    "node_id": "MDEwOlJlcG9zaXRvcnkxMDU1NjMzMzU=",
+    "name": "syndesis",
+    "full_name": "syndesisio/syndesis",
+    "private": false,
+    "owner": {
+      "login": "syndesisio",
+      "id": 23079786,
+      "node_id": "MDEyOk9yZ2FuaXphdGlvbjIzMDc5Nzg2",
+      "avatar_url": "https://avatars3.githubusercontent.com/u/23079786?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/syndesisio",
+      "html_url": "https://github.com/syndesisio",
+      "followers_url": "https://api.github.com/users/syndesisio/followers",
+      "following_url": "https://api.github.com/users/syndesisio/following{/other_user}",
+      "gists_url": "https://api.github.com/users/syndesisio/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/syndesisio/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/syndesisio/subscriptions",
+      "organizations_url": "https://api.github.com/users/syndesisio/orgs",
+      "repos_url": "https://api.github.com/users/syndesisio/repos",
+      "events_url": "https://api.github.com/users/syndesisio/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/syndesisio/received_events",
+      "type": "Organization",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/syndesisio/syndesis",
+    "description": "A flexible, customizable, open source platform that provides core integration capabilities as a service.",
+    "fork": false,
+    "url": "https://api.github.com/repos/syndesisio/syndesis",
+    "forks_url": "https://api.github.com/repos/syndesisio/syndesis/forks",
+    "keys_url": "https://api.github.com/repos/syndesisio/syndesis/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/syndesisio/syndesis/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/syndesisio/syndesis/teams",
+    "hooks_url": "https://api.github.com/repos/syndesisio/syndesis/hooks",
+    "issue_events_url": "https://api.github.com/repos/syndesisio/syndesis/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/syndesisio/syndesis/events",
+    "assignees_url": "https://api.github.com/repos/syndesisio/syndesis/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/syndesisio/syndesis/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/syndesisio/syndesis/tags",
+    "blobs_url": "https://api.github.com/repos/syndesisio/syndesis/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/syndesisio/syndesis/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/syndesisio/syndesis/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/syndesisio/syndesis/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/syndesisio/syndesis/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/syndesisio/syndesis/languages",
+    "stargazers_url": "https://api.github.com/repos/syndesisio/syndesis/stargazers",
+    "contributors_url": "https://api.github.com/repos/syndesisio/syndesis/contributors",
+    "subscribers_url": "https://api.github.com/repos/syndesisio/syndesis/subscribers",
+    "subscription_url": "https://api.github.com/repos/syndesisio/syndesis/subscription",
+    "commits_url": "https://api.github.com/repos/syndesisio/syndesis/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/syndesisio/syndesis/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/syndesisio/syndesis/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/syndesisio/syndesis/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/syndesisio/syndesis/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/syndesisio/syndesis/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/syndesisio/syndesis/merges",
+    "archive_url": "https://api.github.com/repos/syndesisio/syndesis/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/syndesisio/syndesis/downloads",
+    "issues_url": "https://api.github.com/repos/syndesisio/syndesis/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/syndesisio/syndesis/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/syndesisio/syndesis/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/syndesisio/syndesis/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/syndesisio/syndesis/labels{/name}",
+    "releases_url": "https://api.github.com/repos/syndesisio/syndesis/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/syndesisio/syndesis/deployments",
+    "created_at": "2017-10-02T17:26:55Z",
+    "updated_at": "2019-04-17T10:12:49Z",
+    "pushed_at": "2019-04-17T17:36:24Z",
+    "git_url": "git://github.com/syndesisio/syndesis.git",
+    "ssh_url": "git@github.com:syndesisio/syndesis.git",
+    "clone_url": "https://github.com/syndesisio/syndesis.git",
+    "svn_url": "https://github.com/syndesisio/syndesis",
+    "homepage": null,
+    "size": 87240,
+    "stargazers_count": 122,
+    "watchers_count": 122,
+    "language": "Java",
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": false,
+    "has_pages": true,
+    "forks_count": 108,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 328,
+    "license": {
+      "key": "apache-2.0",
+      "name": "Apache License 2.0",
+      "spdx_id": "Apache-2.0",
+      "url": "https://api.github.com/licenses/apache-2.0",
+      "node_id": "MDc6TGljZW5zZTI="
+    },
+    "forks": 108,
+    "open_issues": 328,
+    "watchers": 122,
+    "default_branch": "master"
+  },
+  "organization": {
+    "login": "syndesisio",
+    "id": 23079786,
+    "node_id": "MDEyOk9yZ2FuaXphdGlvbjIzMDc5Nzg2",
+    "url": "https://api.github.com/orgs/syndesisio",
+    "repos_url": "https://api.github.com/orgs/syndesisio/repos",
+    "events_url": "https://api.github.com/orgs/syndesisio/events",
+    "hooks_url": "https://api.github.com/orgs/syndesisio/hooks",
+    "issues_url": "https://api.github.com/orgs/syndesisio/issues",
+    "members_url": "https://api.github.com/orgs/syndesisio/members{/member}",
+    "public_members_url": "https://api.github.com/orgs/syndesisio/public_members{/member}",
+    "avatar_url": "https://avatars3.githubusercontent.com/u/23079786?v=4",
+    "description": "A flexible, customizable, open source platform that provides core integration capabilities as a service."
+  },
+  "sender": {
+    "login": "pure-bot[bot]",
+    "id": 26906916,
+    "node_id": "MDM6Qm90MjY5MDY5MTY=",
+    "avatar_url": "https://avatars3.githubusercontent.com/u/23079786?v=4",
+    "gravatar_id": "",
+    "url": "https://api.github.com/users/pure-bot%5Bbot%5D",
+    "html_url": "https://github.com/apps/pure-bot",
+    "followers_url": "https://api.github.com/users/pure-bot%5Bbot%5D/followers",
+    "following_url": "https://api.github.com/users/pure-bot%5Bbot%5D/following{/other_user}",
+    "gists_url": "https://api.github.com/users/pure-bot%5Bbot%5D/gists{/gist_id}",
+    "starred_url": "https://api.github.com/users/pure-bot%5Bbot%5D/starred{/owner}{/repo}",
+    "subscriptions_url": "https://api.github.com/users/pure-bot%5Bbot%5D/subscriptions",
+    "organizations_url": "https://api.github.com/users/pure-bot%5Bbot%5D/orgs",
+    "repos_url": "https://api.github.com/users/pure-bot%5Bbot%5D/repos",
+    "events_url": "https://api.github.com/users/pure-bot%5Bbot%5D/events{/privacy}",
+    "received_events_url": "https://api.github.com/users/pure-bot%5Bbot%5D/received_events",
+    "type": "Bot",
+    "site_admin": false
+  }
+}
diff --git a/antora-ui-camel/README.adoc b/antora-ui-camel/README.adoc
index 4a2fe20..0669e94 100644
--- a/antora-ui-camel/README.adoc
+++ b/antora-ui-camel/README.adoc
@@ -174,6 +174,3 @@ to {url-opendevise}[OpenDevise Inc] and the {url-antora}[Antora project].
 As such, use of the software is granted under the terms of the
 https://www.mozilla.org/en-US/MPL/2.0/[Mozilla Public License Version 2.0] (MPL-2.0). See link:LICENSE[] to find the full license text.
 
-=== Branding and Design
-
-Copyright (C) 2019 Red Hat, Inc.
diff --git a/antora-ui-camel/docs/modules/ROOT/_attributes.adoc b/antora-ui-camel/docs/modules/ROOT/_attributes.adoc
deleted file mode 100644
index dec438a..0000000
--- a/antora-ui-camel/docs/modules/ROOT/_attributes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-:attachmentsdir: {moduledir}/assets/attachments
-:examplesdir: {moduledir}/examples
-:imagesdir: {moduledir}/assets/images
-:partialsdir: {moduledir}/pages/_partials
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/_attributes.adoc b/antora-ui-camel/docs/modules/ROOT/pages/_attributes.adoc
deleted file mode 100644
index fb98244..0000000
--- a/antora-ui-camel/docs/modules/ROOT/pages/_attributes.adoc
+++ /dev/null
@@ -1,2 +0,0 @@
-:moduledir: ..
-include::{moduledir}/_attributes.adoc[]
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/admonition-styles.adoc b/antora-ui-camel/docs/modules/ROOT/pages/admonition-styles.adoc
index 86b2cdc..292203f 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/admonition-styles.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/admonition-styles.adoc
@@ -1,7 +1,4 @@
 = Admonition Styles
-ifndef::env-site,env-github[]
-include::_attributes.adoc[]
-endif::[]
 
 An xref:antora:asciidoc:admonitions.adoc[admonition], also known as a notice, helps draw attention to content with a special label or icon.
 
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/build-preview-ui.adoc b/antora-ui-camel/docs/modules/ROOT/pages/build-preview-ui.adoc
index 3daab1c..c861fad 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/build-preview-ui.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/build-preview-ui.adoc
@@ -1,7 +1,4 @@
 = Build a UI Project for Local Preview
-ifndef::env-site,env-github[]
-include::_attributes.adoc[]
-endif::[]
 // Settings:
 :idprefix:
 :idseparator: -
@@ -10,7 +7,7 @@ endif::[]
 == Build Preview Site
 
 Once you've modified the site UI, the first thing you'll want to do is check out how it looks.
-That's what the files in the [.path]_preview-site-src/_ folder are for.
+That's what the files in the [.path]_preview-src/_ folder are for.
 This folder contains HTML file fragments that provide a representative sample of content from the site.
 The preview saves you from having to generate the whole site just to test the UI.
 These files should give you an idea of how the UI will look when applied to the actual site.
@@ -24,7 +21,7 @@ The next two sections explain how to use these modes.
 
 === Build Once
 
-To build the UI once for preview, then stop, execute the `build-preview` task using the following command:
+To build the UI once for preview, then stop, execute the following command:
 
  $ gulp preview:build
 
@@ -33,7 +30,7 @@ To view the preview pages, navigate to the HTML pages in the [.path]_public_ dir
 
 === Build Continuously
 
-To avoid the need to run the `preview:build` task over and over, you can use the `preview` command instead to have it run continuously.
+To avoid the need to run the `preview:build` task over and over while developing, you can use the `preview` command instead to have it run continuously.
 This task also launches a local HTTP server so updates get synchronized with the browser (i.e., "`live reload`").
 
 To launch the preview server, execute the following command:
@@ -65,3 +62,9 @@ The `bundle` command also invokes the `lint` command to check that the CSS and J
 
 The UI bundle will be available at [.path]_build/ui-bundle.zip_.
 You can then point Antora at this bundle using the `--ui-bundle-url` command-line option.
+
+If you have the preview running, and you want to bundle without causing the preview to be clobbered, use:
+
+ $ gulp bundle:pack
+
+The UI bundle will again be available at [.path]_build/ui-bundle.zip_.
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/development-workflow.adoc b/antora-ui-camel/docs/modules/ROOT/pages/development-workflow.adoc
index 9ce6fc0..a48915b 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/development-workflow.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/development-workflow.adoc
@@ -1,7 +1,4 @@
 = UI Development Workflow
-ifndef::env-site,env-github[]
-include::_attributes.adoc[]
-endif::[]
 // Settings:
 :idprefix:
 :idseparator: -
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/index.adoc b/antora-ui-camel/docs/modules/ROOT/pages/index.adoc
index 4258c3f..6d2afe3 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/index.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/index.adoc
@@ -93,7 +93,8 @@ Here's how the files are structured in the UI project:
 README.adoc
 gulpfile.js/
   index.js
-  ...
+  lib/
+  tasks/
 package.json
 yarn.lock
 src/
@@ -122,7 +123,7 @@ src/
     ...
     vendor/
       highlight.js
-preview-site-src/
+preview-src/
   index.html
   ui-model.yml
 ....
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/inline-text-styles.adoc b/antora-ui-camel/docs/modules/ROOT/pages/inline-text-styles.adoc
index c14044d..653b345 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/inline-text-styles.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/inline-text-styles.adoc
@@ -1,7 +1,4 @@
 = Inline Text Styles
-ifndef::env-site,env-github[]
-include::_attributes.adoc[]
-endif::[]
 :example-caption!:
 
 ////
@@ -60,7 +57,7 @@ How xref:antora:asciidoc:monospace.adoc[inline monospace text] is displayed depe
 A monospace <code>word</code>, or a monospace <code>phrase of text</code>.
 ----
 
-Since `<strong>` is a semantic HTML element, it automatically inherits default styling (`font-family: monospace`) from the browser.
+Since `<code>` is a semantic HTML element, it automatically inherits default styling (`font-family: monospace`) from the browser.
 If you want to override the browser styles, you'll need to define properties on the `code` selector in the stylesheet for your UI.
 
 In the default UI, the `code` element is styled using the fixed-width font loaded by the stylesheet (Roboto Mono).
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/list-styles.adoc b/antora-ui-camel/docs/modules/ROOT/pages/list-styles.adoc
index b122ba1..5fff9c7 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/list-styles.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/list-styles.adoc
@@ -1,7 +1,4 @@
 = List Styles
-ifndef::env-site,env-github[]
-include::_attributes.adoc[]
-endif::[]
 
 == Ordered list numeration
 
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/prerequisites.adoc b/antora-ui-camel/docs/modules/ROOT/pages/prerequisites.adoc
index a4f4df2..da624e7 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/prerequisites.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/prerequisites.adoc
@@ -1,7 +1,4 @@
 = UI Development Prerequisites
-ifndef::env-site,env-github[]
-include::_attributes.adoc[]
-endif::[]
 // Settings:
 :idprefix:
 :idseparator: -
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/set-up-project.adoc b/antora-ui-camel/docs/modules/ROOT/pages/set-up-project.adoc
index 31dfd73..5fd0c1a 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/set-up-project.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/set-up-project.adoc
@@ -1,7 +1,4 @@
 = Set up a UI Project
-ifndef::env-site,env-github[]
-include::_attributes.adoc[]
-endif::[]
 // Settings:
 :idprefix:
 :idseparator: -
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/sidebar-styles.adoc b/antora-ui-camel/docs/modules/ROOT/pages/sidebar-styles.adoc
index 20c4462..9ce0ca6 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/sidebar-styles.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/sidebar-styles.adoc
@@ -1,7 +1,4 @@
 = Sidebar Styles
-ifndef::env-site,env-github[]
-include::_attributes.adoc[]
-endif::[]
 
 This page describes the in-page sidebar block styles, not the styles for the navigation sidebar.
 
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/style-guide.adoc b/antora-ui-camel/docs/modules/ROOT/pages/style-guide.adoc
index 94795cd..d23ff60 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/style-guide.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/style-guide.adoc
@@ -1,7 +1,4 @@
 = UI Element Style Guide
-ifndef::env-site,env-github[]
-include::_attributes.adoc[]
-endif::[]
 
 When creating a UI theme for Antora, there are certain elements in the UI that require support from the CSS to work correctly.
 This list includes elements in the shell (i.e., frame) and in the document content.
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/stylesheets.adoc b/antora-ui-camel/docs/modules/ROOT/pages/stylesheets.adoc
index 7745b35..9e7d3fe 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/stylesheets.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/stylesheets.adoc
@@ -1,7 +1,4 @@
 = Work with the CSS Stylesheets
-ifndef::env-site,env-github[]
-include::_attributes.adoc[]
-endif::[]
 // Settings:
 :idprefix:
 :idseparator: -
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/templates.adoc b/antora-ui-camel/docs/modules/ROOT/pages/templates.adoc
index 8b4a383..652fdda 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/templates.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/templates.adoc
@@ -1,7 +1,4 @@
 = Work with the Handlebars Templates
-ifndef::env-site,env-github[]
-include::_attributes.adoc[]
-endif::[]
 // Settings:
 :idprefix:
 :idseparator: -
@@ -97,10 +94,15 @@ Each entry has the properties url, string, and missing.
 | A collection of navigation links for the current page.
 Each navigation item contains the property `content` as well as the optional properties `url` and (child) `items`.
 
+| page.url
+| The URL for the current page.
+This value is a root-relative path.
+It's often used as the base URL to generate relative URLs from this page.
+
 | page.canonicalUrl
 | The canonical URL for the current page.
 If there are older versions of the page, the canonical URL is the URL of the latest version.
-If this is an aspect page, the canonical URL is the URL of the primary (non-aspect) page.
+//If this is an aspect page, the canonical URL is the URL of the primary (non-aspect) page.
 
 | page.editUrl
 | The URL to edit the current page, typically on GitHub.
diff --git a/antora-ui-camel/docs/modules/ROOT/pages/ui-macro-styles.adoc b/antora-ui-camel/docs/modules/ROOT/pages/ui-macro-styles.adoc
index f04e485..8a58017 100644
--- a/antora-ui-camel/docs/modules/ROOT/pages/ui-macro-styles.adoc
+++ b/antora-ui-camel/docs/modules/ROOT/pages/ui-macro-styles.adoc
@@ -1,7 +1,4 @@
 = UI Macro Styles
-ifndef::env-site,env-github[]
-include::_attributes.adoc[]
-endif::[]
 
 Asciidoctor supports xref:antora:asciidoc:ui-macros.adoc[three UI element representations] out of the box, which are made from corresponding inline UI macros.
 
diff --git a/antora-ui-camel/gulpfile.js/index.js b/antora-ui-camel/gulpfile.js/index.js
index cf95f35..55a29a8 100644
--- a/antora-ui-camel/gulpfile.js/index.js
+++ b/antora-ui-camel/gulpfile.js/index.js
@@ -5,7 +5,7 @@ const task = require('./lib/task')
 
 const bundleName = 'ui'
 const buildDir = 'build'
-const previewSrcDir = 'preview-site-src'
+const previewSrcDir = 'preview-src'
 const previewDestDir = 'public'
 const srcDir = 'src'
 const destDir = `${previewDestDir}/_`
@@ -73,7 +73,7 @@ const bundleTask = task({
 
 const previewPagesTask = task({
   name: 'preview:pages',
-  call: previewPages(srcDir, destDir, previewSrcDir, previewDestDir, livereload),
+  call: previewPages(srcDir, previewSrcDir, previewDestDir, livereload),
 })
 
 const previewBuildTask = task({
diff --git a/antora-ui-camel/gulpfile.js/tasks/build.js b/antora-ui-camel/gulpfile.js/tasks/build.js
index 0126d50..6639bf3 100644
--- a/antora-ui-camel/gulpfile.js/tasks/build.js
+++ b/antora-ui-camel/gulpfile.js/tasks/build.js
@@ -61,7 +61,16 @@ module.exports = (src, dest, preview) => () => {
       .pipe(uglify()),
     vfs.src('css/site.css', opts).pipe(postcss(postcssPlugins)),
     vfs.src('font/*.woff*(2)', opts),
-    vfs.src('img/**/*.{jpg,ico,png,svg}', opts).pipe(imagemin()),
+    vfs
+      .src('img/**/*.{jpg,ico,png,svg}', opts)
+      .pipe(
+        imagemin([
+          imagemin.gifsicle(),
+          imagemin.jpegtran(),
+          imagemin.optipng(),
+          imagemin.svgo({ plugins: [{ removeViewBox: false }] }),
+        ])
+      ),
     vfs.src('helpers/*.js', opts),
     vfs.src('layouts/*.hbs', opts),
     vfs.src('partials/*.hbs', opts)
diff --git a/antora-ui-camel/gulpfile.js/tasks/preview-pages.js b/antora-ui-camel/gulpfile.js/tasks/preview-pages.js
index 9e704c2..12f3219 100644
--- a/antora-ui-camel/gulpfile.js/tasks/preview-pages.js
+++ b/antora-ui-camel/gulpfile.js/tasks/preview-pages.js
@@ -1,40 +1,72 @@
 'use strict'
 
+const asciidoctor = require('asciidoctor.js')()
 const fs = require('fs-extra')
 const handlebars = require('handlebars')
 const { obj: map } = require('through2')
 const merge = require('merge-stream')
-const path = require('path')
+const ospath = require('path')
+const path = ospath.posix
 const requireFromString = require('require-from-string')
 const vfs = require('vinyl-fs')
 const yaml = require('js-yaml')
 
-module.exports = (src, dest, siteSrc, siteDest, sink = () => map((_0, _1, next) => next()), layouts = {}) => () =>
+const ASCIIDOC_ATTRIBUTES = {
+  experimental: '',
+  icons: 'font',
+  sectanchors: '',
+  'source-highlighter': 'highlight.js',
+}
+
+module.exports = (src, previewSrc, previewDest, sink = () => map(), layouts = {}) => () =>
   Promise.all([
-    loadSampleUiModel(siteSrc),
-    toPromise(merge(compileLayouts(src, layouts), registerPartials(src), registerHelpers(src))),
-  ]).then(([uiModel]) =>
-    vfs
-      .src('**/*.html', { base: siteSrc, cwd: siteSrc })
-      .pipe(
-        map((file, enc, next) => {
-          const compiledLayout = layouts[file.stem === '404' ? '404.hbs' : 'default.hbs']
-          const siteRootPath = path.relative(path.dirname(file.path), path.resolve(siteSrc))
-          uiModel.env = process.env
-          uiModel.siteRootPath = siteRootPath
-          uiModel.siteRootUrl = path.join(siteRootPath, 'index.html')
-          uiModel.uiRootPath = path.join(siteRootPath, '_')
-          uiModel.page.contents = file.contents.toString().trim()
-          file.contents = Buffer.from(compiledLayout(uiModel))
-          next(null, file)
-        })
+    loadSampleUiModel(previewSrc),
+    toPromise(
+      merge(
+        compileLayouts(src, layouts),
+        registerPartials(src),
+        registerHelpers(src),
+        copyImages(previewSrc, previewDest)
       )
-      .pipe(vfs.dest(siteDest))
-      .pipe(sink())
-  )
+    ),
+  ])
+    .then(([baseUiModel]) => Object.assign(baseUiModel, { env: process.env }))
+    .then((baseUiModel) =>
+      vfs
+        .src('**/*.adoc', { base: previewSrc, cwd: previewSrc })
+        .pipe(
+          map((file, enc, next) => {
+            const siteRootPath = path.relative(ospath.dirname(file.path), ospath.resolve(previewSrc))
+            const uiModel = Object.assign({}, baseUiModel)
+            uiModel.page = Object.assign({}, uiModel.page)
+            uiModel.siteRootPath = siteRootPath
+            uiModel.siteRootUrl = path.join(siteRootPath, 'index.html')
+            uiModel.uiRootPath = path.join(siteRootPath, '_')
+            if (file.stem === '404') {
+              uiModel.page = { layout: '404', title: 'Page Not Found' }
+            } else {
+              const doc = asciidoctor.load(file.contents, { safe: 'safe', attributes: ASCIIDOC_ATTRIBUTES })
+              uiModel.page.attributes = Object.entries(doc.getAttributes())
+                .filter(([name, val]) => name.startsWith('page-'))
+                .reduce((accum, [name, val]) => {
+                  accum[name.substr(5)] = val
+                  return accum
+                }, {})
+              uiModel.page.layout = doc.getAttribute('page-layout', 'default')
+              uiModel.page.title = doc.getDocumentTitle()
+              uiModel.page.contents = Buffer.from(doc.convert())
+            }
+            file.extname = '.html'
+            file.contents = Buffer.from(layouts[uiModel.page.layout](uiModel))
+            next(null, file)
+          })
+        )
+        .pipe(vfs.dest(previewDest))
+        .pipe(sink())
+    )
 
-function loadSampleUiModel (siteSrc) {
-  return fs.readFile(path.join(siteSrc, 'ui-model.yml'), 'utf8').then((contents) => yaml.safeLoad(contents))
+function loadSampleUiModel (src) {
+  return fs.readFile(ospath.join(src, 'ui-model.yml'), 'utf8').then((contents) => yaml.safeLoad(contents))
 }
 
 function registerPartials (src) {
@@ -58,12 +90,16 @@ function registerHelpers (src) {
 function compileLayouts (src, layouts) {
   return vfs.src('layouts/*.hbs', { base: src, cwd: src }).pipe(
     map((file, enc, next) => {
-      layouts[file.basename] = handlebars.compile(file.contents.toString(), { preventIndent: true })
+      layouts[file.stem] = handlebars.compile(file.contents.toString(), { preventIndent: true })
       next()
     })
   )
 }
 
+function copyImages (src, dest) {
+  return vfs.src('**/*.{png,svg}', { base: src, cwd: src }).pipe(vfs.dest(dest))
+}
+
 function toPromise (stream) {
   return new Promise((resolve, reject) => stream.on('error', reject).on('finish', resolve))
 }
diff --git a/antora-ui-camel/package.json b/antora-ui-camel/package.json
index 0e97ccd..26d8ef4 100644
--- a/antora-ui-camel/package.json
+++ b/antora-ui-camel/package.json
@@ -15,6 +15,7 @@
     "preview": "gulp preview"
   },
   "devDependencies": {
+    "asciidoctor.js": "^1.5.9",
     "autoprefixer": "~9.4",
     "browserify": "~16.2",
     "cssnano": "~4.1",
diff --git a/antora-ui-camel/preview-site-src/index.html b/antora-ui-camel/preview-site-src/index.html
deleted file mode 100644
index 70b1a4b..0000000
--- a/antora-ui-camel/preview-site-src/index.html
+++ /dev/null
@@ -1,335 +0,0 @@
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph">
-<p>Platonem complectitur mediocritatem ea eos.
-Ei nonumy deseruisse ius.
-Mel id omnes verear.
-Vis no velit audiam, sonet <a href="#dependencies">praesent</a> eum ne.
-<strong>Prompta eripuit</strong> nec ad.</p>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="cu-solet"><a class="anchor" href="#cu-solet"></a>Cu solet</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>Nominavi luptatum eos, an vim hinc philosophia intellegebat.
-Lorem <code>expetenda</code> pertinacia et nec, wisi illud sonet qui ea.
-Eum an doctus <a href="#liber-recusabo">maiestatis efficiantur</a>.
-Eu mea inani iriure.</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-json hljs" data-lang="json">{
-  "name": "module-name",
-  "version": "10.0.1",
-  "description": "An example module to illustrate the usage of package.json",
-  "author": "Author Name &lt;author@example.com&gt;",
-  "scripts": {
-    "test": "mocha",
-    "lint": "eslint"
-  }
-}</code></pre>
-</div>
-</div>
-<div class="listingblock">
-<div class="title">Example paragraph syntax</div>
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-asciidoc hljs" data-lang="asciidoc">.Optional title
-[example]
-This is an example paragraph.</code></pre>
-</div>
-</div>
-<div class="exampleblock">
-<div class="title">Optional title</div>
-<div class="content">
-This is an example paragraph.
-</div>
-</div>
-<div class="paragraph">
-<p>How about some code?</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-js hljs" data-lang="js">vfs
-  .src('js/vendor/*.js', { cwd: 'src', cwdbase: true, read: false })
-  .pipe(tap((file) =&gt; { <i class="conum" data-value="1"></i><b>(1)</b>
-    file.contents = browserify(file.relative, { basedir: 'src', detectGlobals: false }).bundle()
-  }))
-  .pipe(buffer())
-  .pipe(uglify())
-  .pipe(gulp.dest('build'))</code></pre>
-</div>
-</div>
-<div class="colist arabic">
-<table>
-<tr>
-<td><i class="conum" data-value="1"></i><b>1</b></td>
-<td>The tap function is used to wiretap the data in the pipe.</td>
-</tr>
-</table>
-</div>
-<div class="paragraph">
-<p>Cum dicat <mark>putant</mark> ne.
-Est in <a href="#inline">reque</a> homero principes, meis deleniti mediocrem ad has.
-Altera atomorum his ex, has cu elitr melius propriae.
-Eos suscipit scaevola at.</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>pom.xml
-src/
-  main/
-    java/
-      HelloWorld.java
-  test/
-    java/
-      HelloWorldTest.java</pre>
-</div>
-</div>
-<div class="paragraph">
-<p>Select <span class="menuseq"><b class="menu">File</b>&#160;<i class="fa fa-angle-right caret"></i> <b class="menuitem">Open Project</b></span> to open the project in your IDE.
-Per ea <b class="button">Cancel</b> inimicus.
-Ferri <kbd>F11</kbd> tacimates constituam sed ex, eu mea munere vituperata <span class="keyseq"><kbd>Ctrl</kbd>+<kbd>T</kbd></span> constituam.</p>
-</div>
-<div class="sidebarblock">
-<div class="content">
-<div class="title">Sidebar</div>
-<div class="paragraph">
-<p>Platonem complectitur mediocritatem ea eos.
-Ei nonumy deseruisse ius.
-Mel id omnes verear.</p>
-</div>
-<div class="paragraph">
-<p>Altera atomorum his ex, has cu elitr melius propriae.
-Eos suscipit scaevola at.</p>
-</div>
-</div>
-</div>
-<div class="sect2">
-<h3 id="liber-recusabo"><a class="anchor" href="#liber-recusabo"></a>Liber recusabo</h3>
-<div class="paragraph">
-<p>No sea, at invenire voluptaria mnesarchum has.
-Ex nam suas nemore dignissim, vel apeirian democritum et.
-At ornatus splendide sed, phaedrum omittantur usu an, vix an noster voluptatibus.</p>
-</div>
-<div class="olist arabic">
-<ol class="arabic">
-<li>
-<p>potenti donec cubilia tincidunt</p>
-</li>
-<li>
-<p>etiam pulvinar inceptos velit quisque aptent himenaeos</p>
-</li>
-<li>
-<p>lacus volutpat semper porttitor aliquet ornare primis nulla enim</p>
-</li>
-</ol>
-</div>
-<div class="paragraph">
-<p>Natum facilisis theophrastus an duo.
-No sea, at invenire voluptaria mnesarchum has.</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>ultricies sociosqu tristique integer</p>
-</li>
-<li>
-<p>lacus volutpat semper porttitor aliquet ornare primis nulla enim</p>
-</li>
-<li>
-<p>etiam pulvinar inceptos velit quisque aptent himenaeos</p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>Eu sed antiopam gloriatur.
-Ea mea agam graeci philosophia.</p>
-</div>
-<div class="ulist checklist">
-<ul class="checklist">
-<li>
-<p><i class="fa fa-square-o"></i> todo</p>
-</li>
-<li>
-<p><i class="fa fa-check-square-o"></i> done!</p>
-</li>
-</ul>
-</div>
-<div class="paragraph">
-<p>Vis veri graeci legimus ad.</p>
-</div>
-<div class="dlist">
-<dl>
-<dt class="hdlist1">sed</dt>
-<dd>
-<p>splendide sed</p>
-</dd>
-<dt class="hdlist1">mea</dt>
-<dd>
-<p>agam graeci</p>
-</dd>
-</dl>
-</div>
-<div class="paragraph">
-<p>At ornatus splendide sed.</p>
-</div>
-<table id="dependencies" class="tableblock frame-all grid-all">
-<colgroup>
-<col>
-<col>
-</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Library</th>
-<th class="tableblock halign-left valign-top">Version</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">eslint</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">^1.7.3</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">eslint-config-gulp</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">^2.0.0</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">expect</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">^1.20.2</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">istanbul</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">^0.4.3</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">istanbul-coveralls</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">^1.0.3</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">jscs</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">^2.3.5</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph">
-<p>Cum dicat putant ne.
-Est in reque homero principes, meis deleniti mediocrem ad has.
-Altera atomorum his ex, has cu elitr melius propriae.
-Eos suscipit scaevola at.</p>
-</div>
-<div class="admonitionblock tip">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-tip" title="Tip"></i>
-</td>
-<td class="content">
-This oughta do it!
-</td>
-</tr>
-</table>
-</div>
-<div class="paragraph">
-<p>Cum dicat putant ne.
-Est in reque homero principes, meis deleniti mediocrem ad has.
-Altera atomorum his ex, has cu elitr melius propriae.
-Eos suscipit scaevola at.</p>
-</div>
-<div class="admonitionblock note">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-note" title="Note"></i>
-</td>
-<td class="content">
-<div class="paragraph">
-<p>You&#8217;ve been down <em>this</em> road before.</p>
-</div>
-</td>
-</tr>
-</table>
-</div>
-<div class="paragraph">
-<p>Cum dicat putant ne.
-Est in reque homero principes, meis deleniti mediocrem ad has.
-Altera atomorum his ex, has cu elitr melius propriae.
-Eos suscipit scaevola at.</p>
-</div>
-<div class="admonitionblock warning">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-warning" title="Warning"></i>
-</td>
-<td class="content">
-<div class="paragraph">
-<p>Watch out!</p>
-</div>
-</td>
-</tr>
-</table>
-</div>
-<div class="admonitionblock caution">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-caution" title="Caution"></i>
-</td>
-<td class="content">
-<div class="paragraph">
-<p><span id="inline">I wouldn&#8217;t try that if I were you.</span></p>
-</div>
-</td>
-</tr>
-</table>
-</div>
-<div class="admonitionblock important">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-important" title="Important"></i>
-</td>
-<td class="content">
-<div class="paragraph">
-<p>Don&#8217;t forget this step!</p>
-</div>
-</td>
-</tr>
-</table>
-</div>
-<div class="admonitionblock tip">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-tip" title="Tip"></i>
-</td>
-<td class="content">
-<div class="title">Key Points to Remember</div>
-<div class="paragraph">
-<p>If you installed the CLI and the default site generator globally, you can upgrade both of them with the same command.</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>$ npm i -g @antora/cli @antora/site-generator-default</pre>
-</div>
-</div>
-</td>
-</tr>
-</table>
-</div>
-<div class="paragraph">
-<p>Nominavi luptatum eos, an vim hinc philosophia intellegebat.
-Eu mea inani iriure.</p>
-</div>
-<h2 id="voluptua-singulis" class="discrete">Voluptua singulis</h2>
-<div class="paragraph">
-<p>Cum dicat putant ne.
-Est in reque homero principes, meis deleniti mediocrem ad has.
-Altera atomorum his ex, has cu elitr melius propriae.
-Eos suscipit scaevola at.</p>
-</div>
-</div>
-</div>
-</div>
\ No newline at end of file
diff --git a/antora-ui-camel/preview-site-src/404.html b/antora-ui-camel/preview-src/404.adoc
similarity index 100%
rename from antora-ui-camel/preview-site-src/404.html
rename to antora-ui-camel/preview-src/404.adoc
diff --git a/antora-ui-camel/preview-src/index.adoc b/antora-ui-camel/preview-src/index.adoc
new file mode 100644
index 0000000..862e646
--- /dev/null
+++ b/antora-ui-camel/preview-src/index.adoc
@@ -0,0 +1,202 @@
+= Hardware and Software Requirements
+Author Name
+:idprefix:
+:idseparator: -
+:!example-caption:
+
+Platonem complectitur mediocritatem ea eos.
+Ei nonumy deseruisse ius.
+Mel id omnes verear.
+Vis no velit audiam, sonet <<dependencies,praesent>> eum ne.
+*Prompta eripuit* nec ad.
+
+== Cu solet
+
+Nominavi luptatum eos, an vim hinc philosophia intellegebat.
+Lorem `expetenda` pertinacia et nec, wisi illud sonet qui ea.
+Eum an doctus <<liber-recusabo,maiestatis efficiantur>>.
+Eu mea inani iriure.
+
+[source,json]
+----
+{
+  "name": "module-name",
+  "version": "10.0.1",
+  "description": "An example module to illustrate the usage of package.json",
+  "author": "Author Name <au...@example.com>",
+  "scripts": {
+    "test": "mocha",
+    "lint": "eslint"
+  }
+}
+----
+
+.Example paragraph syntax
+[source,asciidoc]
+----
+.Optional title
+[example]
+This is an example paragraph.
+----
+
+.Optional title
+[example]
+This is an example paragraph.
+
+How about some code?
+
+[source,js]
+----
+vfs
+  .src('js/vendor/*.js', { cwd: 'src', cwdbase: true, read: false })
+  .pipe(tap((file) => { // <1>
+    file.contents = browserify(file.relative, { basedir: 'src', detectGlobals: false }).bundle()
+  }))
+  .pipe(buffer())
+  .pipe(uglify())
+  .pipe(gulp.dest('build'))
+----
+<1> The tap function is used to wiretap the data in the pipe.
+
+Cum dicat #putant# ne.
+Est in <<inline,reque>> homero principes, meis deleniti mediocrem ad has.
+Altera atomorum his ex, has cu elitr melius propriae.
+Eos suscipit scaevola at.
+
+....
+pom.xml
+src/
+  main/
+    java/
+      HelloWorld.java
+  test/
+    java/
+      HelloWorldTest.java
+....
+
+Select menu:File[Open Project] to open the project in your IDE.
+Per ea btn:[Cancel] inimicus.
+Ferri kbd:[F11] tacimates constituam sed ex, eu mea munere vituperata kbd:[Ctrl,T] constituam.
+
+.Sidebar
+****
+Platonem complectitur mediocritatem ea eos.
+Ei nonumy deseruisse ius.
+Mel id omnes verear.
+
+Altera atomorum his ex, has cu elitr melius propriae.
+Eos suscipit scaevola at.
+****
+
+=== Liber recusabo
+
+No sea, at invenire voluptaria mnesarchum has.
+Ex nam suas nemore dignissim, vel apeirian democritum et.
+At ornatus splendide sed, phaedrum omittantur usu an, vix an noster voluptatibus.
+
+. potenti donec cubilia tincidunt
+. etiam pulvinar inceptos velit quisque aptent himenaeos
+. lacus volutpat semper porttitor aliquet ornare primis nulla enim
+
+Natum facilisis theophrastus an duo.
+No sea, at invenire voluptaria mnesarchum has.
+
+* ultricies sociosqu tristique integer
+* lacus volutpat semper porttitor aliquet ornare primis nulla enim
+* etiam pulvinar inceptos velit quisque aptent himenaeos
+
+Eu sed antiopam gloriatur.
+Ea mea agam graeci philosophia.
+
+* [ ] todo
+* [x] done!
+
+Vis veri graeci legimus ad.
+
+sed::
+splendide sed
+
+mea::
+agam graeci
+
+At ornatus splendide sed.
+
+[#dependencies%autowidth]
+|===
+|Library |Version
+
+|eslint
+|^1.7.3
+
+|eslint-config-gulp
+|^2.0.0
+
+|expect
+|^1.20.2
+
+|istanbul
+|^0.4.3
+
+|istanbul-coveralls
+|^1.0.3
+
+|jscs
+|^2.3.5
+|===
+
+Cum dicat putant ne.
+Est in reque homero principes, meis deleniti mediocrem ad has.
+Altera atomorum his ex, has cu elitr melius propriae.
+Eos suscipit scaevola at.
+
+[TIP]
+This oughta do it!
+
+Cum dicat putant ne.
+Est in reque homero principes, meis deleniti mediocrem ad has.
+Altera atomorum his ex, has cu elitr melius propriae.
+Eos suscipit scaevola at.
+
+[NOTE]
+====
+You've been down _this_ road before.
+====
+
+Cum dicat putant ne.
+Est in reque homero principes, meis deleniti mediocrem ad has.
+Altera atomorum his ex, has cu elitr melius propriae.
+Eos suscipit scaevola at.
+
+[WARNING]
+====
+Watch out!
+====
+
+[CAUTION]
+====
+[#inline]#I wouldn't try that if I were you.#
+====
+
+[IMPORTANT]
+====
+Don't forget this step!
+====
+
+.Key Points to Remember
+[TIP]
+====
+If you installed the CLI and the default site generator globally, you can upgrade both of them with the same command.
+
+ $ npm i -g @antora/cli @antora/site-generator-default
+====
+
+Nominavi luptatum eos, an vim hinc philosophia intellegebat.
+Eu mea inani iriure.
+
+[discrete]
+== Voluptua singulis
+
+Cum dicat putant ne.
+Est in reque homero principes, meis deleniti mediocrem ad has.
+Altera atomorum his ex, has cu elitr melius propriae.
+Eos suscipit scaevola at.
diff --git a/antora-ui-camel/preview-site-src/ui-model.yml b/antora-ui-camel/preview-src/ui-model.yml
similarity index 98%
rename from antora-ui-camel/preview-site-src/ui-model.yml
rename to antora-ui-camel/preview-src/ui-model.yml
index 1aca0f2..69126ba 100644
--- a/antora-ui-camel/preview-site-src/ui-model.yml
+++ b/antora-ui-camel/preview-src/ui-model.yml
@@ -60,6 +60,8 @@ page:
   module: ROOT
   home: false
   editUrl: http://example.com/project-xyz/blob/master/index.adoc
+  origin:
+    private: false
   breadcrumbs:
   - content: Quickstart
     url: '#'
diff --git a/antora-ui-camel/src/partials/.header-content.hbs.swp b/antora-ui-camel/src/partials/.header-content.hbs.swp
new file mode 100644
index 0000000..5d6a2a8
Binary files /dev/null and b/antora-ui-camel/src/partials/.header-content.hbs.swp differ
diff --git a/antora-ui-camel/src/partials/toolbar.hbs b/antora-ui-camel/src/partials/toolbar.hbs
index b4d427e..48fe56f 100644
--- a/antora-ui-camel/src/partials/toolbar.hbs
+++ b/antora-ui-camel/src/partials/toolbar.hbs
@@ -5,7 +5,7 @@
   {{/if}}
 {{> breadcrumbs}}
 {{> page-versions}}
-  {{#if page.editUrl}}
+  {{#if (and page.editUrl (not page.origin.private))}}
   <div class="edit-this-page"><a href="{{page.editUrl}}">Edit this Page</a></div>
   {{/if}}
 </div>
diff --git a/antora-ui-camel/yarn.lock b/antora-ui-camel/yarn.lock
index d5ec9a4..00bb44a 100644
--- a/antora-ui-camel/yarn.lock
+++ b/antora-ui-camel/yarn.lock
@@ -463,6 +463,13 @@ asap@~2.0.6:
   resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
   integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
 
+asciidoctor.js@^1.5.9:
+  version "1.5.9"
+  resolved "https://registry.yarnpkg.com/asciidoctor.js/-/asciidoctor.js-1.5.9.tgz#28f8e8ee134b82627f0240e9b6a201b3d15d9524"
+  integrity sha512-k5JgwyV82TsiCpnYbDPReuHhzf/vRUt6NaZ+OGywkDDGeGG/CPfvN2Gd1MJ0iIZKDyuk4iJHOdY/2x1KBrWMzA==
+  dependencies:
+    opal-runtime "1.0.11"
+
 asn1.js@^4.0.0:
   version "4.10.1"
   resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
@@ -3093,6 +3100,17 @@ glob-watcher@^5.0.0:
     just-debounce "^1.0.0"
     object.defaults "^1.1.0"
 
+glob@6.0.4:
+  version "6.0.4"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
+  integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=
+  dependencies:
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "2 || 3"
+    once "^1.3.0"
+    path-is-absolute "^1.0.0"
+
 glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
   version "7.1.3"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
@@ -4750,7 +4768,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
   resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
   integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
 
-minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
+"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
   integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
@@ -5154,6 +5172,14 @@ onetime@^2.0.0:
   dependencies:
     mimic-fn "^1.0.0"
 
+opal-runtime@1.0.11:
+  version "1.0.11"
+  resolved "https://registry.yarnpkg.com/opal-runtime/-/opal-runtime-1.0.11.tgz#81fc2a2084ae5f25d5609eada375b756a3dab036"
+  integrity sha512-L+6pnRvXPlDtbamBRnJAnB9mEMXmsIQ/b+0r/2xJ5/n/nxheEkLo+Pm5QNQ08LEbEN9TI6/kedhIspqRRu6tXA==
+  dependencies:
+    glob "6.0.4"
+    xmlhttprequest "1.8.0"
+
 optimist@^0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
@@ -8062,6 +8088,11 @@ x-is-string@^0.1.0:
   resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82"
   integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=
 
+xmlhttprequest@1.8.0:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
+  integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=
+
 xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"