The Markdown Help Template System
The Markdown help template system supports authoring driver help with Markdown and the Mustache template language, and generating the documentation in several output formats — including a complete web site — from a single set of templates. It is the recommended way to author driver help.
How it works
Section titled “How it works”A help template is a folder of Markdown files that use the Mustache template language to insert values from the driver:
- Markdown templates are concise to read, write, and maintain, and raw HTML may be used inline wherever a topic requires custom layout.
- Mustache (
{{ }}) provides variables, sections, loops, conditionals, and partials. - A single
manifest.yamldefines the template metadata and the table of contents.
What it produces
Section titled “What it produces”From one set of templates, a help build can emit any combination of six output formats:
| Format | What it is |
|---|---|
| CHM (Microsoft Help 1) | The classic compiled HTML Help format. |
| Microsoft Help Viewer (MSHC) | Packaged help for the Visual Studio Help Viewer. |
| Markdown | Clean GitHub-Flavored Markdown files for hosting on GitHub, GitLab, or any Markdown-native platform. |
| Semantic HTML | Chrome-free HTML with stable class names, for integration into another web site or toolchain. |
| MadCap Flare HTML | Content prepared for import into a MadCap Flare project. |
| Starlight website (Astro Starlight) | A complete, ready-to-deploy documentation site with search, responsive layout, dark/light mode, and syntax highlighting. |
The formats to build are selected in the help project settings. See Output Formats for details.
All three driver flavors are supported: IVI-COM, IVI-C, and IVI.NET.
How a template is organized
Section titled “How a template is organized”A Markdown template is a folder containing:
manifest.yaml Template metadata, page header/footer, table of contents, layout maplayouts/ Templates for each API entity (method, property, class, enum, …)conceptual/ Hand-authored topics (getting started, overviews, etc.)styles/ CSS for the CHM/Help Viewer output (base.css)assets/ Custom images and other static files referenced from topicsLayouts for entity types that have custom fields live in their own folder
(layouts/method/method.md plus sibling custom-field files like layouts/method/remarks.md);
simpler entity types are a single file (layouts/enum/enum.md).
Topics in this section
Section titled “Topics in this section”- The Template Manifest — the
manifest.yamlfile: metadata, header/footer, styles, and the table of contents. - Layout Templates — how each API page is generated, the data available to templates, and page frontmatter.
- Mustache Template Syntax — the Mustache features Nimbus supports and how it uses them.
- Conceptual Topics and the Table of Contents — authoring conceptual topics and structuring the TOC, including conditional content.
- Custom Fields — injecting authored Remarks, Units, and other custom content into generated pages.
- Linking to API Topics — cross-referencing a generated API topic from authored content with a link that survives renames.
- Output Formats — the six formats and how to select them.
- The Starlight Web Site — generating, previewing, branding, and deploying the static documentation website.
- Sharing Templates Across Projects — reusing a customized template across drivers.