Skip to content

Conceptual Topics and the Table of Contents

Beyond the auto-generated API reference, a help template includes conceptual topics — hand-authored pages such as Getting Started guides, overviews, and driver-specific narrative. These live under the template’s conceptual/ folder, and the manifest’s toc block arranges them (along with the generated reference) into the help table of contents.

A conceptual topic is a Markdown file. It can use Mustache to pull in driver values (e.g. {{driver.name}}) and may include YAML frontmatter to provide its own help metadata:

---
title: "Initializing the {{driver.name}} Driver"
index-keywords:
- "initialization"
- "Initialize method"
---
This topic explains how to initialize the {{driver.name}} driver...

For conceptual topics, the frontmatter title, index-keywords, and f1-keywords are the only source of those values — unlike API pages, there is no driver-model entity to derive them from. The pipeline reads this frontmatter and carries the keywords into the CHM/Help Viewer output.

To link from a conceptual topic to a generated API topic, use a cross-reference — see Linking to API Topics.

The toc block has a root (the landing page) and a tree of children. Each node is one of:

Node keyMeaning
resourceA Markdown topic file to include.
titleAn explicit node title (for a grouping node, or to title auto-generated content).
contentAuto-generated content produced from the driver model.
conditionInclude this node only when the condition is met (see below).
outputOverride the output file name.
childrenNested nodes.
toc:
root: layouts/driver.md
children:
- resource: conceptual/getting-started/getting-started.md
children:
- resource: conceptual/getting-started/installation.md
- resource: conceptual/ivinet-driver-reference.md
children:
- title: Driver Hierarchy
content: IviNetHierarchy
- title: Driver Interfaces
content: IviNetFlat
- title: Instrument Command Reference
content: IviNetCommandReference

A node with a content value is generated from the driver model rather than from a file. The default IVI.NET template uses, for example, IviNetHierarchy (the interface hierarchy), IviNetFlat (a flat interface listing), and IviNetCommandReference (the instrument command reference). The IVI-COM and IVI-C templates have equivalent content types.

Add a condition to a node to include it only when the driver meets that condition. This lets a single template serve drivers with different capabilities. When two variants must produce the same output file (so the rest of the TOC links resolve identically), give them the same output:

- resource: conceptual/getting-started/ivi-compliance.md
condition: NotNoClass
- resource: conceptual/getting-started/ivi-compliance-no-class.md
condition: NoClass
output: ivi-compliance.html
ConditionTrue when…
RepCap / NotRepCapThe driver has / does not have repeated capabilities.
NoClass / NotNoClassThe driver has no / has at least one IVI instrument class.
Lxi / NotLxiThe driver is / is not LXI-conformant.
LxiClockSynchronization, LxiEventLogs, LxiEventMessaging, LxiTimestampedData, LxiWiredTriggerBusThe driver declares the corresponding LXI capability.
IviCounter, IviDCPwr, IviDigitizer, IviDmm, IviDownconverter, IviFgen, IviPwrMeter, IviRFSigGen, IviScope, IviSpecAn, IviSwtch, IviUpconverterThe driver implements that IVI instrument class.
HasIviCThe driver has an associated IVI-C driver (dual-driver IVI-COM templates).
IviCCallbackFunctionsThe associated IVI-C driver defines callback functions.