- Table of Contents:
  - Table of contents defines the structure of the generated pages.
  - Example:

        Interop.html                                "X-Midas Interoperability"
          InteropOverview.html                      "Overview"
            InteropOptions.html                     "Interoperability Options"
          InteropXbc.html                           "XBC"
            InteropXbcSetup.html                    "XBC Setup"
            InteropXbcAdding.html                   "Adding Host Primitives"
            InteropXbcMessages.html                 "Messages"
              InteropXbcConfiguredMessages.html     "Configured Messages"
              InteropXbcUnconfiguredMessages.html   "Unconfigured Messages"
          InteropLab1.html                          "Lab 1"
            InteropLab1Instructions.html            "Instructions"
            InteropLab1Solution.html                "Solution"
          InteropNeXtOpt.html                       "NeXtOpt"
            InteropNeXtOptSetup.html                "NeXtOpt Setup"
            InteropNeXtOptUsing.html                "Using NeXtOpt"
            InteropNeXtOptShared.html               "Shared Functions"
            InteropNeXtOptMessages.html             "Messages"

  - Left hand of TOC if the file name. Indentation indicates structure:

    Indent = 0 spaces | Module heading.
    Indent = 2 spaces | Section heading.
    Indent = 4+ spaces | Body page. (Indent is always a multiple of 2)

  - Right hand of TOC is the title for the page.
  - After updating the TOC run the following (with UCL on the path):

        makedocs options=^{env.nmroot}/htdocs/training/rawfiles/options.tbl

- File names:
  - Module heading is the short name of the module (e.g. "Interop" or "Primitives") plus ".html".
  - All other files in the module start with the name of the module and end with ".html".
  - Labs are always named:

    Section heading | `ModuleLabN.html`
    Instructions | `ModuleLabNInstructions.html`
    Solution | `ModuleLabNSolution.html` (This one is optional.)

  - The title of the advanced labs always has a star (*) after the lab number, however this is not included in the file name.
- First Page in a Module:
  - Just copy-paste this:

        <html>
          <body>
            <br><br><br><br><br>
            <h1>NeXtMidas Training</h1>
            <h2>X-Midas Interoperability</h2>
          </body>
        </html>

- First Page in a Section:
  - Just copy-paste this:

        <html>
          <body>
            <br><br><br><br><br>
            <h2>Lab 1</h2>
            <h3>(Installing an X-Midas host primitive via XBC.)</h3>
          </body>
        </html>

- Body Page:
  - Basic structure:

        <html>
          <body>
            <ul class="top">
              <li>Level 1</li>
              <li>Level 1
                <ul>
                  <li>Level 2</li>
                  <li>Level 2</li>
                  <li>Level 2</li>
                </ul>
              </li>
              <li>Level 1
                <ol>
                  <li>Level 2 (ordered)</li>
                  <li>Level 2 (ordered)</li>
                  <li>Level 2 (ordered)</li>
                </ol>
              </li>
            </ul>
          </body>
        </html>

  - Note that all `Level 1` entries will be formatted special since the very top level `<ul>` has `class="top"`.
  - Other possible structural elements:
    Definition list:
      Example:

      Title Definition Title Definition Title Definition 1 Definition 2

      Code:

          <dl>
            <dt>Title</dt>
            <dd>Definition</dd>
            <dt>Title</dt>
            <dd>Definition</dd>
            <dt>Title</dt>
            <dd>Definition 1</dd>
            <dd>Definition 2</dd>
          </dl>

    Definition list table:
      Example:

      Title | Definition
      Title | Definition
      Title | Definition

      Code:

          <table class="inline">
            <tr><td class="dt">Title</td>
                <td class="dd">Definition</td></tr>
            <tr><td class="dt">Title</td>
                <td class="dd">Definition</td></tr>
            <tr><td class="dt">Title</td>
                <td class="dd">Definition</td></tr>
          </table>

    Normal table:
      Code:

          <table>
            <tr>
              <td>A</td>
              <td>1</td>
            </tr>
            <tr>
              <td>B</td>
              <td>2</td>
            </tr>
            <tr>
              <td>C</td>
              <td>3</td>
            </tr>
          </table>

    Code Block:
      Example:

          public static void main(String[] args) {
            // do something
          }

      Code:

          <pre>
          public static void main(String[] args) {
            // do something
          }</pre>

      Note that everything after `<pre>` and before `</pre>` will need to be left aligned in the HTML.
    X-Midas User Tip (Caveman):
      Always copy-paste this block just before the `</body>` tag.
      Code:

          <!-- START X-MIDAS HINT -->
          <table class="xhint">
            <tr><th>X-Midas Users Take Note:</th></tr>
            <tr>
              <td><img class="xhint" src="caveman.gif">
                text
              </td>
            </tr>
          </table>
          <!-- END X-MIDAS HINT -->

    Common Mistake:
      Always copy-paste this block just before the `</body>` tag.
      Code:

          <!-- START SLIP UP HINT -->
          <table class="shint">
            <tr><th>Don't Make This Mistake:</th></tr>
            <tr>
              <td><img class="shint" src="slip.gif">
                text
              </td>
            </tr>
          </table>
          <!-- END SLIP UP HINT -->

    Java User Tip:
      Always copy-paste this block just before the `</body>` tag.
      Code:

          <!-- START JAVA HINT -->
          <table class="jhint">
            <tr><th>Java Experts Take Note:</th></tr>
            <tr>
              <td><img class="jhint" src="duke.png">
                text
              </td>
            </tr>
          </table>
          <!-- END JAVA HINT -->

    New Feature Hint:
      Always copy-paste this block just before the `</body>` tag.
      Code:

          <!-- START NEW HINT -->
          <table class="newhint">
            <tr><th>New Feature (Since NeXtMidas x.y.z):</th></tr>
            <tr>
              <td><img class="newhint" src="new.png">
                text
              </td>
            </tr>
          </table>
          <!-- END NEW HINT -->

  - Text formatting:

    Code | `<code>text</code>` (Used for command names, Java code, Macro code)
    Bold | `<b>text</b>`
    Italics | `<i>text</i>`
    Underline | `<u>text</u>`
    Superscript | `<sup>text</sup>` (Used for exponents or ordinal numbers, 1st, ..., Nth)
    Subscript | `<sub>text</sub>`
    Font | `<font>text</font>` (Used with `class="color"` to set color.)

  - Text color:
    - To add one of the standard colors (listed below) add `class="color"` to one of the standard text formatting elements listed above.
      - red
      - blue
      - teal
    - Note that `class="color"` can also be added to `<li>`.
    - Always use `<i class="teal">text</i>` when including a side-note in the text.