:toc: macro :toc-title:
= Support How-To
toc::[]
This repository contains the source code for our https://docs.rackspace.com/support/ website.
The content is written in link:https://github.com/yuin/goldmark/[Goldmark-style Markdown] and link:https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/[AsciiDoc]. It is generated by link:https://gohugo.io/[Hugo].
== Requirements
To build this site locally, you can either install the dependencies directly on your development machine.
=== Local set up
npm i -g netlify-cli
netlify init
netlify build
netlify dev
netlify deploy
==== Install Hugo directly
To build the documentation locally, install link://https://gohugo.io/[Hugo] and have the hugo
command available in your PATH. Use Hugo version 0.78 or newer. You can install hugo
by using
your system's package manager. For example, on OSX, type the following command to install hugo
with Homebrew:
brew install hugo
For more information about how to install Hugo, see link:https://gohugo.io/getting-started/installing/[Hugo installation documentation].
==== Install Asciidoctor directly
The documentation build also requires the Asciidoctor Ruby package to process .adoc
files. To
avoid having to install Ruby packages as the root user (with sudo), add the following lines to the
.bashrc
(for Bash Shell) or .zshenv
(for Z Shell) in your home directory:
export GEM_HOME=$HOME/.gem
if [ -d $GEM_HOME ]; then \
export PATH=$GEM_HOME:$PATH; fi
Create the ~/.gem
directory:
mkdir -p $HOME/.gem
Log in and log out (or source
the environment file you changed previously) to pick up the changes.
Now, install Asciidoctor:
make install
==== Build the documentation locally
Build your content locally and check for build errors before submitting a pull request.
netlify build
==== Start a local web server
To preview documents in a web browser such as Chrome, start the Hugo server on your device.
Hugo has a live serve
command that runs a small, lightweight web server on your computer so you can
test your site locally without needing to upload it anywhere. As you make changes to files in your project,
it rebuilds your project and reloads the browser for you.
To start the Hugo server, perform the following steps:
netlify dev
The Hugo server displays some messages while it starts up. The last line should be:
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1) Press Ctrl+C to stop
You should now be able to access the Support How-To using the generated link. You cannot use the Support How-To dropdown to navigate to your new article. To access your article:
This running instance supports live reload. Changes you make to files are automatically updated in your running instance.
Some files may not be supported for live reload. If you are not automatically seeing your changes,
you may need to restart the server. You can restart the server by pressing 'ctrl-c' and running
netlify dev
again.
If everything is working as expected, you will see output similar to:
Start building sites …
hugo v0.84.2+extended darwin/amd64 BuildDate=unknown
| EN-US
-------------------+--------
Pages | 1838
Paginator pages | 0
Non-page files | 800
Static files | 89
Processed images | 0
Aliases | 0
Sitemaps | 1
Cleaned | 0
Built in 3988 ms
Watching for changes in /rackerlabs/support-how-to/{archetypes,content,i18n,layouts,static}
Watching for config changes in /rackerlabs/support-how-to/config.toml
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at //localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop
┌─────────────────────────────────────────────────┐
│ │
│ ◈ Server now ready on http://localhost:8888 │
│ │
└─────────────────────────────────────────────────┘
This running instance supports live reload. Changes you make to files should be automatically updated in your running instance.
Some files may not be supported for live reload. If you are not automatically seeing your changes live you may need to restart the server. You can restart the server by pressing 'ctrl-c' and running
netlify dev
again.
== Project directory structure
├── [archetypes]- Directory where you define the content, tags, categories, etc.
├── [content] - Directory that contains the content of the site.
├── [assets] - Directory that contains stylesheets.
├── [src] - Directory that contains Javascript.
├── [i18n] - Directory that contains Language Support.
├── [layouts] - Directory that contains Go HTML/template library used to template and format the site.
├── [public] - (Doesn't exist until generated) Directory that contains the generated content for the site. Should be part of your git.ignore file.
├── [static] - Directory for any static files to be compiled into the web site (fav icons, etc.).
├── Makefile
├── config.toml - Main configuration file, where you define the web site title, URL, language, etc.
├── README.adoc (This file)