Skip to content
Lukas Deutz edited this page Mar 26, 2020 · 5 revisions

Stages

The build process is defined by stages, which run sequentially. The build system is rake, all stages are defined in the Rakefile in the toolchain repository.

Run build: rake docs:all (assumes a correct setup)

Setup

Command: bash toolchain/setup/setup.sh

Setup all environments needed for the test and/or build:

  • Ruby 2.6 or later
    • Installed gems

Test

Command: rake docs:test

Run all tests defined in lib/extensions.d:

  • ID Checker
  • if Checker
  • Pattern Checker (using a blacklist)
  • Link Checker
  • more to come...

You can write your own tests during this stage, consult Test/Extension for more information.

Pre

Command: rake docs:pre

Runs Pre Processing, defined by BaseProcesses in lib/pre.d:

  • Combine and transpile Javascript: Transpile new ES features to increase cross-browser compatibility and combine all Javascript tags (that are not marked noblob) into one blob file for faster loading.

To create your own processes, refert to PrePost/Process.

Build

Command: rake docs:build

Build the documentation. The build uses a custom version of the HTML5 Multipage Converter and produces a custom Table of Contents.

Available formats:

  • HTML

Planned formats:

  • PDF

Post

Command: rake docs:post

Runs Post Processing, defined by BaseProcesses in lib/post.d:

  • CodeRay Style: include CodeRay stylesheet on every page (overwrites default: includes CodeRay style on pages with source code samples)
  • Compile search index: compiles Lunr search index
  • HTML check: runs htmltest if the architecture and OS is supported (Linux, Windows or Mac 64 bit)
  • Rename: Copies the page titled Home.html (if it exists) to index.html, because index.html is just an overview page generated by the HTML5 Multipage Converter.

Disabled processes:

  • HTML Post Processing: This is not registered with the PostProcessManager, because the functionality is executed durint the Build stage.

To create your own processes, refert to PrePost/Process.

Clone this wiki locally