]> git.evergreen-ils.org Git - working/eg-antora.git/blob - README.adoc
Fixing header download link for Evergreen downloads
[working/eg-antora.git] / README.adoc
1 = Antora Default UI
2 // Settings:
3 :experimental:
4 :hide-uri-scheme:
5 // Project URLs:
6 :url-project: https://gitlab.com/antora/antora-ui-default
7 :url-preview: https://antora.gitlab.io/antora-ui-default
8 :url-ci-pipelines: {url-project}/pipelines
9 :img-ci-status: {url-project}/badges/master/pipeline.svg
10 // External URLs:
11 :url-antora: https://antora.org
12 :url-antora-docs: https://docs.antora.org
13 :url-git: https://git-scm.com
14 :url-git-dl: {url-git}/downloads
15 :url-gulp: http://gulpjs.com
16 :url-opendevise: https://opendevise.com
17 :url-nodejs: https://nodejs.org
18 :url-nvm: https://github.com/creationix/nvm
19 :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 image:{img-ci-status}[CI Status (GitLab CI), link={url-ci-pipelines}]
23
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}.
26
27 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.
28 It's intentionally minimalistic so as to give you a good starting point without requiring too much effort to customize.
29
30 == Code of Conduct
31
32 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].
33 By participating, you're agreeing to honor this code.
34 Let's work together to make this a welcoming, professional, inclusive, and safe environment for everyone.
35
36 == Use the Default UI
37
38 If you want to simply use the default UI for your Antora-generated site, add the following UI configuration to your playbook:
39
40 [source,yaml]
41 ----
42 ui:
43   bundle:
44     url: https://gitlab.com/antora/antora-ui-default/-/jobs/artifacts/master/raw/build/ui-bundle.zip?job=bundle-stable
45     snapshot: true
46 ----
47
48 NOTE: The `snapshot` flag tells Antora to fetch the UI when the `--fetch` command-line flag is present.
49 This setting is required because updates to the UI bundle are pushed to the same URL.
50 If the URL were to be unique, this setting would not be required.
51
52 Read on to learn how to customize the default UI for your own documentation.
53
54 == Development Quickstart
55
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.
57 A more comprehensive tutorial can be found in the documentation at {url-antora-docs}.
58
59 === Prerequisites
60
61 To preview and bundle the default UI, you need the following software on your computer:
62
63 * {url-git}[git] (command: `git`)
64 * {url-nodejs}[Node.js] (commands: `node` and `npm`)
65 * {url-gulp}[Gulp CLI] (command: `gulp`)
66
67 ==== git
68
69 First, make sure you have git installed.
70
71  $ git --version
72
73 If not, {url-git-dl}[download and install] the git package for your system.
74
75 ==== Node.js
76
77 Next, make sure that you have Node.js installed (which also provides npm).
78
79  $ node --version
80
81 If this command fails with an error, you don't have Node.js installed.
82 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.
83 In this guide, we'll be installing Node.js 10.
84
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.
87
88 Once you've installed nvm, open a new terminal and install Node.js 10 using the following command:
89
90  $ nvm install 10
91
92 You can switch to this version of Node.js at any time using the following command:
93
94  $ nvm use 10
95
96 To make Node.js 10 the default in new terminals, type:
97
98  $ nvm alias default 10
99
100 Now that you have Node.js installed, you can proceed with installing the Gulp CLI.
101
102 ==== Gulp CLI
103
104 You'll need the Gulp command-line interface (CLI) to run the build.
105 The Gulp CLI package provides the `gulp` command which, in turn, executes the version of Gulp declared by the project.
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:
108
109  $ npm install -g gulp-cli
110
111 Verify the Gulp CLI is installed and on your PATH by running:
112
113  $ gulp --version
114
115 If you prefer to install global packages using Yarn, run this command instead:
116
117  $ yarn global add gulp-cli
118
119 Alternately, you can use the `gulp` command that is installed by the project's dependencies.
120
121  $ $(npm bin)/gulp --version
122
123 Now that you have the prerequisites installed, you can fetch and build the UI project.
124
125 === Clone and Initialize the UI Project
126
127 Clone the default UI project using git:
128
129 [subs=attributes+]
130  $ git clone {url-project} &&
131    cd "`basename $_`"
132
133 The example above clones Antora's default UI project and then switches to the project folder on your filesystem.
134 Stay in this project folder when executing all subsequent commands.
135
136 Use npm to install the project's dependencies inside the project.
137 In your terminal, execute the following command:
138
139  $ npm install
140
141 This command installs the dependencies listed in [.path]_package.json_ into the [.path]_node_modules/_ folder inside the project.
142 This folder does not get included in the UI bundle and should _not_ be committed to the source control repository.
143
144 [TIP]
145 ====
146 If you prefer to install packages using Yarn, run this command instead:
147
148  $ yarn
149 ====
150
151 === Preview the UI
152
153 The default UI project is configured to preview offline.
154 The files in the [.path]_preview-src/_ folder provide the sample content that allow you to see the UI in action.
155 In this folder, you'll primarily find pages written in AsciiDoc.
156 These pages provide a representative sample and kitchen sink of content from the real site.
157
158 To build the UI and preview it in a local web server, run the `preview` command:
159
160  $ gulp preview
161
162 You'll see a URL listed in the output of this command:
163
164 ....
165 [12:00:00] Starting server...
166 [12:00:00] Server started http://localhost:5252
167 [12:00:00] Running server
168 ....
169
170 Navigate to this URL to preview the site locally.
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.
174
175 Press kbd:[Ctrl+C] to stop the preview server and end the continuous build.
176
177 === Package for Use with Antora
178
179 If you need to package the UI so you can use it to generate the documentation site locally, run the following command:
180
181  $ gulp bundle
182
183 If any errors are reported by lint, you'll need to fix them.
184
185 When the command completes successfully, the UI bundle will be available at [.path]_build/ui-bundle.zip_.
186 You can point Antora at this bundle using the `--ui-bundle-url` command-line option.
187
188 If you have the preview running, and you want to bundle without causing the preview to be clobbered, use:
189
190  $ gulp bundle:pack
191
192 The UI bundle will again be available at [.path]_build/ui-bundle.zip_.
193
194 ==== Source Maps
195
196 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.
197 {url-source-maps}[Source maps] correlate these combined files with their original sources.
198
199 This "`source mapping`" is accomplished by generating additional map files that make this association.
200 These map files sit adjacent to the combined files in the build folder.
201 The mapping they provide allows the debugger to present the original source rather than the obfuscated file, an essential tool for debugging.
202
203 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  $ SOURCEMAPS=true gulp bundle
207
208 In this case, the bundle will include the source maps, which can be used for debugging your production site.
209
210 == Copyright and License
211
212 Copyright (C) 2017-present OpenDevise Inc. and the Antora Project.
213
214 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).
215 See link:LICENSE[] to find the full license text.
216
217 == Authors
218
219 Development of Antora is led and sponsored by {url-opendevise}[OpenDevise Inc].