README.adoc 8.33 KB
Newer Older
Dan Allen's avatar
Dan Allen committed
1
= Antora Default UI
Dan Allen's avatar
Dan Allen committed
2 3 4
// Settings:
:experimental:
:hide-uri-scheme:
5 6 7 8 9 10 11
// Project URLs:
:url-project: https://gitlab.com/antora/antora-ui-default
:url-preview: https://antora.gitlab.io/antora-ui-default
:url-ci-pipelines: {url-project}/pipelines
:img-ci-status: {url-project}/badges/master/pipeline.svg
// External URLs:
:url-antora: https://antora.org
Dan Allen's avatar
Dan Allen committed
12
:url-antora-docs: https://docs.antora.org
13 14 15 16
:url-git: https://git-scm.com
:url-git-dl: {url-git}/downloads
:url-gulp: http://gulpjs.com
:url-opendevise: https://opendevise.com
Dan Allen's avatar
Dan Allen committed
17
:url-nodejs: https://nodejs.org
18 19
:url-nvm: https://github.com/creationix/nvm
:url-nvm-install: {url-nvm}#installation
20
:url-source-maps: https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Use_a_source_map
21 22 23

image:{img-ci-status}[CI Status (GitLab CI), link={url-ci-pipelines}]

Dan Allen's avatar
Dan Allen committed
24
This project is an archetype that demonstrates how to produce a UI bundle that can be used by {url-antora}[Antora] to generated a documentation site.
25
You can see a preview of the default UI at {url-preview}.
Dan Allen's avatar
Dan Allen committed
26

Dan Allen's avatar
Dan Allen committed
27 28 29
While the default UI is ready to be used with Antora, the intent is that you'll fork it and customize it for your own needs.
It's intentionally minimalistic so as to give you a good starting point without requiring too much effort to customize.

30 31 32 33 34 35
== Code of Conduct

The Antora project and its project spaces are governed by our https://gitlab.com/antora/antora/-/blob/master/CODE-OF-CONDUCT.adoc[Code of Conduct].
By participating, you're agreeing to honor this code.
Let's work together to make this a welcoming, professional, inclusive, and safe environment for everyone.

36
== Use the Default UI
Dan Allen's avatar
Dan Allen committed
37

Dan Allen's avatar
Dan Allen committed
38
If you want to simply use the default UI for your Antora-generated site, add the following UI configuration to your playbook:
Dan Allen's avatar
Dan Allen committed
39

Dan Allen's avatar
Dan Allen committed
40
[source,yaml]
Dan Allen's avatar
Dan Allen committed
41 42
----
ui:
43 44 45
  bundle:
    url: https://gitlab.com/antora/antora-ui-default/-/jobs/artifacts/master/raw/build/ui-bundle.zip?job=bundle-stable
    snapshot: true
Dan Allen's avatar
Dan Allen committed
46 47
----

Dan Allen's avatar
Dan Allen committed
48 49 50 51
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.

Dan Allen's avatar
Dan Allen committed
52
Read on to learn how to customize the default UI for your own documentation.
Dan Allen's avatar
Dan Allen committed
53

Dan Allen's avatar
Dan Allen committed
54
== Development Quickstart
Dan Allen's avatar
Dan Allen committed
55

Dan Allen's avatar
Dan Allen committed
56
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.
Dan Allen's avatar
Dan Allen committed
57
A more comprehensive tutorial can be found in the documentation at {url-antora-docs}.
Dan Allen's avatar
Dan Allen committed
58 59 60 61 62

=== Prerequisites

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

63
* {url-git}[git] (command: `git`)
64
* {url-nodejs}[Node.js] (commands: `node` and `npm`)
65
* {url-gulp}[Gulp CLI] (command: `gulp`)
Dan Allen's avatar
Dan Allen committed
66 67 68 69 70 71 72

==== git

First, make sure you have git installed.

 $ git --version

73
If not, {url-git-dl}[download and install] the git package for your system.
Dan Allen's avatar
Dan Allen committed
74

Dan Allen's avatar
Dan Allen committed
75
==== Node.js
Dan Allen's avatar
Dan Allen committed
76

77
Next, make sure that you have Node.js installed (which also provides npm).
Dan Allen's avatar
Dan Allen committed
78 79 80

 $ node --version

Dan Allen's avatar
Dan Allen committed
81 82 83
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.
Dan Allen's avatar
Dan Allen committed
84

Dan Allen's avatar
Dan Allen committed
85
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).
86
Follow the {url-nvm-install}[nvm installation instructions] to set up nvm on your machine.
Dan Allen's avatar
Dan Allen committed
87

Dan Allen's avatar
Dan Allen committed
88
Once you've installed nvm, open a new terminal and install Node.js 10 using the following command:
Dan Allen's avatar
Dan Allen committed
89

90
 $ nvm install 10
Dan Allen's avatar
Dan Allen committed
91

Dan Allen's avatar
Dan Allen committed
92
You can switch to this version of Node.js at any time using the following command:
Dan Allen's avatar
Dan Allen committed
93

94
 $ nvm use 10
Dan Allen's avatar
Dan Allen committed
95

Dan Allen's avatar
Dan Allen committed
96
To make Node.js 10 the default in new terminals, type:
Dan Allen's avatar
Dan Allen committed
97

98
 $ nvm alias default 10
Dan Allen's avatar
Dan Allen committed
99

Dan Allen's avatar
Dan Allen committed
100
Now that you have Node.js installed, you can proceed with installing the Gulp CLI.
Dan Allen's avatar
Dan Allen committed
101 102 103

==== Gulp CLI

Dan Allen's avatar
Dan Allen committed
104 105
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.
Dan Allen's avatar
Dan Allen committed
106

107
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:
Dan Allen's avatar
Dan Allen committed
108 109 110

 $ npm install -g gulp-cli

Dan Allen's avatar
Dan Allen committed
111
Verify the Gulp CLI is installed and on your PATH by running:
Dan Allen's avatar
Dan Allen committed
112

Dan Allen's avatar
Dan Allen committed
113
 $ gulp --version
Dan Allen's avatar
Dan Allen committed
114

Dan Allen's avatar
Dan Allen committed
115
If you prefer to install global packages using Yarn, run this command instead:
Dan Allen's avatar
Dan Allen committed
116

Dan Allen's avatar
Dan Allen committed
117
 $ yarn global add gulp-cli
118 119 120 121

Alternately, you can use the `gulp` command that is installed by the project's dependencies.

 $ $(npm bin)/gulp --version
Dan Allen's avatar
Dan Allen committed
122

Dan Allen's avatar
Dan Allen committed
123
Now that you have the prerequisites installed, you can fetch and build the UI project.
Dan Allen's avatar
Dan Allen committed
124

125
=== Clone and Initialize the UI Project
Dan Allen's avatar
Dan Allen committed
126 127 128 129

Clone the default UI project using git:

[subs=attributes+]
130
 $ git clone {url-project} &&
Dan Allen's avatar
Dan Allen committed
131 132 133
   cd "`basename $_`"

The example above clones Antora's default UI project and then switches to the project folder on your filesystem.
Dan Allen's avatar
Dan Allen committed
134
Stay in this project folder when executing all subsequent commands.
Dan Allen's avatar
Dan Allen committed
135

Dan Allen's avatar
Dan Allen committed
136 137
Use npm to install the project's dependencies inside the project.
In your terminal, execute the following command:
Dan Allen's avatar
Dan Allen committed
138

Dan Allen's avatar
Dan Allen committed
139
 $ npm install
Dan Allen's avatar
Dan Allen committed
140 141

This command installs the dependencies listed in [.path]_package.json_ into the [.path]_node_modules/_ folder inside the project.
Dan Allen's avatar
Dan Allen committed
142 143 144 145 146 147 148 149
This folder does not get included in the UI bundle and should _not_ be committed to the source control repository.

[TIP]
====
If you prefer to install packages using Yarn, run this command instead:

 $ yarn
====
Dan Allen's avatar
Dan Allen committed
150

151
=== Preview the UI
Dan Allen's avatar
Dan Allen committed
152 153

The default UI project is configured to preview offline.
Dan Allen's avatar
Dan Allen committed
154 155 156
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.
Dan Allen's avatar
Dan Allen committed
157 158 159 160 161

To build the UI and preview it in a local web server, run the `preview` command:

 $ gulp preview

162
You'll see a URL listed in the output of this command:
Dan Allen's avatar
Dan Allen committed
163 164

....
Dan Allen's avatar
Dan Allen committed
165 166 167
[12:00:00] Starting server...
[12:00:00] Server started http://localhost:5252
[12:00:00] Running server
Dan Allen's avatar
Dan Allen committed
168 169
....

Dan Allen's avatar
Dan Allen committed
170
Navigate to this URL to preview the site locally.
Dan Allen's avatar
Dan Allen committed
171 172

While this command is running, any changes you make to the source files will be instantly reflected in the browser.
173
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.
Dan Allen's avatar
Dan Allen committed
174 175 176

Press kbd:[Ctrl+C] to stop the preview server and end the continuous build.

177
=== Package for Use with Antora
Dan Allen's avatar
Dan Allen committed
178

Dan Allen's avatar
Dan Allen committed
179
If you need to package the UI so you can use it to generate the documentation site locally, run the following command:
Dan Allen's avatar
Dan Allen committed
180

181
 $ gulp bundle
Dan Allen's avatar
Dan Allen committed
182

Dan Allen's avatar
Dan Allen committed
183 184 185 186
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.
187

Dan Allen's avatar
Dan Allen committed
188 189 190 191
If you have the preview running, and you want to bundle without causing the preview to be clobbered, use:

 $ gulp bundle:pack

192 193
The UI bundle will again be available at [.path]_build/ui-bundle.zip_.

194 195 196 197 198 199 200 201 202 203
==== 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.
204
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:
205 206 207

 $ SOURCEMAPS=true gulp bundle

208
In this case, the bundle will include the source maps, which can be used for debugging your production site.
209

Dan Allen's avatar
Dan Allen committed
210 211
== Copyright and License

212
Copyright (C) 2017-present OpenDevise Inc. and the Antora Project.
Dan Allen's avatar
Dan Allen committed
213 214 215 216 217 218

Use of this 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.

== Authors

219
Development of Antora is led and sponsored by {url-opendevise}[OpenDevise Inc].