CHM and HTML templates can define template variables in the template.info file. Those variables will be presented in a user-friendly way in the documentation generation dialog and will be saved within the project file. The template can request for user-defined values and act upon them to customize itself based on user input. Possible template variables usages include:

  • Making a section optional. This is done in the default CHM and HTML templates with the breadcrumbs line which can be hidden from generated documentation
  • Customizing the documentation appearance. In the HTML template, it is possible to specify a base color, an icon set, default tree expansion status...
  • Provide localized texts. The default HTML template defines the captions for the "Index", "Search" and "Content" tabs as variables so that it is possible to translate them from within HelpNDoc

Defining template variables

Template variables are defined as sections in the template.info file. Those sections' name must begin with the var_ keyword followed by a unique variable identifier. Let's consider the following sample variable section:

[var_BaseColor]
name=Base color
kind=color
default=#EFEFEF
description=Customize the documentation's base color.

This defines a new variable with the following information:

  • Identifier is BaseColor
  • Name is Base color
  • Kind is color
  • Default value is #EFEFEF
  • Description is Customize the documentation's base color.

This will be displayed in the HelpNDoc template settings dialog as follows:

Variables section attributes

The following attributes should be defined in a variable sections:

Attribute

Description

Remarks

name

Name of the variable

Will be displayed to identify the variable in the settings dialog

kind

Kind of variable

Can be bool, color, enum, int, libitem, memo, string. See kinds of variables

default

Choose between multiple values

Default value for this variable if not set in HelpNDoc

values

Possible values for this variable

Only for enum variables, using the pipe character as a separator. Example: "blue|red"

description

Explanation for this variable

Will be displayed to explain the purpose of this variable

Kinds of variables

A variable can be set as one of the following kinds depending on its purpose:

Kind

Description

Remarks

bool

Conditional Yes/No value

Often used for a conditional section which will be displayed or not based on its value

color

Standard color value

Can be used to define the color of a specific element

enum

Choose between multiple values

Use the "values" attribute to specify the possible values. Example: "values=chm|folder|vista"

int

Integer value


libitem

Select a library item

Gives the ability to select an item from the library

memo

Memo value


string

Character, word or sentences


Setting-up template variables

Variables are set-up from within HelpNDoc's document generation dialog. CHM and HTML templates provide a "Customize" link which show the template customization dialog. This dialog lists all the variables for this template, and provides a way to customize them. Customized variable values will be saved with the current project.

Requesting template variables

To request the value of a template variable from within the template itself, use the HndGeneratorInfo.GetCustomSettingValue method specifying the variable identifier. As an example, the BaseColor value will be requested as follows:

HndGeneratorInfo.GetCustomSettingValue('BaseColor');