* Add ranges * Initial Hugo setup * Work in progress * Added selection for local or remote site * Updated to 'light' theme * Changed to using Hextra Hugo theme * Changed to using Hextra Hugo theme * Changed to Hextra Hugo theme * Change to Hextra Hugo theme * Updated Hugo setup. * Updated Hugo setup. # Conflicts: # docs/releases/_index.md * Work in progress * Added new fonts Added new documentation * Latest documentation updates * Latest documentation updates # Conflicts: # docs/containers/array.md # docs/containers/array_view.md # docs/containers/array_wrapper.md # docs/containers/bip_buffer_spsc_atomic.md # docs/containers/bitset.md # docs/containers/indirect_vector.md # docs/containers/vector.md # docs/getting-started/compilers.md * Added bloom_filter markdown doc * Added more documentation Updated CSS for light and dark modes * Fixed some menus Added mode documentation files * Updated CSS rules Added badges to home page Added uniqur_ptr + pool tutorial * Fixed formatting on the home page markdown Modified light amd dark code formatting * Updated unique_ptr-with-pool * Added container and shared message tutorials * Updates to documentation * Added const_multimap * Updated source-formatting.md * Added initial raw text files form Web site editor * Innore coverage build directory * Exported raw text documentation files from the web site editor * Hugo updates * Added Hugo intalation and markdown descriptions * More addition to the documentation * Added closure.md and updates to delegate.md * Added format.md * Added documentation for etl::delegate_observable, etl::function, Base64 codec * Added io_port documentation * Added basic_format_spec * Added documentation for string_stream and string utilities. * Added more documentation Updated the documentation CSS * Added documentation for clocks, day, duration * Added more documentation for chrono classes Updated callouts * More chrono documentation * Completed chrono documentation * Maths functions documentation * Completed maths documentation * Completed maths documentation * Completed maths documentation * Completed maths documentation * Added multiple documentation files * Added iterator.md * Added debug_count.md and versions.md * Added debug_count.md and versions.md * Added more documentation * More documentation * Added some design pattern documentation Modified some of the layout files Modified the About documentation * Converted more documentation pages Modified the site CSS * Added more documentation Moced some documentation files to new directories * Added more documentation Tweaks to CSS * Added callback_timer_deferred_locked documentation * Added callback_timer_locked documentation * More documentation updates * More documentation updates * More documentation updates * New documentation files. Harmonised file name format * New documentation files. * Multiple document updates * Multiple document updates * Final conversion of web pages * Updates before PR * Updates before PR * Updates before PR # Conflicts: # docs/blog/_index.md * Final pre PR updates * Updates to message framework documentation * Renamed directory * Fix spelling * Added author and date to blog files Moved documentation files merged from development * Fixed 'Description' typo * Fix typos # Conflicts: # docs/IO/io_port.md # docs/containers/sets/const-multiset.md # docs/containers/sets/const-set.md # docs/maths/correlation.md # docs/maths/gamma.md * Renamed two files to lower case * Minor renaming * Added author and date * Updated callout on bresenham_line.md Added support for showing the ETL version on the documentation first page, by copying the version.txt file as a hugo asset. Updated the Python 'update_release.py' to copy 'version.txt' * Replace space in filename with hyphen. Added more information to hugo-commands.md * Replace space in filename with hyphen. Added more information to hugo-commands.md # Conflicts: # docs/getting-started/view-the-docs-locally/hugo-commands.md * Added a link to pseudo_moving_average.md * Updated title pages for groups * Fixed missing 404 for non-existent pages * Fixed coordinate variable names in the 'Calculating the intersection' example --------- Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de> Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com> Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.co.uk>
5.5 KiB
Viewing the documentation locally
The documentation for this project is built using Hugo, a static site generator. This guide will walk you through installing Hugo and running the documentation site on your machine.
Prerequisites
- You must have already cloned this repository, including its submodules (the Hugo themes are stored as submodules).
- If you cloned without submodules, run this first:
git submodule update --init --recursive
Step 1: Install Hugo Extended
This project requires the extended version of Hugo, which includes support for additional features such as SCSS/Sass processing.
Make sure you install the extended version, not the standard one.
Windows
- The easiest way to install Hugo on Windows is via Chocolatey. If you have it installed, open a command prompt as Administrator and run:
choco install hugo-extended -y
- If you don't have Chocolatey, you can download Hugo Extended directly from the Hugo releases page.
Download the file namedhugo_extended_x.x.x_windows-amd64.zip, extract it, and add the folder to your system PATH. - Verify the installation by opening a new command prompt and running:
hugo version
You should see the word extended in the output, for example: hugo v0.x.x+extended.
macOS
- The easiest way to install Hugo Extended on macOS is via Homebrew. Homebrew installs the extended version by default. If you have it installed, open a terminal and run:
brew install hugo
- If you don't have Homebrew, you can install it first by following the instructions at brew.sh, then run the command above.
- Verify the installation by running:
hugo version
You should see the word extended in the output, for example: hugo v0.x.x+extended.
Linux
- Package managers often provide an older or non-extended version of Hugo, so the recommended approach is to download the latest extended release directly from the Hugo releases page.
Download the file named
hugo_extended_x.x.x_linux-amd64.tar.gz, then run:
tar -xzf hugo_extended_x.x.x_linux-amd64.tar.gz
sudo mv hugo /usr/local/bin/
- Verify the installation by running:
hugo version
You should see the word extended in the output, for example: hugo v0.x.x+extended.
Step 2: Run the documentation site
- Open a terminal (or command prompt on Windows) and navigate to the
hugodirectory inside the project:
cd hugo
- Start the Hugo development server:
hugo server
- Hugo will start a local web server. You will see output similar to:
Web Server is available at http://localhost:1313/
- Open your browser and go to http://localhost:1313/ to view the documentation.
Stopping the server
To stop the Hugo server, go back to your terminal and press Ctrl+C.
Editing the Documentation
The documentation source files are located in the /docs directory at the root of the repository —
not inside the hugo directory. Hugo is configured to mount this directory automatically via
hugo.toml, so any changes you make to files in /docs will be picked up by the Hugo development
server straight away.
Here is a quick overview of where things live:
hugo/
├── layouts/ # HTML templates (you probably won't need to touch these)
├── themes/ # The Hugo theme (managed as a git submodule)
└── hugo.toml # Hugo configuration file (includes the /docs content mount)
docs/
└── section-name/ # Each subdirectory becomes a section in the documentation
├── _index.md # The landing page for that section
└── my-page.md # Individual pages within the section
Adding or Editing a Page
All documentation pages are written in Markdown (.md files). To edit an existing page, open
the relevant .md file in the /docs directory and make your changes.
The documentation is written in Goldmark markdown.
Hugo uses Goldmark as its default Markdown processor for versions 0.60.0 and newer.
It is built into Hugo, providing high-performance and fully CommonMark-compliant rendering, along with support for GitHub Markdown.
Starting a New Page
A template file is provided at docs/page-template.md to use as a starting point. Copy it to the
appropriate section directory, rename it, and edit the front matter, in particular, change the
title and remove the draft: true line, otherwise Hugo will not include your page in the
documentation.
Previewing Your Changes
If you have the Hugo development server running (see Step 2), your changes will appear in the browser automatically as soon as you save the file. There is no need to restart the server.
Images and Other Assets
If you need to include images in your documentation, place them in the hugo/static/ directory and
reference them in your Markdown like so:

The site will automatically refresh in your browser whenever you save changes to the documentation files.