Skip to content

Commit 51f901e

Browse files
authored
Merge branch 'stackable' into add-keyboard-navigation-in-search
2 parents 3e8f5fa + 9538658 commit 51f901e

File tree

3 files changed

+69
-166
lines changed

3 files changed

+69
-166
lines changed

README.adoc

Lines changed: 51 additions & 165 deletions
Original file line numberDiff line numberDiff line change
@@ -3,214 +3,100 @@
33
:experimental:
44
:hide-uri-scheme:
55
// Project URLs:
6-
:url-project: https://gitlab.com/antora/antora-ui-default
6+
:url-default-ui: https://gitlab.com/antora/antora-ui-default
77
// External URLs:
88
:url-stackable-docs: https://docs.stackable.tech/
99
:url-antora-docs: https://docs.antora.org
1010
:url-git: https://git-scm.com
1111
:url-git-dl: {url-git}/downloads
12-
:url-gulp: http://gulpjs.com
1312
:url-opendevise: https://opendevise.com
1413
:url-nodejs: https://nodejs.org
1514
:url-nvm: https://github.com/creationix/nvm
1615
:url-nvm-install: {url-nvm}#installation
1716
:url-source-maps: https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Use_a_source_map
1817

19-
This project is the UI template used on {url-stackable-docs}[the Stackable docs]. It is based on the Antora default UI. As intended, this repository is forked from the default UI and customized to our needs.
18+
This project is the UI template used on {url-stackable-docs}[the Stackable docs].
19+
It is based on (forked from) the {url-default-ui}[Antora default UI] and customized to our needs.
20+
The document below contains information about this repo, but consult the default UI README as well for additional useful information.
2021

21-
== Notes on our Customized Version
22-
23-
=== Tracking
24-
We have added our own tracking solution into `src/partials/head-scripts.hbs`. It has the URL hardcoded. it can be enabled by setting `site.keys.enable_tracking` to `true`/`false` in the Antora playbook.
25-
26-
=== Highlight.js v10
27-
[Ticket](https://github.com/stackabletech/documentation/issues/232) - Due to the removal of HTML-passthru in v11 (which we need for [Callouts](https://docs.asciidoctor.org/asciidoc/latest/verbatim/callouts/)) the highlight.js has not been updated from v10. This also affects the Antora Default UI. Both decisions will be revisited when the upstream upgrade is available.
28-
29-
=== Search with pagefind
30-
We use https://pagefind.app/[pagefind] for search.
31-
The index is generated as part of the build in the `documentation` repository.
32-
Various `pagefind-*` tags are used to mark content that should be indexed.
33-
Only the stable docs are indexed (no previous versions, no nightly).
34-
35-
== Code of Conduct
36-
37-
The Antora project and its project spaces are governed by our https://gitlab.com/antora/antora/-/blob/HEAD/CODE-OF-CONDUCT.adoc[Code of Conduct].
38-
By participating, you're agreeing to honor this code.
39-
Let's work together to make this a welcoming, professional, inclusive, and safe environment for everyone.
40-
41-
== Use the Default UI
42-
43-
If you want to simply use the default UI for your Antora-generated site, add the following UI configuration to your playbook:
44-
45-
[source,yaml]
46-
----
47-
ui:
48-
bundle:
49-
url: https://gitlab.com/antora/antora-ui-default/-/jobs/artifacts/HEAD/raw/build/ui-bundle.zip?job=bundle-stable
50-
snapshot: true
51-
----
52-
53-
NOTE: The `snapshot` flag tells Antora to fetch the UI when the `--fetch` command-line flag is present.
54-
This setting is required because updates to the UI bundle are pushed to the same URL.
55-
If the URL were to be unique, this setting would not be required.
56-
57-
Read on to learn how to customize the default UI for your own documentation.
58-
59-
== Development Quickstart
60-
61-
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.
62-
A more comprehensive tutorial can be found in the documentation at {url-antora-docs}.
22+
== Quickstart
6323

6424
=== Prerequisites
6525

6626
To preview and bundle the default UI, you need the following software on your computer:
6727

6828
* {url-git}[git] (command: `git`)
6929
* {url-nodejs}[Node.js] (commands: `node` and `npm`)
70-
* {url-gulp}[Gulp CLI] (command: `gulp`)
71-
72-
==== git
73-
74-
First, make sure you have git installed.
75-
76-
$ git --version
77-
78-
If not, {url-git-dl}[download and install] the git package for your system.
79-
80-
==== Node.js
81-
82-
Next, make sure that you have Node.js installed (which also provides npm).
83-
84-
$ node --version
85-
86-
If this command fails with an error, you don't have Node.js installed.
87-
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.
88-
In this guide, we'll be installing Node.js 10.
89-
90-
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).
91-
Follow the {url-nvm-install}[nvm installation instructions] to set up nvm on your machine.
92-
93-
Once you've installed nvm, open a new terminal and install Node.js 10 using the following command:
94-
95-
$ nvm install 10
96-
97-
You can switch to this version of Node.js at any time using the following command:
9830

99-
$ nvm use 10
31+
== Build process
10032

101-
To make Node.js 10 the default in new terminals, type:
33+
The UI is built with Gulp.
34+
Linting, bundling, and previewing are supported.
35+
This repository is referenced as a submodule in the documentation repository, and the bundling takes place there.
10236

103-
$ nvm alias default 10
37+
To create a bundle run:
38+
[source,js]
39+
npm ci
40+
npm run bundle
10441

105-
Now that you have Node.js installed, you can proceed with installing the Gulp CLI.
42+
It will be created in `build/ui-bundle.zip`
10643

107-
==== Gulp CLI
44+
== Project structure
10845

109-
You'll need the Gulp command-line interface (CLI) to run the build.
110-
The Gulp CLI package provides the `gulp` command which, in turn, executes the version of Gulp declared by the project.
46+
The UI bundle is basically a collection of handlebars templates and some minimal JS and CSS, which is then filled with life with the documentation content. All of this lives in the `src` directory.
11147

112-
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:
48+
Inside the `src` directory are:
11349

114-
$ npm install -g gulp-cli
50+
* `css`: Contains all the CSS. `site.css` contains imports of all the other files. In `vendor` there is the copied-in FontAwesome CSS file.
51+
* `helpers`: Contains Handlebars helper functions. The file names are the names of the helpers. You can use these inside the Handlebars templates.
52+
* `img`: Images used in the UI.
53+
* `js`: Contains JavaScript files for UI functionality, numbered for loading order. The `vendor` directory contains third-party libraries like highlight.js and tabs functionality.
54+
* `layouts`: Contains the main Handlebars layout templates. `default.hbs` is the standard page layout, `landing.hbs` is for landing pages with special styling, and `404.hbs` handles error pages. These templates define the overall page structure and include partials for header, body, and footer.
55+
* `partials`: Contains all the Handlebars files. This is the directory containing all the templated HTML for the site.
11556

116-
Verify the Gulp CLI is installed and on your PATH by running:
57+
=== Gulp
11758

118-
$ gulp --version
59+
To work on the build process of this, you need to understand https://gulpjs.com/docs/en/getting-started/javascript-and-gulpfiles[gulp].
60+
Gulp is a builder/bundler that is used to package this antora UI.
11961

120-
If you prefer to install global packages using Yarn, run this command instead:
62+
In this project, `gulpfile.js` is the main entrypoint for gulp.
63+
This file references tasks in the `gulp.d` directory.
12164

122-
$ yarn global add gulp-cli
65+
You don't need to install the `gulp` CLI yourself, you can call package scripts (i.e. `npm run bundle` which will then call `gulp` from the `node_modules`).
12366

124-
Alternately, you can use the `gulp` command that is installed by the project's dependencies.
67+
=== Building the final documentation
12568

126-
$ $(npm bin)/gulp --version
69+
The documentation repository uses this repository as a submodule, bundles the UI on demand and then links to it like this in the Playbook:
12770

128-
Now that you have the prerequisites installed, you can fetch and build the UI project.
129-
130-
=== Clone and Initialize the UI Project
131-
132-
Clone the default UI project using git:
133-
134-
[subs=attributes+]
135-
$ git clone {url-project} &&
136-
cd "`basename $_`"
137-
138-
The example above clones Antora's default UI project and then switches to the project folder on your filesystem.
139-
Stay in this project folder when executing all subsequent commands.
140-
141-
Use npm to install the project's dependencies inside the project.
142-
In your terminal, execute the following command:
143-
144-
$ npm install
145-
146-
This command installs the dependencies listed in [.path]_package.json_ into the [.path]_node_modules/_ folder inside the project.
147-
This folder does not get included in the UI bundle and should _not_ be committed to the source control repository.
148-
149-
[TIP]
150-
====
151-
If you prefer to install packages using Yarn, run this command instead:
152-
153-
$ yarn
154-
====
155-
156-
=== Preview the UI
157-
158-
The default UI project is configured to preview offline.
159-
The files in the [.path]_preview-src/_ folder provide the sample content that allow you to see the UI in action.
160-
In this folder, you'll primarily find pages written in AsciiDoc.
161-
These pages provide a representative sample and kitchen sink of content from the real site.
162-
163-
To build the UI and preview it in a local web server, run the `preview` command:
164-
165-
$ gulp preview
166-
167-
You'll see a URL listed in the output of this command:
168-
169-
....
170-
[12:00:00] Starting server...
171-
[12:00:00] Server started http://localhost:5252
172-
[12:00:00] Running server
173-
....
174-
175-
Navigate to this URL to preview the site locally.
71+
[source,yaml]
72+
ui:
73+
bundle:
74+
url: ./ui/build/ui-bundle.zip
17675

177-
While this command is running, any changes you make to the source files will be instantly reflected in the browser.
178-
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.
76+
=== Previewing the UI during development
17977

78+
It is useful to be able to see changes quickly while working on the UI.
79+
To start the preview at http://localhost:5252, run `npm run preview`.
18080
Press kbd:[Ctrl+C] to stop the preview server and end the continuous build.
18181

182-
=== Package for Use with Antora
82+
==== How it works
18383

184-
If you need to package the UI so you can use it to generate the documentation site locally, run the following command:
84+
The `preview-src` directory contains dummy docs content, which will be used to render the UI templates.
85+
The `ui-model.yml` contains dummy information similar to the antora-playbook.yaml.
18586

186-
$ gulp bundle
187-
188-
If any errors are reported by lint, you'll need to fix them.
189-
190-
When the command completes successfully, the UI bundle will be available at [.path]_build/ui-bundle.zip_.
191-
You can point Antora at this bundle using the `--ui-bundle-url` command-line option.
192-
193-
If you have the preview running, and you want to bundle without causing the preview to be clobbered, use:
194-
195-
$ gulp bundle:pack
196-
197-
The UI bundle will again be available at [.path]_build/ui-bundle.zip_.
198-
199-
==== Source Maps
200-
201-
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.
202-
{url-source-maps}[Source maps] correlate these combined files with their original sources.
203-
204-
This "`source mapping`" is accomplished by generating additional map files that make this association.
205-
These map files sit adjacent to the combined files in the build folder.
206-
The mapping they provide allows the debugger to present the original source rather than the obfuscated file, an essential tool for debugging.
87+
== Notes on our Customized Version
20788

208-
In preview mode, source maps are enabled automatically, so there's nothing you have to do to make use of them.
209-
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:
89+
=== Tracking
90+
We have added our own tracking solution into `src/partials/head-scripts.hbs`. It has the URL hardcoded. it can be enabled by setting `site.keys.enable_tracking` to `true`/`false` in the Antora playbook.
21091

211-
$ SOURCEMAPS=true gulp bundle
92+
=== Highlight.js v10
93+
[Ticket](https://github.com/stackabletech/documentation/issues/232) - Due to the removal of HTML-passthru in v11 (which we need for [Callouts](https://docs.asciidoctor.org/asciidoc/latest/verbatim/callouts/)) the highlight.js has not been updated from v10. This also affects the Antora Default UI. Both decisions will be revisited when the upstream upgrade is available.
21294

213-
In this case, the bundle will include the source maps, which can be used for debugging your production site.
95+
=== Search with pagefind
96+
We use https://pagefind.app/[pagefind] for search.
97+
The index is generated as part of the build in the `documentation` repository.
98+
Various `pagefind-*` tags are used to mark content that should be indexed.
99+
Only the stable docs are indexed (no previous versions, no nightly).
214100

215101
== Copyright and License
216102

preview-src/index.adoc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,22 @@ xref:nifi::index.adoc[Read more]
190190
<div class="box">
191191
++++
192192

193+
++++
194+
<h3>OpenSearch</h3>
195+
++++
196+
197+
OpenSearch is a powerful search and analytics engine built on Apache Lucene.
198+
199+
xref:opensearch::index.adoc[Read more]
200+
201+
++++
202+
</div>
203+
++++
204+
205+
++++
206+
<div class="box">
207+
++++
208+
193209
++++
194210
<h3>Apache Spark</h3>
195211
++++

src/partials/footer-content.hbs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@
7777
Hadoop logo, Apache Phoenix™, Phoenix and the Phoenix-Logo, Apache Iceberg, Iceberg and the
7878
Iceberg-Logo are either registered trademarks or trademarks of the Apache Software Foundation
7979
in the United States and/or other countries. Open Policy Agent (OPA) is a Cloud Native
80-
Computing Foundation graduated project. Licensed under the Apache License, Version 2.0. Trino
80+
Computing Foundation graduated project. Licensed under the Apache License, Version 2.0.
81+
OpenSearch is a project of The Linux Foundation licensed under the Apache License 2.0. Trino
8182
is open source software licensed under the Apache License 2.0 and supported by the Trino
8283
Software Foundation. MinIO is a [“registered”, if applicable] trademark of the MinIO
8384
Corporation. All other products or name brands are trademarks of their respective holders.

0 commit comments

Comments
 (0)