blob: 43013d008469ff4ff04824a2d337b425eb6f1537 [file] [log] [blame]
= Apache Camel UI
// Settings:
:experimental:
:hide-uri-scheme:
:ui-module-name: antora-ui-camel
// Project URLs:
:url-project: https://github.com/apache/camel-website
:img-ci-status: {url-project}/badges/master/pipeline.svg
// External URLs:
:url-camel: https://camel.apache.org/
:url-antora: https://antora.org
:url-git: https://git-scm.com
:url-git-dl: {url-git}/downloads
:url-gulp: http://gulpjs.com
:url-opendevise: https://opendevise.com
:url-nodejs: https://nodejs.org
:url-nvm: https://github.com/creationix/nvm
:url-nvm-install: {url-nvm}#installation
:url-source-maps: https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Use_a_source_map
:url-yarn: https://yarnpkg.com
:url-yarn-install: https://yarnpkg.com/en/docs/install
This project represents the Apache Camel UI theme that is used in the {url-camel}[Apache Camel website] documentation site.
The website is generated with {url-antora}[Antora] and this is the UI theme for that.
== Use the Camel UI
If you want to use this UI theme in your Antora-generated site, add the following UI configuration to your playbook:
[source,yaml,subs=attributes+]
----
ui:
bundle:
url: {url-project}/releases/download/{current-release}/ui-bundle.zip
snapshot: true
----
NOTE: The `snapshot` flag tells Antora to fetch the UI when the `--fetch` command-line flag is present.
This setting is required because updates to the UI bundle are pushed to the same URL.
If the URL were to be unique, this setting would not be required.
Read on to learn how to customize the default UI for your own documentation.
== Development Quickstart
This section offers a basic tutorial to teach you how to set up the default UI project, preview it locally, and bundle it for use with Antora.
A more comprehensive can be found in the documentation at {url-antora-docs}.
=== Prerequisites
To preview and bundle the UI, you need the following software on your computer:
* {url-git}[git] (command: `git`)
* {url-nodejs}[Node.js] (command: `node`)
* {url-yarn}[Yarn] (command: `yarn`)
==== git
First, make sure you have git installed.
$ git --version
If not, {url-git-dl}[download and install] the git package for your system.
==== Node.js
Next, make sure that you have Node.js installed.
$ node --version
If this command fails with an error, you don't have Node.js installed.
If the command doesn't report an LTS version of Node.js (e.g., v10.15.3), it means you don't have a suitable version of Node.js installed.
In this guide, we'll be installing Node.js 10.
While you can install Node.js from the official packages, we strongly recommend that you use {url-nvm}[nvm] (Node Version Manager) to manage your Node.js installation(s).
Follow the {url-nvm-install}[nvm installation instructions] to set up nvm on your machine.
Once you've installed nvm, open a new terminal and install Node.js 10 using the following command:
$ nvm install 10
You can switch to this version of Node.js at any time using the following command:
$ nvm use 10
To make Node.js 10 the default in new terminals, type:
$ nvm alias default 10
Now that you have Node.js installed, you can proceed with installing the Gulp CLI.
==== Yarn
Finally, you'll need Yarn, which is the preferred package manager for the Node ecosystem.
Follow {url-yarn-install}[the documentation on installing] Yarn for your Operating system.
Now that you have the prerequisites installed, you can fetch and build the Apache Camel UI project.
=== Clone and Initialize the UI Project
Clone the Camel UI project using git:
[subs=attributes+]
$ git clone {url-project} &&
cd camel-website/{ui-module-name}
The example above clones the Apache Camel Website project and then switches to the UI project folder on your filesystem.
Stay in this project folder when executing all subsequent commands.
Use Yarn to install the project's dependencies.
In your terminal, execute the following command:
$ yarn install
=== Preview the UI
The default UI project is configured to preview offline.
The files in the [.path]_preview-src/_ folder provide the sample content that allow you to see the UI in action.
In this folder, you'll primarily find pages written in AsciiDoc.
These pages provide a representative sample and kitchen sink of content from the real site.
To build the UI and preview it in a local web server, run the `preview` command:
$ yarn preview
You'll see a URL listed in the output of this command:
....
[12:00:00] Starting server...
[12:00:00] Server started http://localhost:5252
[12:00:00] Running server
....
Navigate to this URL to preview the site locally.
While this command is running, any changes you make to the source files will be instantly reflected in the browser.
This works by monitoring the project for changes, running the `preview:build` task if a change is detected, and sending the updates to the browser.
Press kbd:[Ctrl+C] to stop the preview server and end the continuous build.
=== Package for Use with Antora
If you need to package the UI so you can use it to generate the documentation site locally, run the following command:
$ yarn build
If any errors are reported by lint, you'll need to fix them.
When the command completes successfully, the UI bundle will be available at [.path]_build/ui-bundle.zip_.
You can 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_.
==== Source Maps
The build consolidates all the CSS and client-side JavaScript into combined files, [.path]_site.css_ and [.path]_site.js_, respectively, in order to reduce the size of the bundle.
{url-source-maps}[Source maps] correlate these combined files with their original sources.
This "`source mapping`" is accomplished by generating additional map files that make this association.
These map files sit adjacent to the combined files in the build folder.
The mapping they provide allows the debugger to present the original source rather than the obfuscated file, an essential tool for debugging.
In preview mode, source maps are enabled automatically, so there's nothing you have to do to make use of them.
If you need to include source maps in the bundle, you can do so by setting the `SOURCEMAPS` environment varible to `true` when you run the bundle command:
$ SOURCEMAPS=true gulp bundle
In this case, the bundle will include the source maps, which can be used for debuggging your production site.
== Copyright and License
=== Software
The software in this repository (build scripts, JavaScript files, Handlebars templates, foundation CSS, utility icons, etc)
is part of the {url-antora}[Antora project] and therefore copyright for these parts and the underlying source code belongs
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.