This project is used to develop and distribute the UI template for docs.datastax.com. It is a fork of the Antora Default UI that has been customized for our needs.
The repository itself produces a UI bundle that can be applied when generating a static documentation site using Antora — in our case, we apply it when generating docs-site. The UI bundle contains the HTML templates (layouts, partials, and helpers), CSS, JavaScript, fonts, and (site-wide) images. As such, it provides both the visual theme and user interactions for the documentation site.
You can see a preview of the DataStax Docs UI at riptano.github.io/datastax-docs-site/main.
To use the DataStax Docs UI with Antora, add the following configuration to your playbook file:
ui:
bundle:
url: https://github.com/riptano/ui-docs/releases/latest/download/ui-bundle.zip
snapshot: true
ℹ️
|
The |
Read on to learn how to develop the UI.
This section offers a basic tutorial to teach you how to set up the UI project, preview it locally, and bundle it for use with Antora. A more comprehensive tutorial can be found in the documentation at docs.antora.org/antora-ui-default/.
To preview and bundle the UI, you need the following software on your computer:
First, make sure you have git installed.
git --version
If not, download and install the git package for your system.
Next, make sure that you have Node.js installed (which also provides npm).
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, it means you don’t have a suitable version of Node.js installed.
While you can install Node.js from the official packages, we strongly recommend that you use nvm (Node Version Manager) to manage your Node.js installation(s). Follow the nvm installation instructions to set up nvm on your machine.
Once you’ve installed nvm, open a new terminal and install Node.js LTS using the following command:
nvm install --lts
You can switch to this version of Node.js at any time using the following command:
nvm use --lts
To make Node.js LTS the default in new terminals, type:
nvm alias default node
Now that you have Node.js installed, you can proceed with installing the Gulp CLI.
You’ll need the Gulp command-line interface (CLI) to run the build.
The Gulp CLI package provides the gulp
command which, in turn, executes the version of Gulp declared by the project.
You can install the Gulp CLI globally (which resolves to a location in your user directory if you’re using nvm) using the following command:
npm install -g gulp-cli
Verify the Gulp CLI is installed and on your PATH by running:
gulp --version
If you prefer to install global packages using Yarn, run this command instead:
yarn global add gulp-cli
Alternately, you can use the gulp
command that is installed by the project’s dependencies.
npx --offline gulp --version
Now that you have the prerequisites installed, you can fetch and build the UI project.
Clone the default UI project using git:
git clone https://github.com/riptano/docs-ui &&
cd "`basename $_`"
The example above clones the DataStax Docs UI project and then switches to the project folder on your filesystem. Stay in this project folder when executing all subsequent commands.
Use npm to install the project’s dependencies inside the project. In your terminal, execute the following command:
npm install
This command installs the dependencies listed in package.json into the node_modules/ folder inside the project. This folder does not get included in the UI bundle and should not be committed to the source control repository.
💡
|
If you prefer to install packages using Yarn, run this command instead: yarn |
The default UI project is configured to preview offline. The files in the 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:
gulp 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 Ctrl+C to stop the preview server and end the continuous build.
If you need to package the UI so you can use it to generate the documentation site locally, run the following command:
gulp bundle
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 build/ui-bundle.zip.
You can point Antora at the local path to this bundle using the --ui-bundle-url
command-line option or the ui.bundle.url
key in the site playbook.
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 build/ui-bundle.zip.
The build consolidates all the CSS and client-side JavaScript into combined files, site.css and site.js, respectively, in order to reduce the size of the bundle. 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 variable 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 debugging your production site.
Once you’re satisfied with the changes you’ve made to the UI, you’ll need to open a pull request to merge your changes into the main
branch.
After your changes have been reviewed and merged, you can then choose to make those changes available in the production UI by publishing a new release to this repository and attaching the latest ui-bundle.zip
file.
-
Start by making sure you’ve completed the Prerequisites.
-
Create the release commit.
Edit README.adoc directly in GitHub and increment the
:current-release:
attribute to the next version number.:current-release: prod-* (1)
-
Add +1 to the version number
This should be the only change in the commit, and the commit message should take the form of Release prod-. If you have Admin privileges to the repository, you can commit the changes directly to
main
. Otherwise, you’ll need to open a PR.
-
-
Once the release commit is merged, open your local copy of the repository in a terminal and retrieve the latest changes from
main
.git switch main && git pull
-
Pack the UI bundle as described in Package for use with Antora.
gulp bundle
-
Create a new release (see GitHub documentation).
-
Create a new tag named after the new version (e.g.,
prod-2
). The tag needs to target themain
branch. -
Make sure the Title of the release is the same name as the tag. (The release title and the tag name should always be made the same, as it makes releases easier to identify.)
-
Instead of manually adding a description for the release, just click Generate release notes. This automatically adds a description that highlights the functional changes that have been added since the last release.
-
Attach the UI bundle (
ui-bundle.zip
) as a release asset. -
(Optional) Check the box labeled This is a pre-release if you don’t want the release to be generally available.
Selecting this option is helpful if you want to publish a new UI bundle for testing purposes. You can edit the release later to remove the Pre-release label if desired.
-
When you’re ready, publish the release.
-
Once the new release is published, the attached bundle can then be downloaded from the repository using a unique URL found on the releases page.
❗
|
All production builds of the DataStax docs are configured to pull the latest, non-pre-release UI bundle. Once you’ve publish a new release, all subsequent site builds that use the configuration described in Use the DataStax Docs UI will consume the new UI bundle. |
Original Copyright © 2017-present OpenDevise Inc. and the Antora Project.
Modifications and additions Copyright © 2023-present DataStax Inc..
Use of this software is granted under the terms of the Mozilla Public License Version 2.0 (MPL-2.0). See LICENSE to find the full license text.
Copyright © DataStax Inc. 2023-present. All rights reserved.