HelpNDoc User Manual
HelpNDoc User Manual
Table of contents
Introduction .........................................................................................................14
2 / 283
HelpNDoc User Manual
3 / 283
HelpNDoc User Manual
4 / 283
HelpNDoc User Manual
5 / 283
HelpNDoc User Manual
Call an API to display the current date time using build actions ................ 134
Store last generation date and time using build actions ........................... 136
6 / 283
HelpNDoc User Manual
Variables ...........................................................................................160
7 / 283
HelpNDoc User Manual
Legacy command line syntax for 5.3 and older ............................................ 191
8 / 283
HelpNDoc User Manual
9 / 283
HelpNDoc User Manual
Check that the floating license server is listening to incoming connections 264
Installing the Microsoft HTML Help Compiler displays a warning message? ... 273
The CHM viewer indicates that the page cannot be displayed ...................... 273
CHM content is not displayed after Internet Explorer update ........................ 274
10 / 283
HelpNDoc User Manual
Despite modifying the navigation pane's width the CHM file is not updated .. 274
The search feature is not working in the CHM documentation ...................... 275
Google Chrome shows an error when searching HTML documentation .......... 275
Missing files when generating a CHM file in the same directory as HTML ...... 276
Adobe Reader won't print with "drawing error" message .............................. 279
Table of contents page numbers are wrong in Word documents ................... 279
Qt Help ..........................................................................................................280
Modifications made to a Qt help file are not updated in assistant.exe ........... 280
What kind of payment devises and currencies do you accept? ...................... 281
11 / 283
HelpNDoc User Manual
12 / 283
HelpNDoc User Manual
Welcome to HelpNDoc
HelpNDoc is an easy to use yet powerful and intuitive help authoring environment which
provides a clear and efficient user interface to build the most amazing CHM help files, responsive
WEB based documentation, PDF and Word documents, ePub and Kindle eBooks, Qt Help files
as well as Markdown files from a single source without worrying about the inner working of help
file generation.
This help documentation is designed so you can quickly learn HelpNDoc as a new user or enhance
your knowledge as a regular user:
· Introduction
· Writing documentation
· Publishing documentation
· Advanced usages
New to HelpNDoc
· Read the Introduction section to know more about HelpNDoc, its different editions and
system requirements.
· Follow the Quick Start Guides to familiarize yourself with the processes of creating and
generating your documentations.
· Run through the Quick Start Guides to familiarize yourself with the new version.
13 / 283
HelpNDoc User Manual
Introduction
· About HelpNDoc
· System requirements
· Getting help
· HelpNDoc editions
About HelpNDoc
HelpNDoc is an easy to use yet powerful and intuitive help authoring environment.
HelpNDoc provides a clear and efficient user interface to build the most amazing CHM help files,
WEB based documentation, PDF and Word documents, ePub and Kindle eBooks, Qt Help files as
well as Markdown files from a single source without worrying about the inner working of help file
generation. You just have to enter or import your documentation in the built-in word processor
and hit the "Compile" button to obtain a fully functional help file which looks exactly as you
designed it.
Forget about bloated user interfaces and incomprehensible tools. HelpNDoc has been engineered
to provide the most advanced functionalities in their simplest form: creating and maintaining
HTML help files, Word and PDF documentation is usually a painful process but thanks to
HelpNDoc you may surprise yourself enjoying it!
You know how to use your favorite word processor, so you already know how to use HelpNDoc:
it's that easy! Add to that many powerful features such as live spell checking in a fully WYSIWYG
(What You See Is What You Get) environment and you'll begin to imagine how fast and easy it will
be for you to create your next help file and how professional it will look like.
System requirements
· Windows 10 or Windows 11
· 512MB of RAM
14 / 283
HelpNDoc User Manual
Getting help
This help file can either be viewed on-line or off-line when installed with HelpNDoc. You can obtain
the latest version as well as other formats of this help file on line at
https://www.helpndoc.com/online-help
Off-line access
The off-line help file is part of the HelpNDoc installation. To launch it, either press the F1 key or
click the help button at the top right of HelpNDoc's main windows.
On-line access
To access and view the most recent HelpNDoc's help file on-line, launch a web browser to the
following URL: https://www.helpndoc.com/documentation/html/index.html
15 / 283
HelpNDoc User Manual
· HelpNDoc Ultimate Edition: Fully functional licensed edition, which can export banner-free
CHM, HTML, Word, PDF documentation, ePub and Kindle eBooks, Qt Help files and Markdown
files. Includes all features;
· HelpNDoc Professional Edition: Licensed edition which can export banner-free CHM, HTML,
Word, PDF documentation, ePub and Kindle eBooks, Qt Help files and Markdown files. Some
features missing;
· HelpNDoc Standard Edition: Licensed edition, which can export banner-free CHM and HTML
documentation only. Some features missing;
· HelpNDoc Personal Edition: This edition is completely free for personal use only and adds a
small banner at the bottom of all the generated documentation formats. Some features
missing;
16 / 283
HelpNDoc User Manual
· Exports to all the formats handled by HelpNDoc with a small banner at the bottom of the
generated documents;
HelpNDoc Licenses
For commercial use of HelpNDoc, it is possible to choose between:
· A named (per-seat) license: this license can only be used by a single named person and
installed on his computer
· A floating license: this license can be shared between multiple people with the limit of one
person using it at the same time per purchased license
See HelpNDoc's Store page to learn more about available editions and licenses.
IMPORTANT: THIS SOFTWARE END USER LICENSE AGREEMENT (“EULA”) IS A LEGAL AGREEMENT
BETWEEN YOU AND IBE SOFTWARE. READ IT CAREFULLY BEFORE COMPLETING THE
INSTALLATION PROCESS AND USING THE SOFTWARE. IT PROVIDES A LICENSE TO USE THE
SOFTWARE AND CONTAINS WARRANTY INFORMATION AND LIABILITY DISCLAIMERS. BY
INSTALLING AND USING THE SOFTWARE, YOU ARE CONFIRMING YOUR ACCEPTANCE OF THE
SOFTWARE AND AGREEING TO BECOME BOUND BY THE TERMS OF THIS AGREEMENT. IF YOU DO
NOT AGREE TO BE BOUND BY THESE TERMS, THEN SELECT THE "CANCEL" BUTTON. DO NOT
INSTALL THE SOFTWARE AND RETURN THE SOFTWARE TO YOUR PLACE OF PURCHASE FOR A
FULL REFUND.
THIS EULA SHALL APPLY ONLY TO THE SOFTWARE SUPPLIED BY IBE SOFTWARE HEREWITH
REGARDLESS OF WHETHER OTHER SOFTWARE IS REFERRED TO OR DESCRIBED HEREIN.
DEFINITIONS
(a) "HelpNDoc" and "Software" refers to IBE Software's HelpNDoc program, in each case, supplied
by IBE Software herewith, and corresponding documentation, associated media, and online or
17 / 283
HelpNDoc User Manual
electronic documentation.
(c) "Free Version" or "Freeware Version" or "Freeware Edition" or "Personal Edition" means a free
version of the Software for personal use only, so identified, to be used only for non-profit
projects. The Free Version is fully functional, without restrictions of any kind but may contain
messages in the end product stating that they have been created using the Free Version of the
Software.
(d) "Registered Version" means a version which has been bought to IBE Software.
(e) "Educational Version" means a version which has been bought to IBE Software by an
educational institution and may only be provided to students and employees of the institution.
The Educational Version may have limited functionalities and/or usage restrictions.
LIABILITY DISCLAIMER
THE HELPNDOC PROGRAM IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED
OR IMPLIED. YOU USE IT AT YOUR OWN RISK. NEITHER THE AUTHORS NOR IBE SOFTWARE WILL
BE LIABLE FOR DATA LOSS, DAMAGES AND LOSS OF PROFITS OR ANY OTHER KIND OF LOSS
WHILE USING OR MISUSING THIS SOFTWARE.
RESTRICTIONS
You may not use, copy, emulate, clone, rent, lease, sell, modify, decompile, disassemble, otherwise
reverse engineer, or transfer any version of the Software, or any subset of it, except as provided
for in this agreement. Any such unauthorized use shall result in immediate and automatic
termination of this license and may result in criminal and/or civil prosecution.
(b) The HelpNDoc Free version may be freely distributed, with exceptions noted below, provided
the distribution package is not modified in ANY WAY.
18 / 283
HelpNDoc User Manual
(c) The HelpNDoc Free version may not be distributed inside of any other software package
without written permission of IBE Software.
(d) The HelpNDoc Free version allows the user to publish its work according to the license
agreement, but nor IBE Software nor any member of the company can be held liable for the
content of the publication.
(b) Multiple-User (floating) Licenses: You may install and use the enclosed Software on a server to
design, develop, and test the Software's output. Use of the Software is limited by the number of
floating licenses owned. Only one user per floating license owned may use the software at the
same time.
(c) The HelpNDoc Registered version allows the registered user to publish its work according to
the license agreement, but nor IBE Software nor any member of the company can be held liable
for the content of the publication.
(d) The HelpNDoc Registered version guaranties to the registered user free updates for a whole
version cycle and for at least 12 (twelve) months.
(b) The Software may be used on a single computer solely for individual and personal "technology
enthusiast" purposes, personal education and study (including educational-related research), or
administrative use in support of the educational institution. It may not be used for any commercial
or business purpose, whether "for profit" or "not for profit." Any work performed or produced as
a result of use of this Software cannot be performed or produced for the benefit of other parties
for a fee, compensation or any other reimbursement or remuneration.
19 / 283
HelpNDoc User Manual
(c) The HelpNDoc Educational version allows the registered user to publish its work according to
the license agreement, but nor IBE Software nor any member of the company can be held liable
for the content of the publication.
(d) The HelpNDoc Educational version guaranties to the registered user free updates for a whole
version cycle and for at least 12 (twelve) months.
TERMS
This license is effective until terminated. You may terminate it by destroying the program, the
documentation and copies thereof. This license will also terminate if you fail to comply with any
terms or conditions of this agreement. You agree upon such termination to destroy all copies of
the program and of the documentation, or return them to the author.
You can check the detailed release history in HelpNDoc's what's new page.
Built-in AI Assistant
Leverage OpenAI's API using HelpNDoc's built-in ChatGPT-like AI Assistant for content creation,
revision, clarification, explanation, summarization, translation, and more... See: Using the AI
Assistant
20 / 283
HelpNDoc User Manual
· Added a project starter kit editor which can be used to rapidly create new project's starter kits
· New GitHub Wiki Markdown template: generate GitHub-compatible Wikis from HelpNDoc
projects
· Improved HTML library item's user interface with ability to load and save content to the hard
drive
· Projects styles can be imported from an existing DocX document or HTML web page
· Redesigned script editor's user interface with better logging support; ability to quickly locate
info, warning, errors and more...
21 / 283
HelpNDoc User Manual
HelpNDoc can be purchased worldwide, either on-line or off-line, and paid using various payment
methods (Credit Cards, Check, PayPal…) and currencies (US Dollars, Euros…). As soon as the
transaction is complete, you will receive instructions on how to obtain the full version of
HelpNDoc.
To get more information on the order process and purchase HelpNDoc, launch your web-browser
to the HelpNDoc store page at https://www.helpndoc.com/store
1. File menu
· Manage projects: create new, open existing, save...
22 / 283
HelpNDoc User Manual
3. Ribbon tool-bar
· Contains all actions available within HelpNDoc
4. Table of contents
· Define and manage the topics hierarchy for the currently opened project
· Root topic is the project topic, used to view and modify project settings
5. Topic editor
· Used to edit the selected topic's content
6. Library
· Define and manage the multimedia and reusable items such as images, movies, snippets,
included documents...
· Add items to topics
7. Keywords editor
· Define and manage the keywords hierarchy for the currently opened project
· Associate keywords with individual topics
8. Topic properties
· Define topic's system properties
9. Status bar
· Get stats about your documentation
23 / 283
HelpNDoc User Manual
File menu
The HelpNDoc's file menu can be displayed by clicking the "File" button at the top left of the main
window. It is used to:
· Import a project in another format such as CHM, HLP, HTML, Word, ePub files
Ribbon tabs
24 / 283
HelpNDoc User Manual
Presentation
The HelpNDoc's ribbon tabs are located at the top of the main window and provide all the
features available within HelpNDoc in a categorized fashion. The ribbon tabs parts are:
1. The main tabs - They are always visible and are used for the most important actions
2. The tabs groups - When a tab is selected, it will display actions grouped by similar purpose
3. Contextual tabs - Those tabs are only shown when needed. For example, the "Picture Tools"
tab is only visible when a picture is selected
· Transform text
· Syntax highlighter
25 / 283
HelpNDoc User Manual
· Template Editor
· Launch the integrated web server
Styles editor
The style editor is where style are created, customized and organized. The styles editor can be
accessed via the arrow at the bottom right part of the "Styles" group in the "Write" ribbon tab.
Each style added in the style editor can be used throughout the project to format texts,
paragraphs and links. Styles inherit from their parents any properties they do not explicitly define.
1. The style hierarchy shows a list of all the existing styles and their parents. A style can be selected
to be edited. Styles can be added, deleted, imported and exported via the buttons bellow;
26 / 283
HelpNDoc User Manual
o Quick access - If checked, the style will appear in the list in the "Styles" group of the
"Write" ribbon tab;
3. Use the "Edit" links to access to customization dialogs for font, hyperlink, paragraph, border
and background. Use the "Reset" button to reset to default.
· The "Find and replace" button in the "Editing" group of HelpNDoc's "Write" ribbon tab
27 / 283
HelpNDoc User Manual
How to use it
Use the find and replace window to look for content (text, regular expression or library items)
within the current topic or entire project and optionally replace found occurrences with another
text or library item.
1. Find scope - Define the scope of the search options. Only in the current document or in the
entire project;
2. Find text - Content to search: simple text, regular expression, or library item;
3. Replace with - Specify the text or library item to use as a replacement for the found content;
4. Options - Specify the search options. Match case will find the specified text with the exact
same case as it has been written. Match whole word will only search for a complete word.
Search forward will specify whether to search forward (from top to bottom) or backward (from
bottom to top)
28 / 283
HelpNDoc User Manual
Options window
HelpNDoc's options can be customized by using the "File" menu then "Options" button. This
shows the options window with various sections.
General Settings
· Application language: choose HelpNDoc's user interface language. This requires a restart of
29 / 283
HelpNDoc User Manual
HelpNDoc.
· Load and display RSS news: keep up-to-date with latest news about HelpNDoc as the RSS
feed will be displayed in HelpNDoc's welcome page. This may trigger a Windows firewall
warning as this requires Internet Access.
· Show ruler: displays or hide a ruler at the top of the topic editor for greater control over
paragraph indentation, tabs and table cell sizes.
· Show the navigation bar with breadcrumb editor: displays or hide the navigation bar at the
top of the topic editor.
· Automatically hide scrollbars: only show the scroll bars when the mouse is over the control to
simplify the UI.
· Smaller library items: when enabled, library items are displayed smaller in the topic editor
· Default HTTP server port: Specify the default settings for HelpNDoc's integrated HTTP server.
Importers
· Use built-in CHM decompiler: Built-in CHM decompiler is faster, uses less memory and better
imports CHM help files. If some help files are problematic, un-check it to use the Microsoft
HTML Help Workshop decompiler instead
Compilers
· To generate some documentation formats, HelpNDoc requires external compilers. This section
can be used to setup their path and download them. See also: System requirements
Custom paths
Use this section to define the default custom path HelpNDoc will use.
· Default output path: define the default path where project output will be generated when no
path is defined. Default is "My Documents\HelpNDoc\Output".
· Backup path: define the path where project backups are stored. Default is "My
Documents\HelpNDoc\Backup".
· Dictionaries path: define the path where custom dictionaries are stored. Default is "My
Documents\HelpNDoc\Dictionaries".
· Projects path: define the path where projects are opened from or saved to the first time.
Default is "My Documents\HelpNDoc\Projects".
· Scripts path: define the path where custom scripts are stored. Default is "My
Documents\HelpNDoc\Scripts".
· Styles path: define the path where the default project styles is placed. SeeCustomize default
project styles to learn more. Default is "My Documents\HelpNDoc\Styles".
30 / 283
HelpNDoc User Manual
· Syntax highlighters path: define the path where customized syntax highlighters are stored.
Default is "My Documents\HelpNDoc\Syntax".
· Templates path: define the path where custom templates are located. Default is "My
Documents\HelpNDoc\Templates".
Keyboard shortcuts
Some keyboard shortcuts can be customized. Select a keyboard shortcut in the list and:
Script Editor
Customize the look and feel of the script editor used to interact with HelpNDoc API and customize
templates:
Setting Description
Fonts / Editor Specify the font name and size of the the editor
Gutter / Show line numbers Specify if line numbers are shown in the gutter
Gutter / Use gutter font If checked, a specific gutter font can be used. If
31 / 283
HelpNDoc User Manual
Spacing / Extra line spacing Add extra pixels to each line for better clarity
32 / 283
HelpNDoc User Manual
Options / Trim trailing spaces Remove any spaces and tabs at the end of lines
Syntax highlighter
Customize default settings for the automatic syntax highlighter:
Setting Description
Font size The font size to use for the highlighter content
AI Assistant
HelpNDoc's AI Assistant related settings:
Setting Description
33 / 283
HelpNDoc User Manual
Reset
Use the "Reset" button to reset parts or all options. Note: some reset actions require a restart of
HelpNDoc. Available reset options are:
· Reset History: Clear the history of recently opened projects, folders and HTTP server's served
folders;
· Reset Forms, Panels and Toolbars: Clear save forms, panels and toolbars size and position and
toolbars customization;
· Reset General Settings: Reset the "General Settings" tab to its default values;
· Reset Importers: Reset the "Importers" tab to its default values;
· Reset Custom Paths: Reset the "Custom Paths" tab to its default values;
· Reset Keyboard Shortcuts: Reset all keyboard shortcuts to their default values;
· Reset Everything: Reset all HelpNDoc settings and options to their default values;
34 / 283
HelpNDoc User Manual
· Launching HelpNDoc
· Adding topics
· Generating documentation
Launching HelpNDoc
· Double click the shortcut in the desktop or single click it in the Windows start menu
Adding topics
· Click the "Home" ribbon tab item if it is not already selected
· The new topic's title is made editable, enter a custom title if needed and press enter
35 / 283
HelpNDoc User Manual
Generating documentation
· Click the "Home" ribbon tab item if it is not already selected
Writing documentation
· Project options
· Managing the table of contents
36 / 283
HelpNDoc User Manual
To create a new project, use the "File" menu and click the "New project" button. This will open the
new project wizard dialog. The various parts of this dialog are:
3. Start a new empty project (without any entries in the table of contents) or run thenew project
wizard
37 / 283
HelpNDoc User Manual
The new project wizard can be accessed from the Create a new project dialog and can be used to
quickly define an initial table of contents:
3. Toolbar: Include actions to increase or decrease the current line's indentation and to import the
table of contents from another project
· Use the "File" menu, click the "Open project" button and choose the existing project to open
· Use the "File" menu, click the "Recent projects" tab and choose a project which has been
opened recently
38 / 283
HelpNDoc User Manual
Using the "File" menu, then "Import" action, HelpNDoc can import various existing documentation
formats, including:
· HTML web pages. This format can be split into multiple topics based on heading level or font
size;
· Markdown files. This format can be split into multiple topics based on heading level;
· Text files;
· Word documents including DocX and RTF file formats. These formats can be split into multiple
topics based on heading level or font size;
· Folders that can contain one or multiple of the previously mentioned formats. Each file will be
imported into its own topics. See: Import folders
Additionally, for some sources (such as HelpNDoc projects, the CHM help format or HHP
projects), it is possible to only import the table of contents into a new project:
2. In the new project wizard dialog, click the "import from existing project" link to import the
table of contents of the specified file.
39 / 283
HelpNDoc User Manual
Some documentation formats such as HTML, Markdown and Word documents (DocX and RTF
files) can be split into multiple topics. When selecting one of the supported file in the "File" /
"Import" dialog, the "Try to split document into multiple topics" checkbox will be enabled. When
checked, it is possible to split documents by:
· Font size - Use text with the specified font size as topic caption and place subsequent content
into the topic;
· Outline level - Use text with the specified outline level (heading level) as topic caption and
place subsequent content into the topic;
Note: Only checked levels will be imported as topics into HelpNDoc. Other levels will be placed as
content within higher level topics.
40 / 283
HelpNDoc User Manual
Import folders
When importing a folder, HelpNDoc will list all known types of files in the specified folder. Click
the "Import" button to import all files with a check mark.
Available actions
Options
· Include sub-folders: Import files which are located in sub-folders of the selected folder
· Recreate hierarchy: Recreate the folder hierarchy in the project's table of contents
Refresh
The "Refresh" button forces checks the selected folder again and updates the list of files to import,
based on the selected options.
Check
Quickly check or un-check all files in the list.
When importing an external document, or when using the scripting API to control the topic editor,
41 / 283
HelpNDoc User Manual
Scheme Description
hnd-topic://[TOPIC_ID] Link to a specific topic using its internal ID. Check the API
documentation to learn how to get a topic's internal ID.
Ex: hnd-topic://0E16C6CF7A5D42F580EC89876ED08435
Project options
Each project is saved with its own set of configuration options, which include all the project
settings such as copyright, author, and language information.
· Selecting the "Home" ribbon tab and clicking the "Project options" button in the "Project"
group
· Or selecting the project topic in the table of contents, which is the root of all topics and the
very first on in the list
Project settings
Various information about the project such as the project title, author information... Some of these
options may be exported to the final documentation and overridden for each build. See also
Publishing documentation
Language settings
Specify the project's language and character set. See also Date and time format settings
42 / 283
HelpNDoc User Manual
Automated settings
Various settings regarding to automation in HelpNDoc.
· Default properties for new topics: specify the properties to set to a newly created topic,
such as icon, kind, header, footer, status, included in build or visibility
· Always synchronize Help ID with topic caption : when this option is checked, a topic's Help
ID will be automatically updated when its caption is changed. E.g. changing the topic's caption
to "Hello World" will update its Help ID to "HelloWorld". See also Change topic properties
o Synchronize now... will replace every Help ID based on the current topic's caption
· Compress un-compressed included library pictures: when the library contains
uncompressed pictures (E.g. Bitmaps BMP files), they will automatically to a non-destructive
PNG format in the HND project file to save disk and memory space
Some system variables available in an HelpNDoc project can output current date and time
information. The following variables are available and will be replaced by the current date and time
value at generation time:
43 / 283
HelpNDoc User Manual
To show the date and time customization dialog: from the "Home" ribbon tab, click "Project
options" then "Customize" next to "Date / Time format" in the "Language settings". The following
table explains the various specifiers which can be used when formatting date and time settings:
Specifier Displays
Displays the date using the format given by Windows' short date
ddddd
format
Displays the date using the format given by Windows' long date
dddddd
format
44 / 283
HelpNDoc User Manual
45 / 283
HelpNDoc User Manual
Displays the time using the format given by Windows' short time
t
format
Displays the time using the format given by Windows' long time
tt
format
It is possible to reset to the default format for the project's current language by using the "Reset"
button. Warning: this will discard any previously entered custom date / time format.
The table of contents editor is used to create, manage and organize a hierarchical structure of the
documentation projects. Learn more about managing the table of contents:
· Create topics
46 / 283
HelpNDoc User Manual
· Delete topics
· Rename topics
· Move topics
· Change topic properties
47 / 283
HelpNDoc User Manual
Filtering topics
The table of contents toolbar includes a Filter popup menu to filter topics based on various
properties such as their visibility or status. The table of contents panel's title is changed to indicate
when a filter is currently applied.
Create topics
Creating a new topic in an opened project can be achieved via two ways:
· Select the "Home" ribbon tab then click the upper part of the "Add topic" button
· Right click on any existing topic in the table of contents (including the project topic) and click
the left part of the "Add topic" menu item
48 / 283
HelpNDoc User Manual
By default, a new topic is added at the bottom of the table of contents and becomes the last topic
overall. HelpNDoc can optionally create a new topic at the following positions:
These actions are available from a sub-menu which can be accessed via the following ways:
· Select the "Home" ribbon tab then click the arrow on the bottom part of the "Add topic"
button
· Right click on any existing topic in the table of contents (including the project topic) and hover
the arrow on the right part of the "Add topic" menu item
When a new topic is created, its title will become selected and editable for easier modification: it
becomes faster to create multiple topics and rename them.
Delete topics
· Select the "Home" ribbon tab then click the "Delete topic" button after a topic has been
selected in the table of contents
· Right click on any existing topic in the table of contents to open the topic management menu
then choose "Delete topic"
A word of caution: Deleting a topic containing children will also delete its children. When a topic
is deleted, its associated content is also deleted. Library items used by the topics and keywords
linked with the topic are not deleted.
Rename topics
The topic's title as displayed in the table of contents can be changed using one of the following
ways:
49 / 283
HelpNDoc User Manual
contents" section
Move topics
Topics are managed as a tree-structure from the table of contents. A topic can contain any number
of children topics which itself can contain any number of children topics and so on. Also topics are
not sorted in any way in the table of contents so they can freely be positioned. To move a topic in
the table of contents:
· Select the topic then from the "Home" ribbon tab, choose one of the move topic action: move
up, move down, move left, move right
· Right click on the topic to move then from "Move topic" menu item, choose one of the action
· Drag and drop the topic to the desired position by clicking and holding it, moving the mouse,
then release the mouse button where needed
Note: The project topic can't be move. It is always the root of all the topics available in the project.
Topic icon
The topic icon is displayed before the topic title in the table of contents. By default, topics
containing children will be given a book icon, whereas topic without child will be given a note icon.
To change the icon for each individual topic:
· Select the "Home" ribbon tab, then click the "Topic properties" item and choose the new topic
icon
· Right click on any existing topic in the table of contents to open the topic management menu
then choose the new topic icon
See the How to select a new icon for a topic in HelpNDoc step-by-step guide.
Topic kind
Each individual topic in HelpNDoc can be either:
· A normal topic - This is a standard topic where new content can be entered in the topic editor
· An empty topic - No content will be entered in that topic and will make it a chapter topic
50 / 283
HelpNDoc User Manual
· An URL topic - This topic will show an external URL instead of the content
· An external included file - The file specified will be included at compilation time in the content
of the topic
· Select the "Home" ribbon tab, then click the "Topic properties" then "Topic kind" item and
choose the topic kind
· Right click on any existing topic in the table of contents to open the topic management menu
then go to the "Topic kind" item to choose the topic kind
· At the top of the topic editor, click the "Change..." link to choose the topic kind
Description
This field can be used to describe or summarize the current topic. It is used by the default HTML
template to generate the HTML description tag for better Search Engine Optimization (SEO).
Help ID
This is one of the most important part of a topic when using the generated documentation. The
help ID is a unique alpha-numeric identifier used to locate the topic. This ID will be used to name
individual HTML files in the generated HTML documentation, and can be used to open that specific
topics from any programming language in the CHM documentation.
· Select the "Home" ribbon tab, then click the "Topic properties" item and enter the new Help ID
· Right click on any existing topic in the table of contents to open the topic management menu
then enter the new Help ID
Note: If the "Always synchronize Help ID with topic caption" project option is checked, HelpNDoc
will automatically replace a custom Help ID when the topic's caption is changed.
Note: The Help ID can only contain alpha-numeric and "-" characters. HelpNDoc will ensure this
rule by automatically removing any unwanted characters (such as spaces) from the input.
See the How to manage your topic identifiers in HelpNDoc step-by-step guide.
51 / 283
HelpNDoc User Manual
Help Context
The help context is a numeric value which is unique to each topic. It can be used to uniquely
identify a topic, or open a specific CHM topic using Windows APIs.
· Select the "Home" ribbon tab, then click the "Topic properties" item and enter the new Help
context
· Right click on any existing topic in the table of contents to open the topic management menu
then enter the new Help context
See the How to manage your topic identifiers in HelpNDoc step-by-step guide.
Topic Header
The topic header is a simple text which is usually displayed as the title of the topic. By default,
HelpNDoc will use the topic title as the header, but it can be configured to either:
· Display a custom text - A custom text can be specified as the header of that topic.
· Select the "Home" ribbon tab, then click the "Topic properties" then "Topic header" item and
choose the topic header
· Right click on any existing topic in the table of contents to open the topic management menu
then go to the "Topic header" item to choose the topic header
· At the top of the topic editor, click the topic header link to choose the topic header
See the How to define a header for a topic in HelpNDoc step-by-step guide.
Topic Footer
The topic footer is a simple text which is usually displayed at the bottom of the topic. By default,
HelpNDoc will use the project copyright as the footer, but it can be configured to either:
· Display a custom text - A custom text can be specified as the footer of that topic.
· Select the "Home" ribbon tab, then click the "Topic properties" then "Topic footer" item and
52 / 283
HelpNDoc User Manual
· Right click on any existing topic in the table of contents to open the topic management menu
then go to the "Topic footer" item to choose the topic footer
· At the top of the topic editor, click the topic footer link to choose the topic footer
See the How to define a footer for a topic in HelpNDoc step-by-step guide.
Custom Properties
Each topic can have a set of custom properties. The "Topic properties" panel can be used to
manage them: add, rename, delete them as well as edit their values. Custom properties can have
any name and value and can be used by templates or scripts for additional custom processing.
The topic editor is where each topic's content and properties are defined.
Topic kind
Kinds of topics
A topic can be of different kind. When first created in HelpNDoc, the topic is a normal topic with
content. The different topic kinds are:
· Normal topic - This is the default topic kind where text, tables, library items... can be added in
the topic's content
· Empty topic - This is a topic without any content of any kind attached to it
· Show external URL - The topic will show the specified URL when shown in supported
documentation formats
· Include external file - The specified file will be included as the topic's content when the
documentation is generated
· Right-click the topic in the table of contents and choose a new topic kind
· Change the current topic's kind by clicking the "Change" link at the topic of the topic editor
Each topic can have a specific header and footer. By default, the topic header is set to display the
53 / 283
HelpNDoc User Manual
topic's title as defined in the table of contents and the topic footer is set to display the project
copyright. This can be changed to:
· Hide the header / footer - Do not display anything for that topic
· Display custom header / footer - Specify the text to use for that header / footer
· Click in the header and footer links at the top of the topic editor and choose the new option
· Right click on the topic and change its header and footer options.
Font properties
The most often used font properties are easily accessible from HelpNDoc's "Write" ribbon tab.
These include: font name and size control, styling options (e.g. bold, italic, underline...), and color
options.
54 / 283
HelpNDoc User Manual
For greater control over font properties, the "Font" window can be accessed either:
· From the "Write" ribbon tab, click the arrow at the bottom-right of the "Font" group
· Right-click in the topic editor to show the popup menu, then click "Font..."
Font window
· A "Font" tab where common font settings can be defined, such as font name, size, color,
background color, style and effects;
· A "Layout" tab where advanced spacing, offset and scaling settings can be defined
Paragraph properties
The most used paragraph properties are easily accessible from HelpNDoc's "Write" ribbon tab.
55 / 283
HelpNDoc User Manual
From HelpNDoc's "Write" ribbon tab, in the "Paragraph" group, click the "Paragraph Borders and
Background" button to access borders and background settings for the currently selected
paragraph.
For greater control over paragraph properties, the "Paragraph" window can be accessed either:
· From the "Write" ribbon tab, click the arrow at the bottom-right of the "Paragraph" group
· Right-click in the topic editor to show the popup menu, then click "Paragraph..."
56 / 283
HelpNDoc User Manual
Paragraph window
Tabs
Define tab stop position, alignments and leader characters for that paragraph.
Advanced
· Outline level: Define the heading level of that paragraph (e.g. heading 1, heading 2...). This is
used to define the topic's inline table of contents.
· Widow/orphan control: Prevents page breaks after the first line and before the last line of the
paragraph
Styles are an important part of HelpNDoc as they provide a way to keep an uniform look
throughout the documentation's topics. A style is applied to a piece of text which then becomes
linked to it: when the style changes, the format of the text changes too.
HelpNDoc comes with a set of predefined styles. Styles can be added and managed using the
styles editor.
57 / 283
HelpNDoc User Manual
· From the "Write" ribbon tab, choose the style to apply from the "Styles" group and click it
Note: By default, any custom font attribute applied to the selected content won't be overwritten
when a style is applied. To reset custom first attributes before applying a new style:
The text contained in a normal topic with content can contain hyperlinks. Those links will redirect
the reader to the specific element they link to. To create an hyperlink:
· Select the "Insert" tab and click the "Insert / Edit hyperlink" in the "Links" panel (Keyboard
shortcut: CTRL+L)
· An Internet or e-mail address: the Internet page will be shown or a new e-mail will be created
58 / 283
HelpNDoc User Manual
Linking to a specific topic will allow the end-user to navigate to that particular topic by clicking the
link. To create a link to a specific topic:
1. Provide the link text. This field is not enabled if you have already selected the text in the topic
editor
59 / 283
HelpNDoc User Manual
Creating a relative link, or navigation link, will provide a way to link to a topic relative to the current
one. HelpNDoc can create navigation links to:
· Default topic - The topic which has been set as the default one in theproject options
· Parent topic - The parent topic of the topic containing the link
· Previous topic - The topic just before the one containing the link. If "Sibling topic only" is
checked, it will link to the previous topic at the exact same hierarchy level
· Next topic - The topic just after the one containing the link. If "Sibling topic only" is checked, it
will link to the previous topic at the exact same hierarchy level
1. Provide the link text. This field is not enabled if you have already selected the text in the topic
editor
3. For previous and next topics, specify whether to link to a sibling topic or not
60 / 283
HelpNDoc User Manual
1. Provide the link text. This field is not enabled if you have already selected the text in the topic
editor
2. For an Internet link, specify the URL and whether this link should open in a new window or not
3. For an e-mail address, specify the e-mail address and optionally a subject for the e-mail to
send
61 / 283
HelpNDoc User Manual
Link to a file
Based on the end-user Windows configuration and documentation format, an hyperlink to a file
will either:
· Show the file in an external application if the file format is registered to that application
· Provide a download file box to let the user download it locally
1. Provide the link text. This field is not enabled if you have already selected the text in the topic
editor
The help file won't be included with the generated documentation. This means that the help file
must be deployed with the final documentation and placed in the correct folder when installed on
the end-user computer:
· For a non-relative file: the file must be placed in the exact same folder and have the same
name as the one defined in the file path field. Example: c:\doc\myfile.txt
· For a relative file: the file must be placed in a relative folder based on the main documentation
file. Example: the relative path is set to "file\myfile.txt" so the file must be placed in the "file"
sub-folder of the documentation output folder
62 / 283
HelpNDoc User Manual
Link to a counter
Tables are used to either display tabular data or create complex layout in the final documentation.
To create a new table in HelpNDoc, from the "Insert" ribbon tab, click the "Insert table" button in
the "Items" group and either:
· Choose the number of rows by columns to add by clicking the desired table size
· Click the "Insert table" button to specify the size and some properties for the new table
Once a table is present in a topic, clicking it will display the "Table tools, Layout" ribbon tab. This
can be used to create, delete, change properties for the cells and the table.
63 / 283
HelpNDoc User Manual
Pictures are inserted in the library then in the topic editor. This provides a way to use the same
picture multiple times and modify it from the library without the need to find it in the topics. To
insert a picture, either:
· From the "Home" ribbon tab, click the "Add item" button in the "Library" group and choose
"Add picture". Then drag the picture from the library in the topic editor
· From the "Insert" ribbon tab, click the "Insert picture" button then "Insert another picture". This
will add it to the library prior to inserting it in the topic editor
When a picture is clicked in the topic editor, the "Picture tools, format" contextual ribbon tab is
shown to modify the picture's properties. From there, it is possible to:
· Adding the picture's alternative text: this is used in HTML based documentation as a place-
holder text while the picture is being loaded
· Specify the picture's width and height
Image maps can contain one or multiple interactive shapes. A shape can be a rectangle, circle or
polygon and can link to any kind of links handled by HelpNDoc: topics, relative links, URLs, EMails,
or file links. See how to use the image map editor.
Note: Image maps are only compatible with CHM and HTML documentation formats as well as
some ePub readers.
Manage shapes
To create a shape in the image map editor, choose the kind of shapes in the "Create Shapes"
section and draw it over the image.
To select a shape, click on it in the editor, or choose it in the "Shape" list of the "Properties" section.
When one or more shapes are selected, click "Delete" in the "Manage Shapes" section to delete
them.
64 / 283
HelpNDoc User Manual
To update the link of a shape, click the link next the "Link To" in the "Properties" group to use the
hyperlink editor.
The library is a central storage place for media and third-party elements such as:
· Counters - Auto-incrementing fields used to count items such as figures, tables, equations...
· HTML Code - This is raw HTML code which will be exported as-is in the final HTML based
documentation
All those elements are stored within the library and can be re-used in any number of topics
within the current project. Once an item is placed in the topic editor, it is linked to the
corresponding library item and therefore any modification made to the library item will also be
propagated to the all linked items. As an example, changing a picture in the library which has been
placed in hundreds of topics, will automatically update all those topics to display the updated
65 / 283
HelpNDoc User Manual
picture.
· From the "Home" ribbon tab, in the "Library" group, use the "Add item" button;
· From the "Home" ribbon tab, in the "Library" group, use the "Import files" button to import
multiple files at once;
· Drag and drop files from the Windows Explorer on the library to show the "Import files" dialog
and import them;
· Drag and drop files from the Windows Explorer on the topic editor to show the "Import files"
dialog, import them, and place them within that topic.
· Drag and drop the item from the Library panel into the topic editor
· Select the element in the library panel then click the "Insert in topic" button from the "Home"
ribbon bar, in the "Library" group
· Right click the element in the library panel and choose "Insert in topic"
· Click the arrow at the right of the "Insert in topic" button from the "Home" ribbon bar, in the
66 / 283
HelpNDoc User Manual
· Right click the element in the library panel, hover over the "Insert in topic" item, then click
"Insert content in topic"
Note: Deleting a library item from the library will not delete any instance of that item in the
project's topics. This providing a way to review each topic individually and decide if that instance
needs to be deleted or replaced. The project analyzer can be used to quickly spot and fix delete
library items.
The import file dialog presents a quick and easy way to import multiple media elements in the
project's library. It can import images, image maps, documents and videos.
· From the "Home" ribbon tab, in the "Library" group, use the "Import files" button;
· By drag and dropping files from the Windows Explorer on the library;
67 / 283
HelpNDoc User Manual
· By drag and dropping files from the Windows Explorer on the topic editor;
Adding files
To import additional files, either:
· Drag and drop files from the Windows Explorer on the file list;
Managing files
The file list can be used to manage files before they are imported:
· Change the import type from Picture to Image map and vice versa;
· Change the source of the library items for images, documents and movies:
o Include file in project will save the file within the HND project file;
o Link to external file will create a link to that file and only store that link. Use the "Set
external files' paths as relative to the project path" check box to store a relative path
instead of the full path. Note: this check box is grayed if the project hasn't been saved
yet.
Update selection
"Import As" and "Source" columns can be rapidly changed for multiple items by selecting the
desired items in the list, then use the "Update selection" drop down menu to update them.
Folder selection
Select the parent folder to import all the items in the list in that folder. The "Create folder" link can
be used to create a new folder in the library if needed.
Folders are containers for other library items or sub-folders. They are useful for organization
purposes such as:
· Infrequent use of library item: place all system variables in a specific folder and collapse it to
hide them from the list
· Filtering library items: place each kind of library items in its specific folder (e.g. all pictures in
the "pictures" folder...)
68 / 283
HelpNDoc User Manual
· Important library items: create a folder where important library items must never be updated /
deleted by co-workers
· And so on...
Note: A folder library item can't be placed in a topic, only its children library items (which are not
folders) can.
Warning: Deleting a folder will also delete all library items contained in that folder, including sub-
folders. Proceed with care.
Export content
Use the "Export content" button to export every "included" items contained in that folder. Note:
only items included in the project will be exported.
Barcodes and QR codes are extremely useful to produce a machine-readable visualizations: a bar
code reader or smartphone camera can be used to quickly and safely interpret them, making it
easier to share complex data with end-users. HelpNDoc supports the following barcode formats:
Code 11, Code 128, Code 39, Code 39 Extended, Code 93, Code 93 Extended, EAN-8, EAN-13,
Interleaved 2 of 5, MSI, QR Code, UPC-A and UPC-E.
69 / 283
HelpNDoc User Manual
2. Commands
Commands available for the image map library item:
· Update barcode: show the Barcode editor to edit the current content of the barcode
3. Preview
Current content of the barcode
Barcode editor
The Barcode editor can be used to create and modify barcodes in the documentation project.
70 / 283
HelpNDoc User Manual
1. Preview
2. Properties
Choose the type of barcode to create and set its properties:
· Rotation angle: Rotate the visual representation of the barcode 90°, -90° or 180°
Counters are auto-incrementing fields. They can be used to count items such as figures, tables,
equations... throughout the project. Counter instances can have an optional caption and identifier.
Counters have both global properties (such as caption format) and instance properties (such as
caption and unique ID).
71 / 283
HelpNDoc User Manual
2. Format
The final exported counter's value is based on the format specified:
· Caption format: Specify the format of the exported counter if the counter instance's caption is
not empty
· Empty caption format: Specify the format of the exported counter if the counter instance's
caption is empty
72 / 283
HelpNDoc User Manual
format caption
3. Placeholders
Field Description
{r} Counter number as lowercase roman value (e.g. i, ii, iii, iv...)
[R} Counter number as uppercase roman value (e.g. I, II, III, IV...)
73 / 283
HelpNDoc User Manual
2. Instance settings
Settings which are specific to this counter's instance.
Setting Description
74 / 283
HelpNDoc User Manual
3. Global settings
Those settings are shared between all instances as they are applied to the associated library item.
See: Create a counter - overview of the user interface.
A document library item will be included where it has been placed at generation time. It can be
useful in multiple situations:
· The document is managed by someone else without access to the HND project file
· Markdown files;
· DOC and DOCX Word documents. This might require as specific Microsoft Office
Compatibility Pack: see Doc or DocX files can't be imported
75 / 283
HelpNDoc User Manual
2. Customize item
A document can either be stored within the project or linked from an external location based on
the project's requirements. Choosing how it is stored can be decided individually for each item
based on pros and cons for that specific item and / or overall documentation project.
Include File Item file is stored within the project · Item is always · HND project file
76 / 283
HelpNDoc User Manual
External File Item file is stored anywhere on the · HND project file is · Item location
included at generation time. Note: The path to the external updated in the
external file path can be absolute, or file is stored library when the
relative to the HND project file location · Updating the item HND project file
documentation is · Sharing a
built project requires
77 / 283
HelpNDoc User Manual
documentation
· Insert / Replace file: Locate a file on the hard drive or a network location to
· Remove file from project: Remove the content of the file from the project
· Export file: Export the content of the file to the hard drive
External File
· File path: Absolute or relative path of the file to include at generation time
4. Preview
For included files, an icon of the library item is displayed. It is possible to drag and drop a file
from a third party application such as the Windows Explorer into the preview to include it or
replace the existing file.
The dynamic content library item provides a way to produce HTML content using HelpNDoc's
built-in scripting methods and API. Dynamic content placed within topics are interpreted at
generation time to produce content which is then integrated in the final documentation file. It can
be useful in multiple situations:
· Time-sensitive updates, which are only displayed based on the current generation date and
time
· Content formatting, such as converting external JSON or XML files to human-readable tables
· And more...
Note: Even though they are based on HTML and scripts, dynamic content are compatible with
every documentation formats supported by HelpNDoc, including Word and PDF formats.
78 / 283
HelpNDoc User Manual
2. Source
Choose if the content is stored within the project or loaded from an external file at generation time
4. Build output
Once built, any information, warning or error messages produced during the build process are
displayed in the build output log.
79 / 283
HelpNDoc User Manual
<%
var aChildrenTopicList :=
HndTopicsEx.GetTopicDirectChildrenListGenerated(HndTopics.GetCurrentTopic());
if (aChildrenTopicList.Length > 0) then
begin
%>
<ul>
<% for var nTopic := 0 to aChildrenTopicList.Length - 1 do begin %>
<li><a href="hnd-topic://<%= aChildrenTopicList[nTopic].id %>"><%=
aChildrenTopicList[nTopic].Caption %></a></li>
<% end; %>
</ul>
<% end; %>
<%
var aKeywordsList :=
HndTopicsKeywords.GetKeywordsAssociatedWithTopic(HndTopics.GetCurrentTopic());
for var nKeyword := 0 to aKeywordsList.Length - 1 do
begin
%>
<span style="background-color: #eee"><%=
HndKeywords.GetKeywordCaption(aKeywordsList[nKeyword]) %></span>
<%
end;
%>
HelpNDoc's built-in equation editor can be used to define mathematical expressions. The editor
generates images of the defined expression, which is displayed in all supported documentation
formats.
80 / 283
HelpNDoc User Manual
1. Equation editor
Input equation content using either the physical or virtual keyboard.
2. Virtual keyboard
Displayed when the equation is focused, the virtual keyboard can be used to input various
notations and features of the equation editor. See also the physical keyboard shortcuts available
to manage the equation.
Property Description
Background padding Define a padding around the equation content which is filed by the
81 / 283
HelpNDoc User Manual
background color
HTML code library items provides a way to add custom HTML, CSS, JavaScript code to the
generated documentation. It can be useful in multiple situations:
· Insert advanced HTML widgets such as accordions, tabs, YouTube / Vimeo movies...
· Add custom code to customize the behavior or look and feel of the generated documentation
Note: HTML code library items are only compatible with CHM and HTML documentation formats
as well as some ePub readers. Extra care must be given to cross-browser compatibility with the
included HTML code.
82 / 283
HelpNDoc User Manual
2. Code editor
Insert / Edit the custom HTML, CSS and JavaScript code.
An image map is a special image with click-able shapes linking to topics, files or on-line content. It
can be useful in multiple situations:
· Display a screenshot linking to additional information based on where the user clicks;
· Display a map linking to additional information based on coordinates;
Note: Image maps are only compatible with CHM and HTML documentation formats as well as
some ePub readers.
83 / 283
HelpNDoc User Manual
· Insert / Replace file: Locate a file on the hard drive or a network location to
· Remove file from project: Remove the content of the file from the project
· Update image map: Show the image map editor to edit its click-able shapes
· Export file: Export the content of the file to the hard drive
· Convert to picture: Convert an image map to a picture. Note: This action can take time on
large projects as it needs to analyze the whole project and convert every instances of this
84 / 283
HelpNDoc User Manual
3. Preview
A preview of the library item is displayed. It is possible to drag and drop a file from a third party
application such as the Windows Explorer into the preview to include it or replace the existing file.
4. Properties
Custom properties for this library item.
Property Description
Default align Specify the default alignment of the picture when added to a topic.
Default alt text Specify the default alt text of the picture when added to a topic.
Default margins Specify the default margins for the picture when added to a topic.
Default padding Specify the default padding for the picture when added to a topic.
Default width Specify the default width for the picture when added to a topic. Note:
Clear this value to use the picture's default width.
Default height Specify the default for the picture when added to a topic. Note: Clear
this value to use the picture's default height.
The image map editor is used to draw and update shapes on an image, and set their properties
such as where they are linking to. The image map editor can be accessed as follows:
· Create or edit an image map library item to show the library item edit window
85 / 283
HelpNDoc User Manual
1. Tools
The tools can be used to create, select and manipulate shapes on the image map:
· Select: click any shape on the editor to select it. Use its resizing handles to resize it
· Delete: delete the currently selected shape
· Polygon: create a polygon shape. Click once to add a point, twice to close the polygon
2. Editor
Shows a preview of the image map with the various shapes. Select a shape to display the resizing
handles and edit its properties.
3. Properties
Define the currently selected shape's properties such as link, title, and position.
Any movie required by the documentation project is first placed in the library. It can then be
included in any number of topics while being centrally managed from the library: updating the
movie in the library will automatically update all instances of that movie in any topic where it has
86 / 283
HelpNDoc User Manual
been placed.
Notes:
· Movies can be huge files and including them in the project can lead to significant saving,
loading and generation time;
· Movies are only compatible with CHM and HTML documentation formats as well as some
ePub readers. Also, the movie format has to be considered carefully: it might not render on a
device where that specific format's codec hasn't been installed.
For those reasons, we highly recommend the use of online movie hosts such as Youtube or Vimeo:
· The project and generated documentation will be smaller and faster to generate;
· The movie host takes care about transcoding the movie to the correct format so that it is
visible by anyone.
87 / 283
HelpNDoc User Manual
2. Customize item
A movie can either be stored within the project or linked from an external location based on the
project's requirements. Choosing how it is stored can be decided individually for each item based
on pros and cons for that specific item and / or overall documentation project.
Include File Item file is stored within the project · Item is always · HND project file
External File Item file is stored anywhere on the · HND project file is · Item location
included at generation time. Note: The path to the external updated in the
external file path can be absolute, or file is stored library when the
relative to the HND project file location · Updating the item HND project file
documentation is · Sharing a
built project requires
88 / 283
HelpNDoc User Manual
URL Item file is stored on a web server, and · Item is always · A working
automatically documentation
· Items can be
shared between
multiple projects:
each project will
display it when
needed
· Generation time is
89 / 283
HelpNDoc User Manual
Include File
· Insert / Replace file: Locate a file on the hard drive or a network location to
· Remove file from project: Remove the content of the file from the project
· Export file: Export the content of the file to the hard drive
External File
· File path: Absolute or relative path of the file to include at generation time
URL
· URL: Internet link to the file to display at viewing time
Specifying a URL with a YouTube or Vimeo domain name will automatically generate the proper
embed code.
4. Preview
For included files, an icon of the library item is displayed. It is possible to drag and drop a file
from a third party application such as the Windows Explorer into the preview to include it or
replace the existing file.
5. Properties
Specific properties about the movies such as its width and height.
Any picture (photo, screenshot...) required by the documentation project is first placed in the
library. It can then be included in any number of topics while being centrally managed from the
library: updating the picture in the library will automatically update all instances of that picture in
any topic where it has been placed.
90 / 283
HelpNDoc User Manual
2. Customize item
A picture can either be stored within the project or linked from an external location based on the
project's requirements. Choosing how it is stored can be decided individually for each item based
on pros and cons for that specific item and / or overall documentation project.
Include File Item file is stored within the project · Item is always · HND project file
available even when becomes larger
91 / 283
HelpNDoc User Manual
External File Item file is stored anywhere on the · HND project file is · Item location
included at generation time. Note: The path to the external updated in the
external file path can be absolute, or file is stored library when the
relative to the HND project file location · Updating the item HND project file
documentation is · Sharing a
built project requires
92 / 283
HelpNDoc User Manual
URL Item file is stored on a web server, and · Item is always · A working
displayed at viewing time available even when Internet
the project is connection is
moved to a required at
different location viewing time to
· HND project file is request and
smaller as only the display the item
URL is stored · Only compatible
· Items can be
shared between
multiple projects:
each project will
display it when
needed
· Generation time is
faster as the file is
not copied /
included in the
generated
documentation
Include File
· Insert / Replace file: Locate a file on the hard drive or a network location to
93 / 283
HelpNDoc User Manual
· Remove file from project: Remove the content of the file from the project
· Edit image: Open the built-in image editor to edit the image.
· Convert to image map: Convert a picture to an image map. Note: This action can take time on
large projects as it needs to analyze the whole project and convert every instances of this
picture. This action can't be undone.
· Export file: Export the content of the file to the hard drive
External File
· File path: Absolute or relative path of the file to include at generation time
URL
4. Preview
For included files, a preview of the library item is displayed. It is possible to drag and drop a file
from a third party application such as the Windows Explorer into the preview to include it or
replace the existing file.
5. Properties
Custom properties for this library item. Use the "Reset" button to reset to the default value. Default
properties can be applied to every instances within the project by clicking the "Apply to every
instances throughout the project" button.
Note: this will override any manual settings defined in any instances.
Property Description
Default align Specify the default alignment of the picture when added to a topic.
Default alt text Specify the default alt text of the picture when added to a topic.
Default margins Specify the default margins for the picture when added to a topic.
Default padding Specify the default padding for the picture when added to a topic.
Default width Specify the default width for the picture when added to a topic. Note:
Clear this value to use the picture's default width.
94 / 283
HelpNDoc User Manual
Default height Specify the default for the picture when added to a topic. Note: Clear
this value to use the picture's default height.
Image editor
Pictures which are included within the library can be edited using the built-in image editor.
1. Ribbon bar
Use the ribbon toolbars to access the various actions to create and manage layers, view, as well as
contextual tools.
2. Layers editor
The image is made of multiple layers which can be edited from the layers editor. The top layer is
the one in the front while the bottom layer is the one at the back, or background. Layers can be
reorganized by dragging them to another position. The "Eye" button can be used to toggle the
layer's visibility while the "Lock" button can be used to lock the layer.
95 / 283
HelpNDoc User Manual
3. Image editor
Use the image editor to preview the final image, and manage layers by moving, resizing, rotating...
them.
4. Properties
Displays the contextual properties of the selected layer(s). Use the editors to customize the current
selection.
Stamps editor
Insert any of the pre-made stamps in the image by dragging them and dropping them into the
image canvas.
Select any numbers of layers, then click "Add stamp" to convert them to a reusable stamp.
Select a custom stamp then click "Delete stamp" to delete it. Note: System stamps can't be
deleted.
Snippets are very similar to variables: the snippet is placed within topics and will be replaced by its
current value at generation time. They can be useful in multiple situations:
· A work in progress can first be written as a snippet included in the topic, and later copy /
pasted as the topic content;
96 / 283
HelpNDoc User Manual
2. Commands
Commands available for the image map library item:
· Update snippet: show the Snippet editor to edit the current content of the snippet
3. Preview
Current content of the snippet
· Right click on it
97 / 283
HelpNDoc User Manual
HelpNDoc will ask if the selected content should be replaced by the newly created snippet. Choose
either:
Snippet editor
The snippet editor is used to edit the rich text content of the snippet. Snippets can contain:
· Symbols
· Links
· Images
Note: Images are contained within the snippet and not within the library. The same images added
to multiple snippets will increase the project and generated documentation size.
1. Actions
Use the toolbar actions to format the content of the snippet and insert content such as tables,
images...
98 / 283
HelpNDoc User Manual
2. Editor
Variables are placeholders for textual content. The variable is placed within topics and will be
replaced by its current value at generation time. They can be useful in multiple situations:
· When an information is not yet known or is subject to change, such as a product which is in
the development phase and whose name is not yet known;
· When the generated documentation has multiple targets: it is possible to override variables for
each documentation build generated by HelpNDoc thus generating multiple variations of a
documentation;
2. Variable value
Current value of the variable.
99 / 283
HelpNDoc User Manual
Keywords are words or short sentences used to tag or index one or multiple topics. HelpNDoc
offers the possibility to define a keyword hierarchy where each keyword can be associated with
one or multiple topics. Keywords are alphabetically and hierarchically ordered: a keyword can
contain one or more children keywords.
Create keywords
To create a first-level keyword:
· Create the top part of the "Add keyword" button in the "Keywords" group of the "Home"
ribbon tab
· The keyword is added in the list ready to be named: enter a name and validate using the Enter
keyboard shortcut
· Click the bottom part of the "Add keyword" button in the "Keywords" group of the "Home"
ribbon tab
· Click "Add child keyword"
· The keyword is added in the list ready to be named: enter a name and validate using the Enter
keyboard shortcut
Rename keywords
To rename a keyword:
100 / 283
HelpNDoc User Manual
· Click the "Rename" button in the "Keywords" group of the "Home" ribbon tab
Delete keywords
To delete obsolete keywords:
· Click the "Delete" button in the "Keywords" group of the "Home" ribbon tab
To manage the topics associated with a specific keyword, you can use the Manage keyword
association window.
Keywords' association with the current topic can rapidly be done using the check-box in front of
the keyword.
To rapidly manage every topics associated with a specific keyword, select the keyword then click
the "Associated topics" button in the "Keywords" group of the "Home" ribbon tab to open the
"Manage keyword association" window.
101 / 283
HelpNDoc User Manual
To associate the currently selected keywords with additional topics, check the boxes before the
caption of those topics. Un-check those boxes to remove the association.
To save the modified associated topic list, hit the OK button at the bottom of the window.
See the How to manage the association between a keyword and topics step-by-step guide.
The live spell checker is an integral part of HelpNDoc, covering any input made throughout the
user interface: once a potential spelling error has been identified, the live spell checker will
underline the problematic word with a red line. Right clicking on the word will give a list of
102 / 283
HelpNDoc User Manual
possible alternative words, and options to ignore it or add it to the user dictionary.
1. Spelling options
This shows the spelling options dialog which is
where the spell checker's settings can be
configured.
2. Active dictionaries
This indicates the currently active dictionaries. A
click on that button shows a list of all installed
dictionaries on the current computer as well as
options to install new dictionaries and change
currently active ones.
3. Install dictionaries
New dictionaries can be downloaded from the
OpenOffice.org extensions web-site and installed
using this dialog: just browse for the *.oxt file you
saved on your computer and HelpNDoc will install
it and add it to the list
4. Managing dictionaries
Dictionaries with a check mark are the ones
currently activated and used by HelpNDoc to spell
check the current project. To activate a dictionary, click on it to check it. To deactivate a dictionary,
click on it to un-check it. HelpNDoc supports multiple dictionaries activated at the same time:
when activating a dictionary, it won't deactivate the currently activated ones.
103 / 283
HelpNDoc User Manual
Publishing documentation
From the "Home" ribbon tab, click the top part of the "Generate help" button to show the
"Generate documentation" window. From this window, you can specify:
· The kinds of documentation formats to generate by adding builds and enabling them
· The output path of the final documentation
· Custom template settings, tags settings, project options and variables overrides as well as
build specific settings
HelpNDoc will then process the templates and generate the documentation for each build
accordingly.
104 / 283
HelpNDoc User Manual
Your HelpNDoc documentation can be published in multiple formats. It can also be published
multiple times with different content and settings in each of those formats. Let's see how easily
this can be done.
Template settings
A template can define multiple custom settings (variables) for quick and easy modification from
HelpNDoc's "generate documentation" dialog. They are used to customize parts of the template,
such as custom colors, string translations, custom logos, optional elements... and provide a fast
way to customize a template without altering its code. See also: Variables using the template
editor, and Template variables for low level details.
105 / 283
HelpNDoc User Manual
· Select the build in the build list of the Generate documentation dialog
See the Customize documentation formats topic to learn more about some of the available
template settings.
In addition to being able to create custom templates, it is possible to easily and rapidly customize
HelpNDoc's default templates. To access the template settings:
· Click the top part (without the arrow) of the "Generate help" button to display the "Generate
documentation" window
· Click "Customize" on the right if the customization tabs are not visible
· Go to the "Template setting" tab
106 / 283
HelpNDoc User Manual
Field Description
Clean output directory Optionally clean the output directory before generation starts.
Warning: this will delete any file and folder in the output
directory.
Custom JavaScript Add custom JavaScript code in all generated HTML files
Export normal style Define the normal style as the default style. Use web browser's
default otherwise
Footer (HTML) Specify the HTML content of the footer displayed at the bottom
of each page
Force image size generation Generated HTML code will contain image's width and height to
avoid content shifting and enhanced Core Web Vitals
Force image sizes as Inches Use Inches instead of Pixels for image sizes. This can produce
better results for high resolution screens
Internet Explorer compatibility Choose which version of Internet Explorer is used to display
topics. Newer versions have better CSS / JS support but might
107 / 283
HelpNDoc User Manual
Keep temporary files Keep the temporary files needed by the compiler to build the
final documentation
Library item directory Define the sub-directory where library items are generated
Numbering as text Use text instead of OL/LI elements when generating lists
Show BreadCrumbs Show or hide the breadcrumbs at the top of each topic
Show navigation arrows Show or hide the navigation arrows at the top of each topic
Use project charset for topics Use the project encoding to generate topic files instead of UTF-
8. This can be useful to fix problems for some East-European
and Asian languages
Field Description
Clean output directory Optionally clean the output directory before generation starts.
Warning: this will delete any file and folder in the output
directory.
Custom JavaScript Add custom JavaScript code in all generated HTML files
Export normal style Define the normal style as the default style. Use web browser's
default otherwise
108 / 283
HelpNDoc User Manual
Footer (HTML) Custom HTML code which will be added at the bottom of each
topic
Force image size generation Generated HTML code will contain image's width and height to
avoid content shifting and enhanced Core Web Vitals
Google Tag Manager Id Google Tag Manager (GTM) container ID which installs marketing
tags without modifying the documentation's code. See Setup
Google tag manager
Inline table of content's width Define the preferred width of the inline table of contents. Note:
can be any CSS units such as "auto", "250x", "50vw"...
Keywords expand level The default keywords tree expansion level: 1 will expand root
level keywords, 2 will also expand first level keywords...
Keywords tab title The title of the keywords tab. See: How to localize your
documentation output
Library item directory Define the sub-directory where library items are generated
Link format to anchors override Override the template defined link format to anchors. Available
variables include %topicid%, %helpid% and %anchorname%. See
Handle the generated topic links
Link format to topics override Override the template defined link format to topics. Available
variables include %topicid%, %helpid% and %anchorname%. See
Handle the generated topic links
Logo A custom image from the project's library to use as a logo. See
also "Logo URL". Note: if both "Logo" and "Logo URL" are
indicated, "Logo URL" will be used
109 / 283
HelpNDoc User Manual
Logo URL The URL of a picture to use as a logo. See also "Logo". Note: if
both "Logo" and "Logo URL" are indicated, "Logo URL" will be
used
Numbering as text Use text instead of OL/LI elements when generating lists
Search tab title The title of the search tab. See: How to localize your
documentation output
Show BreadCrumbs Show or hide the breadcrumbs at the top of each topic
Show inline table of contents Show or hide the topic's inline table of contents. See: Inline table
of contents
Show navigation arrows Show or hide the navigation arrows at the top of each topic
Show splitter bar Show or hide the resizable bar between the table of contents
and topic content
Show the table of contents tab Show or hide the table of contents tab
Sitemap base URL The URL of the generated documentation. Will be used to
generate the sitemap links
Sitemap change frequency: How often will the home page change
home
110 / 283
HelpNDoc User Manual
Table of contents expand level The default table of contents expansion level: 1 will expand root
level topics, 2 will also expand second level topics...
Table of contents tab title The title of the table of contents tab. See: How to localize your
documentation output
Topic file extension override Override the template's topic file extension. Templates usually
use this to generate individual topic filenames. Note: Use space
characters for empty extensions. See: HTML Based templates'
general settings
HelpNDoc's default HTML template supports inline table of contents for topics. This table of
contents displays a list of headings named "In this topic". To activate this feature, enable the
"Show inline table of contents" custom setting. It is possible to customize its width in the "Inline
table of content's width" build settings.
To setup a topic's title of contents, the default template will look at HTML headings in the current
topic (e.g. H1, H2...). To define them, you can either:
· Use styles which have an outline level defined, such as "Heading 1", "Heading 2"... an apply
them to titles which should appear in the inline table of contents;
· Or set the "Outline level" paragraph property to those titles by right-clicking on them, then
click "Paragraph...", go to the "Advanced" tab, and set an "Outline level" other than "Body text".
111 / 283
HelpNDoc User Manual
HelpNDoc's default HTML template supports Google Tag Manager, which is used to install, store
and manage marketing tags without modifying the documentation's code. It follows Google Tag
Manager's best practice by adding the correct code both in the head and in the body sections of
the generated HTML documentation.
· Locate the desired container's row, select and copy the value of the "Container ID" column
· From HelpNDoc's "Home" ribbon tab, in the "Project" group, click the top part of the
"Generate help" button
· Select the HTML build on the list
That build is now ready to use Google Tag Manager: next time it is generated, it will automatically
produce the correct code to use Google Tag Manager.
· Access your tag's configuration, then in the "Triggering" panel add the newly created "History
Change" as a "Firing Triggers"
· Click "Save"
112 / 283
HelpNDoc User Manual
Field Description
Word builds generate DocX files by default. This forces the build
Generate RTF format
to generate RTF documents instead
Number of levels in table of Number of heading levels visible in the generated table of
contents contents
The title for the "Table of contents" text. See: How to localize
Table of contents title
your documentation output
Field Description
Do not generate bookmarks Bookmarks won't be included in the generate PDF document
Number of levels in table of Number of heading levels visible in the generated table of
contents contents
113 / 283
HelpNDoc User Manual
Table of contents title The title for the "Table of contents" text. See: How to localize
your documentation output
Use Windows Uniscribe API The Windows Uniscribe API can produce better looking PDF for
some Middle-East and Asian languages. Using it can be slower
to produce PDF documents. Note: Only available when the "Use
legacy PDF generator" option is off
Field Description
Clean output directory Optionally clean the output directory before generation starts.
Warning: this will delete any file and folder in the output
directory.
Export normal style Define the normal style as the default style. Use web browser's
default otherwise
Inline cover page Include a cover page within the eBook content
Inline table of contents Include a table of contents within the eBook content
Keep temporary files Keep the temporary files needed by the compiler to build the
final documentation
Numbering as text Use text instead of OL/LI elements when generating lists
114 / 283
HelpNDoc User Manual
Table of contents title The title for the "Table of contents" text. See: How to localize
your documentation output
Some of the templates settings available for Kindle / Mobi builds are:
Field Description
Clean output directory Optionally clean the output directory before generation starts.
Warning: this will delete any file and folder in the output
directory.
Export normal style Define the normal style as the default style. Use web browser's
default otherwise
Inline cover page Include a cover page within the eBook content
Inline table of contents Include a table of contents within the eBook content
Keep temporary files Keep the temporary files needed by the compiler to build the
final documentation
Numbering as text Use text instead of OL/LI elements when generating lists
Table of contents title The title for the "Table of contents" text. See: How to localize
your documentation output
115 / 283
HelpNDoc User Manual
Field Description
About icon The picture library item to use as the icon in the "About" dialog
About menu text The text to use as the "About" menu item
Address bar enabled Control if address bar visibility can be changed in Qt Assistant
Application icon The picture library item to use as the application icon
Clean output directory Optionally clean the output directory before generation starts.
Warning: this will delete any file and folder in the output
directory.
Export normal style Define the normal style as the default style. Use web browser's
default otherwise
116 / 283
HelpNDoc User Manual
Full text search fallback Use full text search if a keyword can't be found in the index
Keep temporary files Keep the temporary files needed by the compiler to build the
final documentation
Numbering as text Use text instead of OL/LI elements when generating lists
Show BreadCrumbs Show or hide the breadcrumbs at the top of each topic
Show navigation arrow Show or hide the navigation arrows at the top of each topic
Field Description
Clean output directory Optionally clean the output directory before generation starts.
Warning: this will delete any file and folder in the output
directory.
Generate compact Markdown Generated Markdown is more compact, but less readable.
Line width Preferred number of characters per line before wrapping. Purely
cosmetic effect.
Use Setext-style headings If enabled, headings are underlined. If not, atx-style headings
with leading hash marks (#) is used.
117 / 283
HelpNDoc User Manual
The GitHub wiki markdown template adds the following templates settings to the default
Markdown settings:
Field Description
Generate common footer GitHub supports a _footer.md file as a common footer for all
topics in the wiki. If enabled, HelpNDoc will generate that file and
include the project's copyright information. Note: When
activated, topics' footers are disabled.
See also: GitHub documentation on wiki footers
Any library item created within the project can be overridden by each documentation build: every
documentation output can have its own set of customized library items. Once a library item has
been overridden for a specific build, the overridden values set for this library items will be used
next time the build is generated.
118 / 283
HelpNDoc User Manual
· From HelpNDoc's "File" menu, click the top part of the "Generate help" button to show the
"Generate documentation" window
· Select a build in the build list
· Click "Customize" if the build customization tabs are not visible yet
119 / 283
HelpNDoc User Manual
Barcode · Barcode: Bar-code content for this item. See: Barcode editor
Counter · Caption format: Define the caption format for this counter.
See: Counter library item
· Empty caption format: Define the empty caption format for
this counter. See: Counter library item
HTML code · Source: Source of the HTML content (e.g. Included, External)
· HTML code: Actual HTML content stored within the project,
when source is set to "Included"
· Image map: Image map data (e.g. shapes and links). See:
Working with the image map editor
120 / 283
HelpNDoc User Manual
Override styles
Any style created within the project can be overridden by each documentation build: every
documentation output can have its own set of customized styles. Once a style has been
overridden for a specific build, the overridden values set for this style will be used next time the
build is generated.
121 / 283
HelpNDoc User Manual
· From HelpNDoc's "File" menu, click the top part of the "Generate help" button to show the
"Generate documentation" window
· Select a build in the build list
· Click "Customize" if the build customization tabs are not visible yet
Overriding styles
To override a specific style for the selected build, its "Overridden" column must be checked:
· In the "Styles properties" panel, click the "Edit" link next to its properties to update it
· Insert selection's overridden status: Invert the overridden status for the selected styles
· Reset all: Reset the modified styles properties for all styles
· Reset selected: Reset the modified styles properties for the selected styles only
122 / 283
HelpNDoc User Manual
Sign documents
Note: This feature might not be available on all editions of HelpNDoc. Check HelpNDoc's feature
comparison page to learn more.
Word and PDF documents can be signed using an invisible signing certificate. Viewer applications
such as Microsoft Word, Adobe Reader... check that a signed document is coming from the
advertised author and that it hasn't been altered in any ways since it has been signed. HelpNDoc
supports CER, PEM and PFX encoded certificates.
Note: This feature might not be available on all editions of HelpNDoc. Check HelpNDoc's feature
comparison page to learn more.
Word documents generated by HelpNDoc can be signed using an invisible signing certificate.
Microsoft Word displays a message to confirm that a document has been signed by its author,
and that it hasn't been altered since then. HelpNDoc supports CER, PEM and PFX encoded
certificates.
123 / 283
HelpNDoc User Manual
· From HelpNDoc's "File" menu, click the top part of the "Generate help" button to show the
"Generate documentation" window
· Click "Customize" if the build customization tabs are not visible yet
124 / 283
HelpNDoc User Manual
Sign signature origin Specifies whether to sign the XPS document's signature origin
Note: This feature might not be available on all editions of HelpNDoc. Check HelpNDoc's feature
comparison page to learn more.
PDF documents generated by HelpNDoc can be signed using an invisible signing certificate.
Adobe Reader displays a message to confirm that a document has been signed by its author, and
that it hasn't been altered since then. HelpNDoc supports CER, PEM and PFX encoded certificates.
125 / 283
HelpNDoc User Manual
· From HelpNDoc's "File" menu, click the top part of the "Generate help" button to show the
"Generate documentation" window
· Select a PDF build in the build list
· Click "Customize" if the build customization tabs are not visible yet
126 / 283
HelpNDoc User Manual
Request a timestamp from TSA If checked, a request will be made to the address specified in
server "Timestamp server URL" to certify the signing date and time
Timestamp server URL URL of the timestamp server to request for time-stamping
Encrypt documents
Note: This feature might not be available on all editions of HelpNDoc. Check HelpNDoc's feature
comparison page to learn more.
Word and PDF documents can be encrypted and password protected using strong encryption
algorithms. It won't be possible for anyone to view the document or access any of its content
without the specified password.
Note: This feature might not be available on all editions of HelpNDoc. Check HelpNDoc's feature
comparison page to learn more.
Word documents generated by HelpNDoc can be encrypted using strong encryption algorithms.
HelpNDoc supports the following Word encryption algorithms: RC2, RC4, DES, 3DES, AES128,
AES192, AES256.
127 / 283
HelpNDoc User Manual
· From HelpNDoc's "File" menu, click the top part of the "Generate help" button to show the
"Generate documentation" window
Note: This feature might not be available on all editions of HelpNDoc. Check HelpNDoc's feature
comparison page to learn more.
PDF documents generated by HelpNDoc can be encrypted using strong encryption algorithms.
HelpNDoc supports the following PDF encryption algorithms: RC4 40 bits, RC4 128 bits, AES 128
128 / 283
HelpNDoc User Manual
· From HelpNDoc's "File" menu, click the top part of the "Generate help" button to show the
"Generate documentation" window
· Click "Customize" if the build customization tabs are not visible yet
129 / 283
HelpNDoc User Manual
Owner password Password for the document's owner. Owner has all permissions
Specify if the end user can print the document: disabled, low
User permissions / Printing
resolution only, or high resolution
Specify if the end user can copy parts of the document: disabled,
User permissions / Copying
text access for accessibility settings, allowed
Build actions
Note: This feature might not be available on all editions of HelpNDoc. Check HelpNDoc's feature
comparison page to learn more.
130 / 283
HelpNDoc User Manual
Each build can include an unlimited number of pre-build and post-build actions:
· Pre-build actions are executed before the generation process for that build
· Post-build actions are executed after the generation process for that build
· From HelpNDoc's "File" menu, click the top part of the "Generate help" button to show the
"Generate documentation" window
· Select a build in the build list
· Click "Customize" if the build customization tabs are not visible yet
131 / 283
HelpNDoc User Manual
Samples:
Samples:
132 / 283
HelpNDoc User Manual
Run script Run a script using the HelpNDoc API. List of available properties:
Samples:
Show message Show a message during the generation process. List of available
properties:
Samples:
· Click its name, then click "Edit Name" to edit its name
· Click its description, then click "Edit Description" to edit its description
133 / 283
HelpNDoc User Manual
· To execute a build action earlier, select it then click the "Move Up" button;
· To execute a build action later, select it then click the "Move Down" button.
Here are some samples and ideas showing how to use HelpNDoc's build actions to improve the
documentation generation process.
Call an API to display the current date time using build actions
Using the "HTTP Request" Build action, it is possible to call a remote API and get the current date
time. The result will be displayed in the generation log and could be useful for future reference:
134 / 283
HelpNDoc User Manual
It could be useful to copy files either before or after the generation process. To achieve this, the
copy command line can be used to copy files using the "Run program" build action. As it needs
to be run from a command prompt, the cmd.exe program needs to be run with the "/C"
arguments:
Once the documentation has been generated, it could be useful to compress it for backup or
faster transfer purposes. To achieve this, the zip program can be run using the "Run program"
build action:
135 / 283
HelpNDoc User Manual
Once the documentation has been generated, it could be useful to display a warning message to
remind some important information about the generated documentation. To achieve this, the
"Show Message" Build action can be used to display a modal window:
Message content Content of the message Specify the content of the message to
display
Once the documentation generation is complete, it could be useful to store the latest generation
date and time somewhere in the project. It could be done using a "Run script" Build action which
executes a script using HelpNDoc's API methods to store the last generation date and time in the
project topic's custom properties:
begin
Script content Custom script to set the project
var aProjectTopicId :=
HndTopics.GetProjectTopic(); topic's custom property to the current
HndTopicsProperties.SetTopicCus
date and time.
tomPropertyValue(
aProjectTopicId,
'Last HTML Generation',
FormatDateTime('yyyy-mm-dd
hh:nn:ss', Now)
);
end.
136 / 283
HelpNDoc User Manual
Advanced usages
· Working with templates - Understand the powerful templates and learn how to customize the
output of your documentation
· Usage from the command line - Learn how you can leverage the HelpNDoc command line
parameters to automate documentation generation
· CHM files and programming languages - How to integrate your CHM help files with some
programming languages
· Customize default project styles - How to define a default set of styles for your projects
· Using the Script Editor - Leverage HelpNDoc's API to automate help file creation
Keyboard shortcuts
HelpNDoc implements various keyboard shortcuts which can be used throughout the application
to rapidly execute common actions.
User interface
Keyboard shortcuts available in HelpNDoc's main window.
Keyboard
Action Remarks
Shortcut
137 / 283
HelpNDoc User Manual
Tree controls
Keyboard shortcuts available for all tree controls, including the table of contents tree, the library
tree, the keywords tree.
Keyboard
Action Remarks
Shortcut
CTRL + UP Move the element up Not available in the library and keywords trees
CTRL + Move the element down Not available in the library and keywords trees
138 / 283
HelpNDoc User Manual
DOWN
CTRL + LEFT Move the element left Not available in the library tree
CTRL + RIGHT Move the element right Not available in the library tree
CTRL +
Create a new item Not available in the library tree
INSERT
CTRL + SHIFT
Create a new child item Not available in the library tree
+ INSERT
Topic Editor
Keyboard shortcuts available when editing a topic.
Keyboard
Action Remarks
Shortcut
139 / 283
HelpNDoc User Manual
CTRL + SHIFT
Insert non-breaking space
+ SPACE
CTRL + + Zoom in
140 / 283
HelpNDoc User Manual
Equation editor
Keyboard shortcuts available when editing equations.
Keyboard
Action Remarks
Shortcut
UP Move cursor up
SHIFT +
Extend selection forward
RIGHT
SHIFT +
Extend selection downward
DOWN
CTRL + Z Undo
CTRL + Y Redo
141 / 283
HelpNDoc User Manual
SHIFT +
Move before pare
SPACE
superscript/subscript
CTRL + 5 Move to opposite
upper/lower
/ Fraction
CTRL + 2
ALT + V Square root
sqrt
ALT + P
Pi
pi
Keyboard auto-completion
When writing documentation, the user interface might become a distraction and could slow down
the writing process, in particular when adding special and non-textual elements in the topic editor.
That's why HelpNDoc provides the CTRL+SPACE auto-completion keyboard shortcut to speed up
the writing process.
142 / 283
HelpNDoc User Manual
To show the auto-completion dialog, hit the CTRL+SPACE keyboard shortcut in the topic editor.
The following actions are then available:
· Enter any text in the filter field to filter the list and show only relevant items
· Use the Up and Down keyboard keys to select the desired item
· Use the Enter keyboard key (or click the item) to insert that item
· Use the CTRL-SPACE keyboard keys to switch to the next auto-completion mode
· Use the CTRL-SHIFT-SPACE keyboard keys to switch to the previous auto-completion
mode
· Use the Escape keyboard key (or click the close button) to discard the dialog
The auto-completion dialog is context sensitive. It's initial action depends on the content at
position of the cursor in the topic editor.
When open, use the buttons or the CTRL-(SHIFT-)SPACE keyboard shortcut to switch to
another mode:
· After entering the complete URL, it will be inserted as a clickable link in the topic editor
143 / 283
HelpNDoc User Manual
Link to a topic
· When used after a space character or at the start of a new line, it will provide a list of all
available topics to link to
· When used within or right after a word, it will use that word as the filter. E.g. typing "help" then
CTRL+SPACE will filter all topics containing the text "help"
· After selecting the topic in the list, a link with its caption will be inserted in the topic editor
· After selecting an anchor in the list, a link to this anchor will be inserted in the topic editor
· When used within or right after a word starting with the "!" character, it will use that word as a
filter for the library item
· After selecting a library item in the list, it will be inserted in the topic editor
Starting with HelpNDoc 6.7, it is possible to customize some keyboard shortcuts. See the options
window topic to learn how this can be done.
Topic status
Each topic can have a status, representing its state at the current time. By default, available statuses
are:
· Out of Date - the topic's content is not up to date and should be reworked in the future
144 / 283
HelpNDoc User Manual
Manage statuses
By default, all topics and content created in an HelpNDoc project will be generated in every builds
and documentation formats. It is possible to conditionally generate topics and content using build
tags and conditions:
· Build tags represent unique identifiers which can be associated with a topic or a part of a topic
· Conditions are instructions indicating whether a section is included or not based on specific
tags
145 / 283
HelpNDoc User Manual
· From the "Home" ribbon tab, click "Topic properties", then "Include in builds" and select each
build kind and custom tag that applies
· Or right click on the topic and choose options in the "Include in builds" popup menu
Using the "Insert conditional operation" dialog box, choose between one of the operations:
· IF: Start of a conditional section. The content written after this operation will be included only if
the tags are included (IF) or not included (IF NOT) in the current build;
· ELSE: Will negate any previous IF operation. As an example, if the previous IF operation
included "CHM and HTML", the ELSE operation will included everything but those;
· END: Will close the open conditional sections. Any content written after an END statement will
be included in every builds without any condition.
· Right click on a topic, hover "Included in builds" then click "Manage build tags"
· From the "Generate help" window, select a build and click "customize" if the "Included tags" is
not visible" then click "Manage tags"
146 / 283
HelpNDoc User Manual
· Click the top part of the "Generate help" button in the "Home" ribbon tab
· Select a build
See the How to maintain tags associated with output builds step-by-step guide.
Analyzing a project
Analyzing an HelpNDoc project provides a centralized way to obtain advanced details on the
project structure and content. The project analyzer can be launched from the "Home" ribbon tab,
by clicking the "Analyze project" button in the "Project" group.
The project analyzer can be used to get various information about the project, including:
The project analyzer can be started by clicking the "Analyze" button: it may take some time as it
will analyze each topic to report useful information. When the project analyzer window is visible, it
147 / 283
HelpNDoc User Manual
is still possible to modify the project in the background. However, any modification made to the
project will not update the analyzer reports: hitting the "Refresh" button is required in that case.
· General information
· Analyzing hyperlinks
· Analyzing anchors
· Analyzing keywords
· Analyzing conditions
· Analyzing spelling
General information
The project analyzer's "General Information" section provides details and statistics about elements
in the currently opened project:
148 / 283
HelpNDoc User Manual
The project analyzer's "Charts" section provides an interactive visual representation of the project's
structure (or table of contents). Clicking an item in the chart selects it in the table of contents and
vice-versa.
149 / 283
HelpNDoc User Manual
Analyzing hyperlinks
The "Hyperlinks" section of HelpNDoc's project analyzer lists all hyperlinks found throughout the
project. The hyperlink analyzer can be used to:
150 / 283
HelpNDoc User Manual
Analyzing anchors
The "Anchors" section of HelpNDoc's project analyzer lists all anchors found throughout the
project.
Actions
HelpNDoc can show a specific anchor's position within the project. To locate an anchor, either:
· Double click on it
151 / 283
HelpNDoc User Manual
The "Library items" section of HelpNDoc's project analyzer lists all library items present in the
library, and how they are used throughout the project: a library item can be displayed multiple
times in the list if it is used multiple times in the project. The library items view is very powerful to
manage library items and can help save time by:
· Showing how many times and where each library item is being used
· Filtering library items which are included in topics but not available in the library anymore
(broken items)
152 / 283
HelpNDoc User Manual
· HelpNDoc will automatically select all items of the same kind and with the same content
· Delete all selected items from the library except the final one
153 / 283
HelpNDoc User Manual
Analyzing keywords
The "Keywords" section of the project analyzer lists all keywords available in the current project
with a list of associated topics. The keywords analyzer can be used to:
· Get a representation of keyword usage within the project: spot rarely used or overused
keywords easily
· Spot broken keywords which are not associated with any topic
· Manage topics associated with a specific keyword using the Manage keyword association
window.
154 / 283
HelpNDoc User Manual
Analyzing conditions
The "Conditions" section of HelpNDoc's project analyzer lists all conditional items throughout the
project: IF, IF NOT, ELSE and END. The conditions analyzer can be used to:
Filters
By clicking the "Filter" button, it is possible to filter by a specific operation or clear the filter.
Alternatively, it is possible to place the mouse over the grid header to show the column's filter
icon: clicking that icon provides additional filter capabilities for that column.
155 / 283
HelpNDoc User Manual
Actions
When a row is selected, clicking the "Locate and select" button will select the topic, and conditional
operation within that topic in HelpNDoc's topic editor.
Analyzing spelling
The "Spelling" section of HelpNDoc's project analyzer lists all spelling mistakes throughout the
project. It will analyze topics contents as well as snippets placed in the library.
Filters
Click "Filter" to display a list of available filters:
Actions
To locate and select the problematic word within the project, click the "Locate and select button.
156 / 283
HelpNDoc User Manual
Click "Add to Dictionary" to add the currently selected word to the user dictionary and "Spelling
options" to manage project-wide spelling options.
Vacuuming a project
The HND project file format is based on the SQLite database format which includes various
optimizations to speed-up disk reading and writing operations:
· When a large amount of data is deleted from the project (such as library items), it leaves
behind empty space. This means the project file might be larger than needed;
· Frequent modifications (such as inserts, updates, and deletes) can cause the project file to
become fragmented. This means that project operations can be slower than usual and the
project file might be larger than needed;
Using the "Vacuum Project" command from HelpNDoc's "Tools" ribbon tab will optimize the
currently opened HND project file by rebuilding it and repack its content into a minimal amount of
disk space. This leads to smaller and faster HND project files.
HelpNDoc includes two very powerful template systems which are used to fine-tune the look of
the generated documentations: HelpNDoc will read the selected template's instructions prior to
generating the documentation, and will adapt the generated output based on those instructions.
· The CHM, HTML, ePub, Kindle, Markdown and Code template system which can control
almost all aspects of the documentation generation for those formats. It is based on the Pascal
programming language which is interpreted to define how the documentation is generated;
· The Word and PDF template system which can control the page size, covers, headers and
footers, layout and headings appearances.
Using the template editor is the recommended way to manage and customize templates. It is also
possible to manually alter the template files: read the low-level details about templates for such
cases.
The easiest way to manage templates is by using the template editor. The template editor can be
used to create, rename, modify and delete all kinds of templates.
157 / 283
HelpNDoc User Manual
It can be accessed using the "Template Editor" button from the "Templates" group in HelpNDoc's
"Tools" ribbon tab.
Managing templates
The template editor is used to manage all kinds of templates:
1. The template selection lists all templates available on the current computer. To manage a
specific template, select it in that list.
Standard templates (included with HelpNDoc's installation) are marked as such: they can't be
edited;
2. The create template button can be used to create a new template of any kind: select the
template kind and enter a unique name to create that template;
3. The duplicate template button can be used to duplicate the currently selected template. This
can be useful to create a small variation of a template or test some modifications without
altering the original template;
4. The rename template button can be used to rename the currently selected template. HelpNDoc
will make sure the newly entered name is valid and unique;
5. The delete template button can be used to delete the currently selected template. Warning:
this action will permanently delete the selected template from the current system and this
action can't be undone;
6. The open template location button can be used to open the template using Windows Explorer
and edit it from there. Note: the template editor will be closed to avoid problems due to
edition in multiple places.
Customizing a template
Once a template is selected in the template editor, various customizable sections are available.
Those sections differ based on the kind of templates currently being selected.
Note: Standard templates, which are included with HelpNDoc's installation are read-only and can't
be modified.
· HTML based templates: the general settings, variables, script files and assets can be
customized. HTML based templates include the following documentation formats: CHM,
158 / 283
HelpNDoc User Manual
· Word and PDF templates: the page settings, cover page, headers, footers, table of contents
and topic titles can be customized.
HTML based templates include CHM, HTML, ePub, Kindle, Qt Help and Markdown templates. In
the template editor, select a HTML based template to access its customizable settings:
· General settings: customize the file extension, inheritance and other general settings for that
template;
· Script files: manage script files used to generate the final documentation;
· HTML Tags: manage HTML code generated for some library items such as videos;
· Hooks script: manage hooks which are executed during template generation to customize the
output;
Note: Changes made in the template editor (including editing scripts and assets) are only saved to
disk when clicking the "Save" button.
General settings
Once you have selected an HTML based template in the template editor, access the "General
settings" group in the "Edit template..." panel to manage the following settings for that template:
· Inherits from: templates can inherit from other templates and override only specific settings,
scripts and assets. Select the parent template here if needed. See: Template inheritance
· Default file extension: indicates the extension which will be suggested by HelpNDoc when you
create a new build using that template;
· Topic file extension: indicates the extension which should be used by templates to produce
topic files;
· Link settings: define how internal links will be generated by HelpNDoc. See:Handle the
generated topic links
· Variables
· Script files
· Assets
159 / 283
HelpNDoc User Manual
Variables
Once you have selected an HTML based template in the template editor, access the "Variables"
group in the "Edit template..." panel to manage variables which can be used by this template.
When a variable is defined for a template, it can easily be customized from the build window for
each build using that template, and scripts from this template can easily access its customized
value to act upon it.
· Id: specify a unique identifier for that variable. This identifier will be used in the script files to
access the customized content for that variable
· Kind: the kind of the variable which will provide a simpler way to specify its value in the build
window.
o Bool: the variable contains a boolean value which can be either true or false
o Color: the variable contains a color value
160 / 283
HelpNDoc User Manual
o Enum: the variable contains a specific value chosen from one of the "Options" field (see
"Options" bellow)
· Options: for "Enum" variables, provides a list of available items to choose from, separated
using the | character. E.g. "value1|value2|value3" will provide a choice between 3 values
· Translations: it is possible to translate the name and description of the variable to other
languages supported by HelpNDoc. If needed, enter the translated values here so they can be
stored in the template files, and displayed if HelpNDoc is set up in one of those languages
Edit a variable
Once a variable is selected in the list, the Edit Variable button will display the same window as
when creating a new variable is shown (see "Create a new variable" above). Only the "Id" field is
grayed out as it can't be modified for an existing variable.
Delete a variable
Once a variable is selected in the list, the Delete Variable button will delete that variable. Deleted
variables won't be displayed in build settings anymore and can't be used by script files.
· General settings
· Script files
· Assets
Script files
Once you have selected an HTML based template in the template editor, access the "Script files"
group in the "Edit template..." panel to manage script files for this templates.
Script files are the heart of HTML based templates as they include a mix of HTML and Pascal code
used to instruct HelpNDoc on how to generate the final documentation. Using those very
powerful script files, it is possible to customize almost any part of the generated documentation
161 / 283
HelpNDoc User Manual
files.
Script files' names must adhere to the following pattern: FILENAME.pas.EXTENTION where:
· FILENAME is the name of the script file and can be any valid file name;
As an example HelpNDoc's default HTML template includes the "topics.pas.html" file which is used
to generate HTML files for topics.
Edit a script
Once a script is selected in the list, use the "Edit Script" button to access the script editor and
change its name or content.
Rename a script
Once a script is selected in the list, use the "Rename Script" button to rename it.Note: a script
must contain the ".pas." text in its name before its extension (e.g. index.pas.html).
Delete a script
Once a script is selected in the list, use the "Delete Script" button to delete that script from the
currently selected template. This script won't be run anymore when the final documentation is
generated.
· General settings
· Variables
· Assets
162 / 283
HelpNDoc User Manual
Assets
Once you have selected an HTML based template in the template editor, access the "Assets" group
in the "Edit template..." panel to manage assets bundled with the currently selected template.
Assets are static files which will be deployed in the same directory as the generated
documentation. Assets are usually used to add CSS, JavaScript or Images to the final
documentation but they are not limited to those kind of files: any file type can be added as an
asset to a template.
The assets hierarchy displays a list of all assets bundled with the currently selected template. It is
possible to:
· Edit the currently selected file using an external editor. See Editing assets
· Rename the currently selected folder or asset using the "Rename asset" button
· Delete the currently selected folder or asset using the "Delete asset" button
· Move an asset to a different folder by dragging it and dropping it to the desired location
163 / 283
HelpNDoc User Manual
· General settings
· Variables
· Script files
164 / 283
HelpNDoc User Manual
Editing assets
· Edit asset opens the system's default editor for this file kind;
· Edit asset with... opens the standard Windows "Open With" dialog to choose the editing
application.
While an asset is being edited by a third-party application, the "Edit file" dialog is shown by
HelpNDoc.
To edit an asset:
· Save the file from that external editor and close it if needed;
· Click "Finish Editing" in the "Edit file" dialog
Note: the asset is not yet saved to disk, the template needs to be saved from the template editor
dialog.
To cancel an asset edition, click "Cancel Editing" in the "Edit file" dialog. Even if the asset file has
been edited and saved using a third party editor, it won't be updated in the template.
HTML tags
Once you have selected an HTML based template in the template editor, access the "HTML tags"
group in the "Edit template..." panel to manage HTML tags which are generated by this template.
HTML tags are HTML code snippets which are used by HelpNDoc to generate support code for
some library items such as videos.
165 / 283
HelpNDoc User Manual
· New movie tag - Create a new HTML tag to customize the export of movies
· Extensions - This HTML tag will only be used for these extensions. E.g. "mov,avi,mpeg". Note:
The following extensions have a specific meaning:
o Empty extension or <all> - Use an empty extension to specify the default HTML
embed code to use for all extensions not defined in that template
o "youtube" or "vimeo" - Use those extensions to customize the HTML embed code for
those online video hosting providers;
· Tag content - Specify the HTML code snippet which will be used to generate the final HTML
code for these extensions. Use the following placeholder to let HelpNDoc generate the proper
HTML code:
o %LOCATION% - Final URL of the HTML element as defined within the project
o %WIDTH% - Width of the HTML element as defined within the project
o %HEIGHT% - Height of the HTML element as defined within the project
Example
Let's say that our template should produce a custom HTML code for the following video
extensions: MPG, MPEG and MP4. Here is how we can proceed:
166 / 283
HelpNDoc User Manual
· Add the follwoing extensions to the list: "mpg", "mpeg" and "mp4"
HelpNDoc will now use this HTML snippet to generate the proper HTML code each time one of
those video extensions is used within the project.
Hooks script
Once you have selected an HTML based template in the template editor, access the "Hooks script"
group in the "Edit template..." panel to manage the custom script used to hook some template
generation methods. Using hooks, it is possible to alter HelpNDoc's generation process to fine-
tune it for specific requirements.
167 / 283
HelpNDoc User Manual
· Make it lower-case
Word and PDF templates can be customized using the template editor. Select a Word or PDF
template to access its customizable settings:
168 / 283
HelpNDoc User Manual
· Page settings: manage page size, orientation, margins, headers and footers sizes
· Cover page: customize the content of the cover page
· Topic titles: customize the look and feel of the topic titles includingText layout
Text layout
Use the text layout dialog to define how the specified text (title, table of contents entry...) is
displayed in the generated documentation.
Numbering format
Define how a topic numbering is formatted. E.g. topic "2.3.4" with numbering format "n-R-a" will
be displayed as "2-III-d"
Possible values:
169 / 283
HelpNDoc User Manual
\t Tabular character
The template editor is a visual interface which simplifies the creation and management of
templates. Behind the scenes, when a modification is made through the template editor, it is
stored to the template files on the hard drive, following a specific convention. This section explains
the template's low-level details, starting with the best practices.
Best practices
HelpNDoc comes with a set of default (Standard) templates for all the documentation formats.
Those templates are located in the "Templates" sub-directory of the HelpNDoc's installation
directory, usually under "Program Files\IBE Software\HelpNDoc\Templates".
In addition to that, a user template directory is created when HelpNDoc is installed. It is located
under "My Documents\HelpNDoc\Templates" and can be customized in HelpNDoc's options
window.
Recent versions of Windows won't allow non-administrator users to change anything in the
"Program Files" directory, that's why it is recommended to edit all the templates in the "My
Documents" template directory instead.
170 / 283
HelpNDoc User Manual
Assets
A template can contain an optional "assets" folder. All the files and sub-folders contained in that
folder will be copied in the documentation's output directory. This is useful to add external files to
the templates, such as CSS or JavaScript to HTML templates. Note: The content of the "assets"
folder will be copied directly in the generated documentation's output directory, not in an "assets"
sub-directory.
171 / 283
HelpNDoc User Manual
· Add, delete or modify any other file to update the template's content
The template.info file is a standard INI file located in all the templates folders and is used to
specify basic information on that template such as the name, category and extension.
The template.info file requires a "config" section with the following values:
· name - defines the name of the template as shown in the project options and help generation
dialog
· category - defines the category of the template and used to combine code templates in the
quick generation popup menu
· extension - defines the extension of the main file which will be generated by this template (e.g.
"chm" for CHM help files). This only serves as a suggestion for the default file name, as the file
extension can be changed for each build
· topicextension - defines the extension of the topics file (e.g. "htm" for CHM help files).
Templates can use this value to generate topic files.
[config]
name=Sample CHM template
category=CHM Documentation
extension=chm
· category: string
· name: string
· folder: string
· kind: string
· extension: string
· topicextension: string
· inherits: string
172 / 283
HelpNDoc User Manual
· standard: boolean
· variables: THndTemplateVariableInfoArray
Template inheritance
As mentioned in the best practices, it is not advised to modify the default templates provided with
HelpNDoc usually located in the "program files" directory. Furthermore, some templates might
need only subtle changes to a subset of the files to suit the requirements. That's why HelpNDoc
introduces the template inheritance concept where a template can "inherit" from a parent template,
thus using all its template files, and only override the required files.
[config]
name=Child template
category=HTML Documentation
extension=html
inherits=Default HTML Template
This configuration file instructs HelpNDoc to use the template named "Default HTML Template" as
the parent template. Only template files from the same documentation format can be used as a
parent template.
How is it working
At generation time, HelpNDoc reads the template selected for the project. If that template inherits
from a parent template, HelpNDoc will first generate a new temporary template as follows:
2. The child template (the one selected for the documentation generation) is copied over this
parent template, replacing any duplicate file if required;
3. The template.info files are merged to preserve the sections and keys from both templates, and
override the duplicate ones using the child template's data.
173 / 283
HelpNDoc User Manual
Limitations
Some limitations apply to the template inheritance feature:
· It is not possible to inherit from a template from a different documentation format: an HTML
template can't inherit from a CHM template and a Word template can't inherit from a PDF
template for example;
· It is not possible to remove files from the original template, just add or override existing files
Code templates
Code templates are very similar to CHM and HTML templates except for the fact that they usually
won't need access to the topic's contents and can't access to their HTML content. Here are the
steps involved to create a code template:
· Create a new folder under "My Documents\HelpNDoc\Templates\Code" with the name of the
new template
· Create a new template.info file in that template folder and add the required name, category
and extension
· Create a new file containing the ".pas" text before the extension. As an example, we will create a
"sample.pas.txt" file. Only files containing the ".pas" text will be interpreted by HelpNDoc
In HelpNDoc, the new code template will appear in the "Code Generation" category of the
"Generate help" popup menu in the "Project" section of the "Home" ribbon tab.
The CHM and HTML template system can be used to tailor the output for HTML-based
documentation generation. The template system is very similar to the code template but can also
access the topic's HTML content. To learn how to create a new HTML template, see the "Building a
single page HTML template" topic. Also learn how to:
· Assets
· HTML tags
174 / 283
HelpNDoc User Manual
HelpNDoc will automatically generate links to topics and anchors for you. By default, it assumes
that topics will be generated in a file called "%helpid%.html" where "%helpid%" is the value of the
help id of that topic. However, this is not always the case so HelpNDoc provides a way of
customizing the format of the generated topic and anchor links. They can be modified in the
"config" section of the template.info file. Here is a sample:
linkformattopic=#%helpid%
linkformatanchor=#%anchorname%
The possible variables to be used in the topic and anchors link formats are:
HTML and CHM templates can leverage various methods to get information or manipulate the
currently opened project. See methods available in the HelpNDoc API.
When interpreting a template file, HelpNDoc will automatically save the printed content to the
documentation's output directory and use the template file name, without the ".pas" part. For
example, the "topics.pas.html" file will be interpreted and the result will be written in the
"topics.html" file.
As it isn't possible nor sane to create a template file for every single file HelpNDoc has to generate,
the template system has a special property to switch the file currently being written. The code
required to do that is:
HndGeneratorInfo.CurrentFile := 'my-new-file.html';
When the template system interprets that line, it will automatically output any further content to
the file specified, in the documentation's output directory. This trick is used by the CHM and HTML
templates to output each individual topics into their own HTML file:
175 / 283
HelpNDoc User Manual
// ...
end;
Template variables
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
[var_BaseColor]
name=Base color
kind=color
default=#EFEFEF
description=Customize the documentation's base color.
· Identifier is BaseColor
· Kind is color
· Default value is #EFEFEF
176 / 283
HelpNDoc User Manual
Possible values for this Only for enum variables, using the pipe character as
values
variable a separator. Example: "blue|red"
Kinds of variables
A variable can be set as one of the following kinds depending on its purpose:
color Standard color value Can be used to define the color of a specific element
Choose between multiple Use the "values" attribute to specify the possible
enum
values values. Example: "values=chm|folder|vista"
177 / 283
HelpNDoc User Manual
libitem Select a library item Gives the ability to select an item from the library
HndGeneratorInfo.GetCustomSettingValue('BaseColor');
Assets
Any file or folder placed in the "assets" sub-folder of an HTML based template won't be processed
by HelpNDoc: they will be copied to the root directory of the generated documentation.
Assets can be used to generate additional images, CSS style-sheets, JavaScript code or any other
baggage file or folder that might be needed alongside the generated HTML based
documentation.
Managing assets
To manage assets for a specific template, simply create the "assets" sub-folder in that template's
directory, and add files to that directory. Any file added there will be copied as-is in the final
output folder.
Note: Even though they are placed in the template's "assets" sub-directory, they will be copied to
the root of the generated folder.
178 / 283
HelpNDoc User Manual
HTML tags
The HTML specification frequently evolves and some library items (such as Movies) might need a
custom HTML code to be generated based on the targeted platform and its mime type. For this
purpose, HelpNDoc's HTML based templates can be customized to generate custom code based
on item extension.
Naming convention
HTML tags source files are placed in the templates' "tags" sub-directory using the following file
name pattern:
KIND_EXTENSIONS.html
Where:
· KIND - is the library item kind (e.g. movie). Required. Available kinds are: movie
· EXTENSIONS - the list of file extensions which will use this source code. Multiple extensions
are separated by a comma. Not required.
Will be used to generate the source code for movies with the
movie_avi,mov.html
.AVI or .MOV extension
Will be used to generate the source code for movies with the
movie_mp4.html
.MP4 extension
Will be used to generate the source code for all movies not
movie.html
handled by another HTML tag file
Placeholders
Within the source code for a specific tag, the following place-holders are available and will be
replaced by HelpNDoc at generation time:
Name Description
179 / 283
HelpNDoc User Manual
Sample content
Let's that we'd like to handle movies with the MP4 file extension. In the template's directory, we
can create the tag file named "tags\movie_mp4.html". Its content could be:
Samples
In this section, we will create a new HTML template from scratch. This template will create a single-
page HTML documentation where all the topics are grouped on that single page. The final version
of this template is installed with HelpNDoc and can be found in the "My
Documents\HelpNDoc\Templates\html\SinglePage" directory.
Template directory
First we need to create a directory for the new template. Custom templates are located in the "My
Documents\HelpNDoc\Templates" directory. As we are creating an HTML template which we'll call
"SinglePage", we will create the following directory for our new template: "My
Documents\HelpNDoc\Templates\html\SinglePage".
[config]
name=Single page HTML template
180 / 283
HelpNDoc User Manual
extension=html
Any text which is added to that file will be written as is in the final output, except if it is included in
the <% %> tags, which are used to insert special instruction code. The steps involved to create the
initial code are:
· Instruct the template system to output the HTML file BOM (Byte Order Mark). This is only
necessary for HTML files in Internet Explorer on Window with some languages (1)
· Instruct the template to output to the user defined file as we are only generating a single file
(2)
<%
begin
// 1. Output BOM for HTML UTF8 files
HndGeneratorInfo.BOMOutput := True;
// 2. Instruct the generator to generate the desired output file
HndGeneratorInfo.CurrentFile := ExtractFileName(HndGeneratorInfo.OutputFile);
%>
<html>
<head>
</head>
<body>
Sample HTML Code
</body>
</html>
<%
end.
%>
<%
181 / 283
HelpNDoc User Manual
// Variable declarations
var
// List of topics available in the current project
aTopicList: THndTopicsInfoArray;
begin
// 1. Output BOM for HTML UTF8 files
HndGeneratorInfo.BOMOutput := True;
// 2. Instruct the generator to generate the desired output file
HndGeneratorInfo.CurrentFile := ExtractFileName(HndGeneratorInfo.OutputFile);
// 3. Get the list of topics available
aTopicList := HndTopics.GetTopicList(False);
%>
<html>
<head>
</head>
<body>
Sample HTML Code
</body>
</html>
<%
end.
%>
· Create an iteration variable (4) - This variable will be used by the loop
· Loop through the topics (5) - The topics are treated one by one in that loop
· Notify the template system about the current topic being generated (6) - The template system
can't know which topic is currently treated, that's why we notify it using the HndGeneratorInfo
object
· Output the topic content (7) - We ask for the HTML content of the topic and we output it
<%
// Variable declarations
var
// List of topics available in the current project
aTopicList: THndTopicsInfoArray;
var
// 4. Current topic index
nCurTopic: Integer;
// Main program
begin
// 1. Output BOM for HTML UTF8 files
HndGeneratorInfo.BOMOutput := True;
182 / 283
HelpNDoc User Manual
<html>
<head>
</head>
<body>
<%
%>
</body>
</html>
<%
end.
%>
· Declare a new variable nTopicLevel (8) - This variable will be used to get the level of the topic
and output the correct HTML heading to the topic title
· Output an HTML anchor (9) - This anchor will be used to link to that specific topics afterwards
· Get the topic level (10) - We request the level of the current topic so we can output the correct
HTML heading
· Output the topic title (11) - We can now correctly output the title of the topic
Between steps (6) and (7) we now add the following lines in the "index.pas.html" file:
183 / 283
HelpNDoc User Manual
<style type="text/css">
<%
// 12. Output global CSS content
print(HndProjects.GetProjectCssContent());
%>
</style>
linkformattopic=#%helpid%
linkformatanchor=#%anchorname%
Final touches
As we have seen, the possibilities are endless: we could add some custom-made CSS file in the
assets folder to customize the HTML headings, add the title of the project, the copyright,
completely modify the look and feel of our web-page, split it in sections... Some of those ideas are
added in the final sample file which is installed with HelpNDoc and can be found in the "My
Documents\HelpNDoc\Templates\html\SinglePage" directory.
Template specifics
Each template provided with HelpNDoc is custom-made to achieve a specific task. Sometimes,
templates can have additional features, limitations, or gotchas which are only available on this
specific template. Explore detailed insights on template-specific features in the subsequent
sections:
184 / 283
HelpNDoc User Manual
The standard HTML template in HelpNDoc has undergone significant optimizations for enhanced
speed in downloading and navigating. This optimization means that when a user selects a topic
from the table of contents, HelpNDoc only refreshes the topic's content instead of reloading the
entire page. As a result, certain elements like page-specific JavaScript code may not execute when
a page is accessed via the table of contents. To address this, HelpNDoc provides a specific event,
app.EVENTS.onTopicChanged, to track changes in topics.
The usage of this event is as follows:
app.EVENTS.onTopicChanged = (sUrl) => { /* Custom code run when a new topic is loaded
*/ }
· Add "Custom JavaScript" code to the default HTML template's settings. See: HTML
documentation settings
This will automatically add the code in all generated documentation page
· Create a new custom template and enter the code within the template's generated content.
See: Working with templates
This provides greater flexibility at the price of additional initial complexity
The GitHub wiki Markdown template can be used to generate GitHub compatible wiki pages. This
section contains various details on how to best support GitHub wiki pages.
1. Go to the GitHub repository that contains the Wiki you want to clone.
2. Use the git clone command followed by the URL of the Wiki to clone the Wiki
repository locally. To access the repository's Wiki URL, simply add the ".wiki.git" at the end
of the repository's name. For example:
185 / 283
HelpNDoc User Manual
To update the Wiki pages and push the modified content back to the repository, you can do the
following:
2. Once you have made the updates, navigate to the directory where you cloned the Wiki
repository using the terminal
3. Use the following commands to add the changes, commit them, and push them to the
repository:
git add .
git commit -m "Updated Wiki pages with new content"
git push
HelpNDoc handles various command line parameters to be able to update and generate
documentation without user interface. This is useful to integrate the documentation generation
process with an automated build process for example.
Note: The command line syntax has changed in HelpNDoc 5.4 ans is not backward compatible.
Check Legacy command line syntax for 5.3 and older to learn more about command line syntax in
HelpNDoc 5.3 and earlier.
Where:
[project] Path of the HND project file to open or build. Optional. See Project
[global-options] Options available for every command. Optional. See Global Options
186 / 283
HelpNDoc User Manual
Project
Indicates the full or relative path of a *.HND project file.
When specified without any command, HelpNDoc's user interface is shown and opens with the
specified project.
Note: Mandatory for the build command.
Global options
The following options are global: they can be useful for any commands:
-log or -l Indicates the log file path: any information displayed on the command
prompt will also be saved to that file.
> hnd9.exe myproject.hnd -log=c:\tmp\log.txt build
-openhelpid or -oi Focus the topic with the specified Help ID once the project is opened
-openhelpctx or -oc Focus the topic with the specified Help context once the project is
opened
> hnd9.exe -r
-silent or -s Command line is in silent mode: it will automatically close without user
interaction
-verysilent or -ss Command line is in very silent mode: it won't even open a command
window
187 / 283
HelpNDoc User Manual
Commands
The following commands are available from the command line.
Note: Use the -help or -h after the command to get more information about that command.
build Build the specified *.hnd project file using either the project's settings or
overrides from the command line. See "build" command
script Run a script using the HelpNDoc API to automate project creation or
modification. See "script" command
"build" command
The build command is used to build a *.hnd project file from the command line, without showing
HelpNDoc's user interface.
When run without any options, it will use the project settings to generate all enabled builds. It is
possible to override some project settings with command options:
-except or -e Generates all project builds except the specified ones. It is possible to
use this command multiple times.
-only or -x Generates only the specified build names. It is possible to use this
command multiple times.
188 / 283
HelpNDoc User Manual
"license" command
The license command can be used to manage the license of the full version of HelpNDoc.
Available options are:
-activate or -a Activate a specific license key on this computer. Make sure the previous
license key is deactivated first.
189 / 283
HelpNDoc User Manual
· Warning: Make sure you are connected to the Internet to access the
license servers.
-proxy or -p
By default, the license checker will use the proxy set up in Internet
Explorer. If you need to customize the proxy, you can indicate the proxy
address so that the activation process is able to correctly connect to the
license servers. Once done, the proxy address is saved and restored
each time the application is launched.
190 / 283
HelpNDoc User Manual
"script" command
The script command can be used to execute a custom script using the available HelpNDoc API
methods to automate project creation or modification. Small scripts can be written in the
command line, while large scripts can be loaded from a file.
Note: If a project is specified in the command line syntax, it will be opened first before executing
the script, thus simplifying existing projects modification.
-file or -f Load the script content from the file path specified.
Note: If both the -f and -x command line options are defined, only the
-x one will be used.
-execute or -x Run the script code provided directly on the command line.
Note: If both the -f and -x command line options are defined, only the
-x one will be used.
Warning: The following command line syntax is valid for HelpNDoc 5.3 and older only. Starting
with HelpNDoc 5.4, a new command line syntax has been introduced which is not backward
compatible.
HelpNDoc's command line options use the syntax "hnd5.exe [FileName] [Parameters]" where
[FileName] is the optional HND file to be processed and the parameters are described bellow.
When run using the command line parameters bellow, HelpNDoc won't show any user interface
191 / 283
HelpNDoc User Manual
· /b=[value] - Override the list of build to generate from the project (Semi-colon separated list
of built)
· /v[name]=[value] - Set the [value] of variable [name] or create a new variable named [name]
· /silent - Silent mode: no user input required. Useful for automated build processes to avoid
user interaction
· /l=[value] - Output the generation log to the specified file
· /lic=[value] - License management. See bellow.
This translates to: generate the file "myHelp.hnd" according to the settings saved in that file.
This translates to: generate the file "myHelp.hnd" according to the settings saved in that file and
save the log to the file "c:\log\hnd-log.txt"
This translates to: generate the file "myHelp.hnd" by using the builds named "Build chm
documentation" and "Build pdf documentation" and modify or declare the variable "MyVariable"
with the value "MyValue".
192 / 283
HelpNDoc User Manual
/lic=activate:KEY Activates a new license key. Make sure the previous license key is
deactivated first. Example:
/lic=deactivate De-activates the current license key. This makes it possible to move
HelpNDoc's license key to another computer. Example:
/lic=setproxy:PROXY_AD By default, the license checker will use the proxy set up in Internet
DRESS Explorer. If you need to customize the proxy, you can indicate the proxy
address so that the activation process is able to correctly connect to the
license servers. Once done, the proxy address is saved and restored
each time the application is launched.
Example:
193 / 283
HelpNDoc User Manual
It is possible to create and save a set of customized default styles which will be used by default
each time a new project is started. Here is a step by step guide on how to achieve that:
For now on, each time a new project is created, the set of styles defined in this file will be loaded
and available for that project.
See the How to customize the default styles for new projects step-by-step guide.
The script editor provides a way to use a programming language, based on the Pascal syntax, to
automate HelpNDoc. Almost everything in HelpNDoc can be automated, from project creation to
library management. See methods available in the HelpNDoc API.
194 / 283
HelpNDoc User Manual
Bookmarks
When bookmarks are enabled, use the CTRL + SHIFT + 1 to 9 keyboard shortcuts to place
bookmarks within the code. Bookmarks can then be reached using the CTRL + 1 to 9 keyboard
shortcuts.
Migration
The following topic explains the script modifications needed to migrate to newer versions of
HelpNDoc: Migrating scripts and templates
HelpNDoc's scripting system is a subset of the Object Pascal language. In addition to usual object
Pascal code, HelpNDoc provides an extensive set of API methods which can be used to automate
multiple tasks from project creation to control how documentation is generated.
const
constant1 = 'Hello';
var
variable1, variable2: string;
var
variable3: integer;
procedure test1();
begin
variable1 := constant1 + ' World';
end;
begin
test1();
Print(variable1);
Print(test2());
end.
195 / 283
HelpNDoc User Manual
<html>
<head>
<title><% print('Hello World');%></title>
</head>
<body>
<% for var i := 0 to 10 do begin %>
Hello <%= i %>
<% end; %>
</body>
</html>
Will output:
<html>
<head>
<title>Hello World</title>
</head>
<body>
Hello 0
Hello 1
Hello 2
Hello 3
Hello 4
Hello 5
Hello 6
Hello 7
Hello 8
Hello 9
Hello 10
</body>
</html>
Note: <%= 'Hello World' %> is the same as <% print('Hello World'); %>
Base types
Type Description
196 / 283
HelpNDoc User Manual
Methods:
· ToString
Conversion to string
Methods:
· ToString
Conversion to string
Methods:
· ToString
Conversion to string
197 / 283
HelpNDoc User Manual
Print('Hello'#13#$0D'World');
Print("Hello
World");
Methods:
· High
Index of last letter
· Low
Index of first letter
· LowerCase
Converts to ASCII lower case
198 / 283
HelpNDoc User Manual
· Length
Length of the string
· Reverse
Returns a version of the string with the characters
reversed
· StartsWith(SubString: string):
Boolean
Returns true if the string starts with the sub-string
· ToBoolean
Converts to Boolean
· ToFloat
Converts to float
· ToFloatDef(DefaultValue: float)
Tries to convert to float, use DefaultValue if not
possible
· ToInteger
Converts to integer
· ToIntegerDef(DefaultValue: integer)
Tries to convert to integer, use DefaultValue if not
possible
· ToLower
Converts to lower case
· ToUpper
Converts to upper case
· Trim
Trim control characters left and right
· TrimLeft
Trim left control characters
· TrimRight
Trim right control characters
199 / 283
HelpNDoc User Manual
· UpperCase
Converts to ASCII upper case
Built-in functions
The following functions are built-in HelpNDoc's script engine and can be used in scripts and
templates.
Function Description
Chr(i: Integer): Char; Returns the character for a specified ASCII value.
200 / 283
HelpNDoc User Manual
Format(fmt: string; args array Returns a formatted string assembled from a format
of const): string;
string and an array of arguments.
201 / 283
HelpNDoc User Manual
integer value.
PadLeft(str: string; count: Left-aligns a string into a fixed length text using the
Integer; char: Char = ' '):
character specified.
string;
PadRight(str: string; count: Right-aligns a string into a fixed length text using the
Integer; char: Char = ' '):
character specified.
string;
SameText(str1: string; str2: Compares two strings by ordinal value without case
string): Boolean;
sensitivity.
TrimLeft(str: string): string; Removes blank and control characters from the left
side of a string.
202 / 283
HelpNDoc User Manual
TrimRight(str: string): Removes blank and control characters from the right
string;
side of a string.
Trim(str: string): string; Removes blank and control characters from both
sides of a string.
The HelpNDoc API is based on the Pascal programming language. The following list describes the
methods available via the HelpNDoc API. As an example for the ClearDictionaries method,
it can be used as follows: HndDictionaries.ClearDictionaries();
203 / 283
HelpNDoc User Manual
• HndProjectsEx - Additional properties existing node and makes the new node
• HndProjectsMeta - Access to project meta to the existing node and makes the new
204 / 283
HelpNDoc User Manual
relationship between topics and existing node and makes the new node
• HndTopicsTags - Handle relationship node to the existing node and makes the
Var HndUtils
205 / 283
HelpNDoc User Manual
Type THndBuildInfo
• Id: string;
Unique identifier of the build.
• Kind: string;
Kind of the build: code, chm, epub, html, kindle, pdf, qthelp, word
• Name: string;
Name of the build.
• Enabled: Boolean;
Is the build enabled ?
• Order: Integer;
Order of the build in the list. Greater will be built later.
• Output: string;
Output path of the build.
206 / 283
HelpNDoc User Manual
• Template: string;
Template name used for this build.
Type THndBuildInfoArray
Array of THndBuildInfo
Var HndBuilds
Returns the first build with the specified name. This method is case-insensitive.
• procedure MoveBuildAfter(const aBuildId: string; const
aAfterBuildId: string);
Move a build after another one.
• procedure MoveBuildBefore(const aBuildId: string; const
aBeforeBuildId: string);
Move a build before another one.
• procedure MoveBuildFirst(const aBuildId: string);
Move a build first in the list.
• procedure MoveBuildLast(const aBuildId: string);
Move a build last in the list.
• procedure SetBuildEnabled(const aBuildId: string; const
aIsEnabled: Boolean);
Set the enabled state for a build.
• procedure SetBuildKind(const aBuildId: string; const aBuildKind:
string);
Sets the kind of the build (CHM, HTML...).
• procedure SetBuildName(const aBuildId: string; const aName:
string);
Set the name of a specific build.
• procedure SetBuildOutput(const aBuildId: string; const aOutput:
string);
Set the output path/file of a build.
• procedure SetBuildTemplate(const aBuildId: string; const
aTemplateName: string);
Set the template used by this build.
Var HndBuildsEx
208 / 283
HelpNDoc User Manual
Type THndBuildActionInstanceInfo
• id: string;
• name: string;
• description: string;
• actiontype: string;
• content: string;
• kind: Integer;
• enabled: Boolean;
• order: Integer;
Type THndBuildActionInstanceInfoArray
Var HndBuildsActions
209 / 283
HelpNDoc User Manual
210 / 283
HelpNDoc User Manual
Type PHndBuildLibraryOverrideInfo
Pointer to THndBuildLibraryOverrideInfo
Type THndBuildLibraryOverrideInfo
• idBuild: string;
• idLibraryItem: string;
• isEnabled: Boolean;
• Properties: string;
Type THndBuildLibraryOverrideInfoArray
Array of THndBuildLibraryOverrideInfo
Var HndBuildsLibraryOverrides
211 / 283
HelpNDoc User Manual
Var HndBuildsMeta
Var HndBuildsMetaEx
212 / 283
HelpNDoc User Manual
string;
Return the CHM button visibility as an hexadecimal string.
• function GetChmNavigationPaneStyleHex(const aBuildId: string):
string;
Returns the CHM navigation pane style as an Hexadecimal string.
• function GetProjectDateTimeFormatOverrides(const aBuildId: string;
const doIncludeDefaultProjectFormat: Boolean):
THndProjectDateTimeFormat;
Returns overriden project date / time formats
• function GetProjectSettingsOverrides(const aBuildId: string; const
doIncludeDefaultProjectSettings: Boolean): THndProjectSettings;
Get project settings overrides for the specified build
• procedure ResetProjectDateTimeFormatOverrides(const aBuildId:
string);
Reset project date/time overrides for the specified build
• procedure ResetProjectSettingsOverrides(const aBuildId: string);
Reset project settings overrides for the specified build
• procedure SetProjectDateTimeOverrides(const aBuildId: string;
const aDateTimeFormat: THndProjectDateTimeFormat);
Set the project date time overrides for the specified build
• procedure SetProjectSettingsOverrides(const aBuildId: string;
const aProjectSettings: THndProjectSettings);
Set project settings overrides for the specified build
Var HndBuildsStatus
213 / 283
HelpNDoc User Manual
Var HndBuildsStatusEx
Type THndBuildStyleInfo
• Name: string;
• Enabled: Boolean;
• Content: string;
Type THndBuildStyleInfoArray
Var HndBuildsStyles
214 / 283
HelpNDoc User Manual
Var HndBuildsTags
Var HndBuildsTagsEx
215 / 283
HelpNDoc User Manual
Returns true if a topic can be included in the specified build (including correct build tags).
Type THndDictionaryInfo
• name: string;
• description: string;
• author: string;
• updated: TDate;
• localeid: Cardinal;
• dictionaryfile: string;
• grammarfile: string;
• active: Boolean;
Type THndDictionaryInfoArray
Array of THndDictionaryInfo
Var HndDictionaries
• procedure ClearDictionaries;
Clears the loaded dictionaries list and disable the spell checker component.
• procedure DisableAllDictionaries;
Disable all the dictionaries.
• function EnableDictionaries(const aLocalIdList: TStringList; const
DisabledOthers: Boolean): Boolean;
Enable a list of dictionaries. Disable the other ones if needed.
• function EnableDictionary(const aLocaleId: Cardinal; const
DisabledOthers: Boolean): Boolean;
Enable the specific dictionary and disables others if asked.
• function GetActiveDictionariesCount: Integer;
Returns the number of currently active dictionaries.
• function GetActiveDictionariesList: THndDictionaryInfoArray;
Returns the list of currently active dictionaries.
• function GetDictionariesCount: Integer;
Get the number of dictionaries.
• function GetDictionariesList: THndDictionaryInfoArray;
Get a list of dictionaries.
• function GetDictionaryInfo(const aLocalId: Cardinal):
THndDictionaryInfo;
Returns information about the specific locale.
216 / 283
HelpNDoc User Manual
Type THndCaretMovement
Caret movement
• hcmUp
• hcmDown
• hcmLeft
• hcmRight
• hcmTop
• hcmBottom
• hcmHome
• hcmEnd
• hcmParaBeginning
• hcmNextParaBeginning
Type THndVAlign
• hndVaBaseline
• hndVaMiddle
• hndVaAbsTop
• hndVaAbsBottom
• hndVaAbsMiddle
• hndVaLeft
• hndVaRight
Type THndHVAlignment
• hndHVaTopLeft
217 / 283
HelpNDoc User Manual
• hndHVaTopCenter
• hndHVaTopRight
• hndHVaCenterLeft
• hndHVaCenter
• hndHVaCenterRight
• hndHVaBottomLeft
• hndHVaBottomCenter
• hndHVaBottomRight
Type THndHyperlinkKind
Kind of hyperlink
• hlkTopic
• hlkNavigation
• hlkInternetMail
• hlkFile
• hlkCounter
Type THndHyperlinkInfo
• Kind: THndHyperlinkKind;
• Param1: string;
• Param2: string;
• Param3: string;
• Initialize(out Dest: THndHyperlinkInfo);
Var HndEditor
218 / 283
HelpNDoc User Manual
Convert the currently selected content to a snippet and return it ID. Replace the selection by
the snippet if doReplaceSelection is True
• function CreateTemporaryEditor: TObject;
Creates a new temporary editor.
• function CreateTemporaryReportHelper: TObject;
Create a new temporary report helper.
• function CreateTemporaryViewer: TObject;
Creates a new temporary viewer.
• procedure DestroyTemporaryEditor(const anEditor: TObject);
Destroys a previously created temporary editor.
• procedure DestroyTemporaryReportHelper(const aReportHelper:
TObject);
Destroys a previously created temporary report helper.
• procedure DestroyTemporaryViewer(const aViewer: TObject);
Destroys a previously created temporary viewer.
• function GetAnchorList(const anEditor: TObject): TStringList;
Retrieves the list of anchors in the specified editor.
• function GetContentAsHtml(const anEditor: TObject; out
aCssContent: string): string;
Returns the editor content as HTML.
• procedure GetContentAsStream(const anEditor: TObject; aStream:
TMemoryStream);
Returns the editor content as Stream.
• function GetContentAsText(const anEditor: TObject): string;
Returns the editor content as text.
• function GetCurrentAnchorName(const anEditor: TObject): string;
Returns the name of the current checkpoint or an empty string if there isn't any.
• function GetCurrentItem(const anEditor: TObject): TObject;
Returns the currently selected item.
• function GetCurrentPictureAltText(const anEditor: TObject):
string;
Return the currently selected picture's alternative text.
• function GetCurrentPictureBackColor(const anEditor: TObject):
TColor;
Returns the background color of the currently selected picture.
• function GetCurrentPictureHeight(const anEditor: TObject; const
DoConvertTo96Dpi: Boolean): Integer;
Returns the currently selected picture's height.
• function GetCurrentPictureMarginLeftRight(const anEditor:
TObject): Integer;
219 / 283
HelpNDoc User Manual
220 / 283
HelpNDoc User Manual
221 / 283
HelpNDoc User Manual
Var HndEditorHelper
222 / 283
HelpNDoc User Manual
THndHyperlinkInfo;
Extract the hyperlink information from a string.
• procedure GetHyperlinkTargetExtraFromString(const aString: string;
var Target: string; var Extras: string);
Returns the Target and Extra values from hyperlink data.
• procedure ImportImagesToLibrary(const anEditor: TObject);
Import the images to library.
• procedure ReplaceAnchorsToLowercase(const anEditor: TObject);
Modify all anchors to lowercase.
• procedure ScrollToSelection(const anEditor: TObject);
Scrolls to make selection visible
• function SetHyperlinkInfoToString(const anHyperLinkInfo:
THndHyperlinkInfo): string;
Constructs a string based in hyperlink info.
• procedure SetupEditorProperties(const anEditor: TObject);
Defines default editor properties and events.
Type THndGeneratorInfo
• BOMOutput: Boolean;
Add BOM to currently generated file
• ForceOutputEncoding: Boolean;
Force output encoding for the currently generated file
• HelpNDocVersion: string;
Current HelpNDoc version
• OutputDir: string;
Output directory of the current generator
• OutputFile: string;
Output file name for the current generator
• function GetAssetsList: TStringDynArray;
Returns a list of template assets
• function GetCustomSettingValue(const aCustomSetting: string):
Variant;
Returns the user-defined value of a custom setting.
• function GetGeneratedFiles: TStringDynArray;
List of files that have been generated so far.
• property CurrentBuildId: string;
Current build Id being executed.
• property CurrentFile: string;
223 / 283
HelpNDoc User Manual
Var HndJsSearchEngine
Type THndKeywordsAttachMode
Specify how the moved keyword will be attached: - hkamAdd: Adds a node at the same level as
the existing node. - hkamAddChild: Adds a child node to the existing node.
• hkamAdd
• hkamAddFirst
• hkamAddChild
• hkamAddChildFirst
• hkamInsert
Type THndKeywordsInfo
• Id: string;
• Caption: string;
224 / 283
HelpNDoc User Manual
• ParentId: string;
Type THndKeywordsInfoArray
Var HndKeywords
string;
Get the previous sibling keyword.
• function GetProjectKeyword: string;
Returns the root project keyword.
• function MoveKeyword(const aKeywordId: string; const
aReferencedKeywordId: string; const oAttachMode:
THndKeywordsAttachMode): Boolean;
Move the keyword to a new position in reference to nReferencedKeywordsId.
• function MoveKeywordLeft(const aKeywordId: string): Boolean;
Move the specific keyword left in the hierarchy.
• function MoveKeywordRight(const aKeywordId: string): Boolean;
Move the specific keyword right in the hierarchy.
• function SetKeywordCaption(const aKeywordId: string; const
sNewCaption: string): string;
Defines the specific keyword' caption.
Var HndKeywordsMeta
Type THndLibraryItemAttachMode
Specify how the moved library item will be attached: - hlamAdd: Adds a node at the same level as
the existing node and makes the new node last. - hlamAddFirst: Adds a node at the same level as
the existing node and makes the new node first. - hlamAddChild: Adds a child node to the existing
node and makes the new node last. - hlamAddChildFirst: Adds a child node to the existing node
and makes the new node first. - hlamInsert: Inserts a node at the same level just before the
existing node.
• hlamAdd
• hlamAddFirst
• hlamAddChild
• hlamAddChildFirst
• hlamInsert
Type THndLibraryItemsInfo
• Id: string;
• Caption: string;
• Extension: string;
• Kind: Integer;
226 / 283
HelpNDoc User Manual
• Source: Integer;
Type THndLibraryItemsInfoArray
Var HndLibraryItems
227 / 283
HelpNDoc User Manual
TMemoryStream;
Get the source content of the item as a stream. Caller must free the stream after using it.
• function GetItemSourceContentChecksum(const anItemId: string):
string;
Returns the checksum (MD5) of a library item's source content. Useful for comparison
purposes.
• function GetItemsWithSameContent(const anItemId: string; const
aFilteredItems: array of string): THndLibraryItemsInfoArray;
Returns the items with the same content as the specified one.
• function GetItemUrlFile(const anItemId: string): string;
Gets the URL File of a specified library item.
• function GetItemUrlFileAbsolute(const anItemId: string): string;
Gets the URL of a specified library item: use project path if relative.
• function GetItemUrlLink(const anItemId: string): string;
Gets the URL Link of a specified library item.
• function GetProjectItem: string;
Returns the root project library item.
• function MoveItem(const anItemId: string; const aReferencedItemId:
string; const oAttachMode: THndLibraryItemAttachMode): Boolean;
Move the library item to a new position in reference to aReferencedItemId.
• function SetItemCaption(const anItemId: string; const aCaption:
string): string;
Sets the caption of a specific item.
• function SetItemContent(const anItemId: string; const aContent:
TStream): Boolean;
Sets the content stream of a specified item.
• function SetItemContentFromBytes(const anItemId: string; const
aContent: TBytes): Boolean;
Sets the content of the item from an array of Bytes.
• function SetItemContentFromFile(const anItemId: string; const
aContentFile: string): Boolean;
Set the content of the item from an existing file.
• function SetItemContentFromText(const anItemId: string; const
aContentText: string): Boolean;
Sets the content as text of a specific item.
• function SetItemExtension(const anItemId: string; const
anExtension: string): Boolean;
Set the item's file extension.
• function SetItemKind(const anItemId: string; const aKind:
Integer): Boolean;
Sets the kind of a specific item. See GetItemKind for kind value
228 / 283
HelpNDoc User Manual
Var HndLibraryItemsEx
Var HndLibraryItemsMeta
Type THndProjectSettings
• Title: string;
• Author: string;
• DefaultTopic: string;
• Version: string;
• Copyright: string;
• Summary: string;
• Comment: string;
• Language: Integer;
• Charset: Integer;
Var HndProjects
229 / 283
HelpNDoc User Manual
230 / 283
HelpNDoc User Manual
231 / 283
HelpNDoc User Manual
Var HndProjectsEx
Type THndProjectDateTimeFormat
• CurrentDateTime: string;
• Date: string;
• DateLong: string;
• Day: string;
• DayLong: string;
• Month: string;
• MonthLong: string;
• Time: string;
• TimeLong: string;
232 / 283
HelpNDoc User Manual
• Year: string;
• YearLong: string;
Var HndProjectsMeta
Var HndProjectsMetaEx
Var HndSecrets
Type THndStatusInfo
• Id: string;
• Caption: string;
• Color: TColor;
• Order: Integer;
Type THndStatusInfoArray
Array of THndStatusInfo
Var HndStatus
233 / 283
HelpNDoc User Manual
234 / 283
HelpNDoc User Manual
Var HndTags
Var HndTemplates
235 / 283
HelpNDoc User Manual
Var HndTemplatesEx
Type THndTopicsAttachMode
Specify how the moved topic will be attached: - htamAdd: Adds a node at the same level as the
existing node and makes the new node last. - htamAddFirst: Adds a node at the same level as the
existing node and makes the new node first. - htamAddChild: Adds a child node to the existing
node and makes the new node last. - htamAddChildFirst: Adds a child node to the existing node
and makes the new node first. - htamInsert: Inserts a node at the same level just before the
existing node.
• htamAdd
• htamAddFirst
• htamAddChild
• htamAddChildFirst
• htamInsert
Var HndTopics
236 / 283
HelpNDoc User Manual
Create a new topic. The topic will be placed at the bottom of the topic list.
• procedure DeleteAllTopics;
Delete all the topics in the project, except the parent topic.
• function DeleteTopic(const aTopicId: string): Boolean;
Delete a specific topic and its children. Project topic can't be deleted.
• function GenerateUniqueHelpContext(const aBaseHelpContext:
Integer; const aFilteredTopics: array of string): Integer;
Generates a unique help context among all the topics except the filtered ones.
• function GenerateUniqueHelpId(const aBaseHelpId: string; const
aFilteredTopics: array of string): string;
Generates a unique help id among all the topics except the filtered ones.
• function GetCurrentTopic: string;
Returns the ID of the currently edited topic.
• function GetProjectTopic: string;
Returns the root project topic.
• function GetTopicCaption(const aTopicId: string): string;
Get the caption of a specific topic.
• function GetTopicContent(const aTopicId: string): TMemoryStream;
Returns the content of the specified topic.
• function GetTopicContentChecksum(const aTopicId: string): string;
Returns the checksum (MD5) of a topic's content. Useful for comparison purposes.
• function GetTopicContentAsHtml(const aTopicId: string): string;
Get the topic's content as HTML. Only available when generating an HTML related
documentation.
• function GetTopicCount: Integer;
Returns the number of topics available in the current project.
• function GetTopicCreationDateTime(const aTopicId: string):
TDateTime;
Returns the date and time when the topics was created.
• function GetTopicDescription(const aTopicId: string): string;
Returns the description of the topic
• function GetTopicDirectChildrenCount(const aParentId: string):
Integer;
Returns the number of direct children a topic has.
• function GetTopicDirectChildrenList(const aParentId: string):
THndTopicsInfoArray;
Returns a list of direct children of the specified topic.
• function GetTopicFirst: string;
Returns the first topic in the project.
• function GetTopicFooterKind(const aTopicId: string): Integer;
237 / 283
HelpNDoc User Manual
238 / 283
HelpNDoc User Manual
239 / 283
HelpNDoc User Manual
240 / 283
HelpNDoc User Manual
string);
Set the topic's URL link.
• procedure SetTopicVisibility(const aTopicId: string; const
aVisibility: Integer);
Set the visibility for the topic
Var HndTopicsEx
241 / 283
HelpNDoc User Manual
Var HndTopicsKeywords
Var HndTopicsKeywordsEx
242 / 283
HelpNDoc User Manual
Additional properties and methods to handle relationship between topics and keywords
Var HndTopicsMeta
Type THndTopicsPropertyInfo
• key: string;
• value: string;
• topicid: string;
Type THndTopicsPropertyInfoArray
Array of THndTopicsPropertyInfo
Var HndTopicsProperties
243 / 283
HelpNDoc User Manual
Var HndTopicsTags
Type TUIControlType
Type THndSelectedExecMethod
Method run for each selected node. Return True to break the loop: function(aSelectedId: string):
Boolean;
Var HndUI
244 / 283
HelpNDoc User Manual
245 / 283
HelpNDoc User Manual
Select the specified topic in the UI and show the checkpoint specified.
• function SetCurrentTopicByHelpContext(const aHelpContext:
Integer): Boolean;
Select the topic with the specified help context
• function SetCurrentTopicByHelpId(const aHelpId: string): Boolean;
Select the topic with the specified help ID
The HelpNDoc API evolves from time to time and this requires an update of older scripts and
templates.
The following topics explain the changes required for each new versions of HelpNDoc:
HelpNDoc version 5 includes several modifications to scripting methods. The following list helps
migrate scripts (and templates) from earlier versions of HelpNDoc.
HndBuildsEx.GetChmButtonVi HndBuildsMetaEx.GetChmButtonVisibi
sibilityHex lityHex
HndBuildsEx.GetChmNavigati HndBuildsMetaEx.GetChmNavigationP
onPaneStyleHex aneStyleHex
HndTopics.GetTopicDirectChil HndTopicsEx.GetTopicDirectChildrenC
drenCountVisible ountGenerated
246 / 283
HelpNDoc User Manual
HndTopics.GetTopicDirectChil HndTopicsEx.GetTopicDirectChildrenLi
drenListVisible stGenerated
HndTopics.GetTopicIsVisible HndTopicsEx.GetTopicIsGenerated
HndTopics.GetTopicListVisible HndTopicsEx.GetTopicListGenerated
HndTopics.GetTopicNextVisibl
HndTopicsEx.GetTopicNextGenerated
e
HndTopics.GetTopicNextSibbil HndTopicsEx.GetTopicNextSibblingGe
ingVisible nerated
HndTopics.GetTopicPreviousVi HndTopicsEx.GetTopicPreviousGenerat
sible ed
HndTopics.GetTopicPreviousSi HndTopicsEx.GetTopicPreviousSibblin
bbilingVisible gGenerated
247 / 283
HelpNDoc User Manual
The following modifications where made between HelpNDoc 5.0 to HelpNDoc 5.1. If upgrading
from an earlier version, other modifications need to be applied: Migrating scripts from V4 to V5
HelpNDoc 7.0 introduces a completely new script engine. It is still based on the Pascal language
but some differences with previous versions are listed bellow. If upgrading from an earlier version,
other modifications need to be applied: Migrating scripts and templates
248 / 283
HelpNDoc User Manual
Most web-browsers won't allow the HTML documentation generated by HelpNDoc to run on the
249 / 283
HelpNDoc User Manual
local computer due to security restrictions. That's why HelpNDoc includes a full featured web
server to work around this limitation: local HTML documentation generated by HelpNDoc can be
tested as if it was uploaded to a real web server.
Once the HTML documentation generation process finishes, HelpNDoc will provide multiple. Using
the "Launch web server" option will immediately start the integrated web server with the correct
options, and launch the default web browser at the required URL to display the newly generated
documentation for testing purposes.
· Click the arrow of the "Launch web server" button to display a list of recently served folders
and files
· Click one of those items to serve it again
It might be useful to serve specific files or directories using HelpNDoc's built-in web server. This
can be achieved as follows:
250 / 283
HelpNDoc User Manual
· Click the top part (without the arrow) of the "Launch web server" button to display the server
configuration window
· Customize the web server's options (see bellow) and hit the "Launch" button to start the web
server
· File or directory: what file or directory will be served. If a file is chosen, the root of the server
will be the directory where that file is placed
· Port to listen to: which port will be used by the web server to listen to incoming connections
· Launch web-browser: whether the default web-browser will be launched at the correct URL
when the server is started
Note: An authentication token must be obtained from OpenAI and entered in HelpNDoc's
options. Using this service might incur additional fees depending on the nature and volume of its
usage.
251 / 283
HelpNDoc User Manual
The AI Assistant user interface is similar to standard conversational interfaces such as ChatGPT's. It
includes the following elements:
2. If content is select within the topic editor before the AI Assistant is open, it will appear under
the "HelpNDoc" prompt
252 / 283
HelpNDoc User Manual
Content revision Improve the clarity, grammar, and Review this draft about
network security protocols
style of existing documents. The
and suggest improvements for
Assistant provides suggestions to clarity, accuracy, and
refine and polish content, ensuring it readability.
meets professional standards and is
easy to understand.
Translation and Translate documentation into multiple Translate this content from
English to Spanish, ensuring
localization languages. The AI Assistant supports
it is culturally appropriate
various languages, making it easier to and easy to understand for a
localize content and reach a global Latin American audience.
audience.
253 / 283
HelpNDoc User Manual
Topic structure Automatically analyzes and suggests Assess the structure of this
technical report on renewable
analysis improvements to the overall structure
energy systems and recommend
of topics, ensuring logical flow and a more coherent flow of
coherence. This feature helps topics.
particularly with large topics or when
reorganizing sections.
Legal and Scan content for potential legal and Review this employee handbook
for any potential legal
compliance compliance issues, suggesting edits
issues or non-compliance with
checking to align with industry regulations or labor laws.
legal standards, particularly useful for
contracts and policy documents.
Backing up projects
It is very important to make frequent backup of HelpNDoc projects (as well as any important data)
to be able to recover a previous version in case of a software or hardware failure. HelpNDoc
includes a handy backup action:
3. Check the proposed backup location and file name and click "Save"
Documentation formats can be very different from one another. The following topics explain some
documentation format's specific information:
· CHM files and programming languages : How to open CHM help files using various
programming languages ;
· HTML help URL parameters : How to customize the HTML help via URL parameters ;
254 / 283
HelpNDoc User Manual
· Context sensitive HTML help : How to open specific HTML documentation topics ;
HelpNDoc generates standard Windows CHM help files which can be opened from any Windows
application. The following section explains how to open CHM help files using various
programming languages. This includes:
· Java integration
· WinDev integration
Delphi integration
Older versions of Delphi requires a dedicate unit. See: Older versions of Delphi
Opening a CHM help file from a program built using and older version
of Delphi
Courtesy of The Helpware Group, the Delphi HH Kit is a free download for Delphi 2/3/4/5/6/7... It
consists of two units and a document file. The first unit is a port of the C++ header file
"HtmlHelp.h". The second one is a library of HTML help related functions. Two versions exists
based on the Delphi compiler capabilities:
255 / 283
HelpNDoc User Manual
Java integration
· help.chm: This is the CHM help file you would like to open
256 / 283
HelpNDoc User Manual
WinDev integration
WHelp(<NameOfHelpFile> [, <HelpId>])
WHelp(<NameOfHelpFile> , <HelpContextNumber>)
Where:
See the How to manage your topic identifiers in HelpNDoc step-by-step guide.
It is possible to customize the behavior of the HTML documentation format through its
parameters.
257 / 283
HelpNDoc User Manual
Example:
https://www.MY-SERVER.com/index.html?tab=index
Example:
https://www.MY-SERVER.com/index.html?search=help
https://www.MY-SERVER.com/index.html?tab=search&search=help
HelpNDoc's generated HTML documentation can be used as a context sensitive help source by
using either a topic's Help ID or Help Context number
Where:
Help IDs are unique topics identifiers (alpha-numeric) which you can customize. Learn more on
258 / 283
HelpNDoc User Manual
Where:
Help context numbers are unique topics identifiers (numeric) which you can customize. Learn more
on how to get and define topic's Help Ids.
See the How to manage your topic identifiers in HelpNDoc step-by-step guide.
Once you've purchased the full version of HelpNDoc, you need to activate it using a license key.
How this is done depends on the licenses you've purchased:
· Named licenses
· Floating licenses
Named licenses
Named licenses can only be used by one specific person and installed on her own computer. To
validate the correct use of the license, HelpNDoc needs to be activated on the computer where it
will be used. To activate HelpNDoc, simply enter the license key you've retrieved from the
customer's section.
Warning: Activating HelpNDoc requires an Internet access to connect to the license server. Once
activated, HelpNDoc will check the license server from time to time (usually, every 90 days). If it
can't connect to the license server, it will keep working for a certain period of time (usually, 14
days). Once this period is over, it won't run anymore and will require access to the license server.
See Grace period topic for more information.
259 / 283
HelpNDoc User Manual
Grace period
Once an instance of HelpNDoc is activated, it will connect to the license server from time to time
(usually, every 90 days) to check that the license is still valid. If it can't connect to the license server,
it will keep working for a certain period of time, the grace period (usually, 14 days).
To fix that, make sure that the computer running HelpNDoc is connected to the Internet and that
the following web sites are accessible and white-listed on your router / proxy / firewall:
260 / 283
HelpNDoc User Manual
Floating licenses
Floating licenses can be shared between anyone within a company, with the limit of one person
per purchased license using it at the same time.
· How to install and activate the floating license server to learn how to install the floating license
server and activate it using your license key
· How to connect HelpNDoc to the floating license server to learn how to connect to the
floating license server from an instance of HelpNDoc
Warning: Activating the floating license server requires an Internet access to connect to the license
server. Once activated, the floating license server will check the license server from time to time. If
it can't connect to the license server, it will keep working for a certain period of time (configurable
with a maximum of 90 days). Once this period is over, it won't run anymore and will require access
to the license server.
If an online activation is not possible, it is possible to proceed with an offline activation by
exchanging XML activation files with HelpNDoc's support team.
The HelpNDoc software (the client) will only need to connect to the floating license server, it won't
need to be connected to the Internet.
261 / 283
HelpNDoc User Manual
possible:
This configuration will be saved for later use. If for some reason the server is not accessible,
HelpNDoc will display a message with options to try again or change the server address or port:
Once connected to the server, it is possible that all leases are already taken: if for example you
have purchased 3 floating licenses of HelpNDoc and you are trying to launch a 4th instance. When
that happens, an error message will be shown. You'll need to close another instance of HelpNDoc
or purchase additional floating licenses to launch another instance of HelpNDoc:
262 / 283
HelpNDoc User Manual
Troubleshooting
· Check the floating license server's status: Check if the floating license server is activated and
running
· Check that the floating license server is listening to incoming connections: Make sure that the
floating license server is running and listening to connections
· Check the connection to the server from HelpNDoc: Make sure that HelpNDoc can connect to
the floating license server
· How to handle dead leases: Deal with leases which haven't been correctly released
· Listen to HTTPS communication: Run the floating license server behind an HTTPS server
· Deactivating the floating license server: Deactivate a previously activated computer to activate
a new one
Before running and listening to incoming connections, the floating license server needs to be
activated with your license key using the following command:
Where:
Here are some errors which could occur during the activation process:
Error Explanation
263 / 283
HelpNDoc User Manual
Failed to activate. Make sure that the server is connected to the Internet and that the
Connection to the following domains are accessible from your server (e.g. white-listed on
activation servers failed. your Firewall / Proxy) for both HTTP and HTTPS protocols: wyday.com ;
limelm.com ; ibe-software.com.
If you are behind a proxy, make sure that the proxy address is correctly
specified in the TurboFloatServer-config.xml file.
If an online activation is not possible, proceed with an offline activation.
Failed to activate. The A floating license key can only be activated on one computer. To
product key has already activate the floating license server on another computer, the previously
been activated on the activated computer needs to be deactivated first.
maximum number of
computers.
To check the floating license server's status, type the following command line:
· On Windows:
o .\TurboFloatServer.exe -v
· On Linux:
o sudo ./turbofloatserver -v
· Server activated and running: "This floating license server instance is presumably activated.
However, details about the activation cannot be displayed while the instance is running."
· Server activated but NOT running : "This floating license server instance is currently activated
(with this product key: ABCD-EFGH-IJKL-MNOP-QRST-UVWX-YZ12) and will automatically re-
verify its license in 90 days."
· Server not activated: "This floating license server instance is not activated."
· From the Windows Start menu, type "resmon" without the quotes, right click on the "resmon"
best match and click "Run as administrator"
264 / 283
HelpNDoc User Manual
· Locate the "TurboFloatServer.exe" item and check that it is listening twice (IPv4 and IPv6) to the
correct port (13), and that the "Firewall Status" column indicates "Allowed, not restricted"
Where:
· PORT_NUMBER is the port the server should be listening to. It is “13” by default, and can be
changed from the “TurboFloatServer-config.xml” file
When the floating license server is running correctly, we should be able to launch HelpNDoc, enter
the server's address and port, and start using it.
If that doesn't work, it means that the computer where HelpNDoc is installed can't reach the
floating license server. This could be caused by a software and/or hardware firewall on the server,
the network infrastructure or the client. We recommend that you contact your IT team to get help
with your specific network infrastructure.
You can also test the connection to the floating license server using the following PowerShell
command line:
Where:
· PORT_NUMBER is the port used by the floating license server to listen to incoming
connections. It is “13” by default and can be changed from the floating license server's
“TurboFloatServer-config.xml” file
265 / 283
HelpNDoc User Manual
If for some reason an instance of HelpNDoc crashes without releasing its lease, the license server
will think that the lease is still in use and will now issue another lease when requested: this could
lead to an error message indicating that "There are no more free leases available from the floating
license server".
Leases are usually updated every 30 minutes (configurable on the server side) and dead leases will
be eliminated then. If that happens often due to hardware or software failure, it is possible to
speed up the process by lowering the lease time from the server. See the <lease
length="1800"/> option from the floating license server's manual to learn more.
In addition to (or in place of) the default "raw" binary communication over the port you specified
in the "bind" element, you can configure the floating license server to communicate over HTTPS.
You can do this by "binding" the floating license server to an address and port for SCGI
communication with an existing web server (e.g. Apache, NGINX, etc.).
This guide covers the very basics of the HTTPS server configuration. We assume you have
experience running an HTTPS server.
<scgi just_scgi="false">
<bind address="127.0.0.1" port="42"/>
</scgi>
1. The "just_scgi" attribute: Set this to "false" and raw, unencrypted connections will still be
allowed. Set this to "true" and only connections over SCGI (via an HTTPS server) will be accepted
and the global bind element will be ignored.
2. The "address" attribute in the "bind" element : Set this to the address you want the HTTPS
server that sits in front of the floating license server to connect to.
If the address is not present, the server accepts TCP / IP connections on all server host IPv6 and
IPv4 interfaces if the server host supports IPv6, or accepts TCP / IP connections on all IPv4
addresses otherwise. Use this address to permit both IPv4 and IPv6 connections on all server
266 / 283
HelpNDoc User Manual
If the address is ::, the server accepts TCP/IP connections on all server host IPv4 and IPv6
interfaces.
If the address is 0.0.0.0, the server accepts TCP/IP connections on all server host IPv4 interfaces.
If the address is a "regular" IPv4 or IPv6 address (such as 127.0.0.1 or ::1), the server accepts
TCP/IP connections only for that IPv4 or IPv6 address.
3. The "port" attribute in the "bind" element : Set this to the port you want the HTTPS server
that sits in front of the floating license server to connect to.
For security sake, we recommend always bind to a local address (like "127.0.0.1") so that all data
that touches the floating license server must first go through an HTTPS server.
Next add a "VirtualHost" element that will accept HTTP connections and pass them along to the
floating license server:
<VirtualHost yourhostaddress:443>
# Pass *everything* to the floating license server via SCGI
SetEnvIf Request_URI .* proxy-scgi-pathinfo
ProxyPass / scgi://127.0.0.1:42/
# Turn SSL on
SSLEngine on
</VirtualHost>
Replace "yourhostaddress" with the address name that the floating license server instance will be
267 / 283
HelpNDoc User Manual
accessed from (i.e. the "public" address -- even if that "public" address is local network specific).
Also, if you changed the SCGI "address" or "port" in the "TurboFloatServer-config.xml" file you'll
also need to change the "ProxyPass" directive to use the address and port you changed them to.
If you don't see "--without-http_scgi_module" in the "configure arguments", then you know the
NGINX instance was compiled with the SCGI module. It's compiled by default, so it should be
available in every vanilla distribution of NGINX.
Next, modify your "nginx.conf" file to pass all communication to the address / port of your
choosing to the floating license server instance via SCGI:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name yourhostaddress;
# Maximum "request" size (i.e. max size the client sends us)
client_max_body_size 10m;
268 / 283
HelpNDoc User Manual
Replace "yourhostaddress" with the address name that the floating license server instance will be
accessed from (i.e. the "public" address -- even if that "public" address is local network specific).
Also, if you changed the SCGI "address" or "port" in the "TurboFloatServer-config.xml" file you'll
also need to change the "scgi_pass" directive to use the address and port you changed them to.
Test and fix access to the floating license server over HTTPS
After configuring the floating license server, then configuring the HTTPS server, start both of them
up. If either one fails to start, read the error log and fix whatever problems are described. Once
both are successfully started, you're ready to test if the floating license server is accessible via
HTTPS. You can do this by opening a browser on your computer and typing the host address
you've configured in your HTTPS server configuration.
So, in this example, "yourhostaddress" is the address that the HTTPS server is accessible from.
Type, "https://yourhostaddress" into your browser, and if you've configured everything correctly
(and both the floating license server and your HTTPS server are running) then this page should
show:
If you see a certificate error page, then make sure you're using SSL certificates signed by a
Certificate Authority. There are multiple options available, such asthe free Let's Encrypt certificate
authority.
To move the floating license server from one computer to another, it needs to be deactivated from
269 / 283
HelpNDoc User Manual
the first computer before it can be activated on the second computer. To deactivate the floating
license server instance, use the "-deact" command line switch:
This will proceed with an online deactivation: it is done instantly but requires a working Internet
connection.
To proceed with an offline deactivation (i.e. generate an offline activation request) then enter a file
path using the "-deact" command line switch:
Then send the generated XML file to our support team at SUPPORT at IBE-SOFTWARE dot COM
(replace at with @ and dot with .) so that we can mark your key as deactivated from that
computer. Once done, you will be able to activate the floating license server on another computer.
Symptoms
When launched, HelpNDoc shows an error message saying that an exception occurred.
270 / 283
HelpNDoc User Manual
Solutions
· Navigate to the main Sticky Password window - Menu - Settings - Ignored Apps and try to
add the executable file of HelpNDoc to the list. Usually, this is "C:\Program Files\IBE
Software\HelpNDoc\HelpNDoc 9\hnd9.exe"
· If it doesn't help, on the same tab in the main Sticky Password window - Menu - Settings -
Ignored Apps, try to disable autofill for the 32bit or the 64bit applications accordingly to the
version of HelpNDoc that you are using.
Message
This project is already opened by another software or instance of HelpNDoc. Please close the
project first.
Explanation
This means that this HelpNDoc projects can't be opened or saved because either:
· Another instance of HelpNDoc has already opened this project without closing it
Solutions
· Try rebooting your computer to make sure that no process is using that file anymore
· Make sure that only one instance of HelpNDoc has this project file opened
· Make sure that no other software has this project file opened
· Make sure that your Windows user has read / write access to that folder and project file
· Try to move the project file to a local simpler path such as c:\doc\doc.hnd to see if that is
working better
271 / 283
HelpNDoc User Manual
Message
This project is too old to be opened with this version of HelpNDoc. Please open it and save it
using HelpNDoc version x.9 to convert it first.
Explanation
The HND project file evolves from time to time in order to be able to support newer features: it is
then automatically migrated to the newer version. However, when a project is too old, some
migrations couldn't be applied and older versions of HelpNDoc need to be temporarily installed in
order to migrate the project first.
Solution
Temporarily download and install older versions of the Free Personal Edition of HelpNDoc to
proceed with the migration.
The following versions are the one we recommend based on the requested migrations:
· Version 4.9.2 for projects created with HelpNDoc 3 and later: https://dl.ibe-
software.com/hnd/helpndoc-setup-4.9.2.132.exe
Notes
· Warning: Make sure that you backup your projects first as it is not possible to go back to an
earlier version otherwise
· Older versions can be installed in their own folder without un-installing newer versions as they
are independent
· Once migration is complete, older versions can simply be un-installed from the computer
Help compilers
HelpNDoc can generate the PDF, Word and HTML documentation by itself. However, to generate a
272 / 283
HelpNDoc User Manual
CHM documentation, you will need to download and install the Microsoft HTML Help Compiler.
Symptoms
When installing the Microsoft HTML Help Compiler on recent operating systems, you can receive a
warning message saying that "This computer already has a newer version of HTML Help".
Solutions
· Discard the message as your system already has a valid and up-to-date help viewer. The
compiler has correctly been installed despite of this message.
Symptoms
When viewing your CHM documentation, Microsoft's HTML Help Viewer is showing an error page
saying either that:
Solutions
· Make sure your help file is not accessed from a network path or via a mapped networked
drive. Try to copy the file locally and launch it again;
· Make sure your help file isn't in a path with symbols such as "#" (sharp). Once again, try to
copy it locally before launching it;
· In some cases, you can have access to an "unblock" button in the properties page of the help
273 / 283
HelpNDoc User Manual
file. Right click on the file then go to its properties and click the "unblock" button. This button
is not available in all systems though.
Symptoms
After an Internet Explorer update, when viewing your CHM documentation, Microsoft's HTML Help
Viewer isn't showing anything in the topic's contents.
Solutions
The update process might have caused problems with some files registration. You can try to
register them manually from the Start / Run prompt by entering each of these commands:
Despite modifying the navigation pane's width the CHM file is not updated
Symptoms
You change the navigation tab's width in the HelpNDoc's projects settings but when opening the
CHM file, nothing has changed.
Solutions
The Microsoft HTML help viewer stores the help window's size and position for each individual
help file as soon as it has been launched. Modifying the help settings after that won't have any
effect as the help viewer will only read local configuration for that help file and ignore the file's
settings set up using HelpNDoc.
A solution would be to erase the help viewer's configuration file, but be warned that this file
contains all the configuration made to all the help files viewed on the system. So deleting this file
will delete the configuration options for all the other files too.
274 / 283
HelpNDoc User Manual
Symptoms
When trying to search within the CHM documentation, no results are found.
Solutions
· In your HelpNDoc project, click "Project options" in the "Home" ribbon tab and make sure the
project language and charset are correct
· Make sure you are using a Windows installation setup with the same language as your
HelpNDoc's project language
· Click the top part of the "Generate Help" button in the "Home" ribbon tab to access the
"Generate documentation" dialog, then select your CHM build in the list on the left, then click
"customize" if the "Template settings" tab is not already visible on the right, then check the
option "Use project charset for topics"
Symptoms
When viewing a local (not uploaded to a server) HTML documentation, Google Chrome will show
an error when trying to search within the documentation.
Solutions
HelpNDoc's HTML documentation generated using the default HTML template uses an AJAX call
to retrieve the search data. This provides faster loading times for the overall documentation.
However, when the HTML documentation is viewed locally, using the file:// protocol, Google
Chrome will not allow the AJAX call.
· To work around this limitation, Chrome can be launched with the "--allow-file-access-from-
files" command line switch. As an example, run:
o chrome.exe --allow-file-access-from-files
· Another possible solution is to serve the local documentation via a server such as Apache or
IIS, and therefore viewing your documentation using the http:// protocol. Google Chrome
won't have the same restriction in that particular case.
275 / 283
HelpNDoc User Manual
Symptoms
We are hosting our HTML documentation produced by HelpNDoc on the CloudFlare CDN but it
appears broken with various JavaScript errors.
Solutions
CloudFlare's Rocket Loader technology rewrites part of your HTML to provide faster loading which
can break some JavaScript. The solutions are:
· Turn off Rocker Loader in the Performance Settings of CloudFlare. See: Why is JavaScript or
jQuery not working on my site?
· Write a custom HTML template and disable Rocket Loader for some scripts. See: How can I
have Rocket Loader ignore my script(s) in Automatic Mode?
Missing files when generating a CHM file in the same directory as HTML
Symptoms
Your project contains an HTML build which is followed by a CHM build and while the CHM build is
fine, the HTML one is missing files such as topics, library items...
Solutions
This is due to the fact that most of the temporary files generated by the CHM build overwrite
existing files generated by the HTML build. And by default, the CHM build will delete those
temporary files after successful generation: the HTML build is therefore missing some files.
The best solution is to generate each build into its own specific folder to avoid such unwanted
interactions.
Symptoms
The HTML documentation is not correctly loaded or its behavior is chaotic.
Solutions
HelpNDoc's responsive HTML 5 template uses advanced techniques to provide a greater user
experience and lower download sizes. See: https://www.helpndoc.com/feature-tour/produce-html-
276 / 283
HelpNDoc User Manual
websites
Unfortunately, most web-browsers won't allow this code to run on local HTML files (using the
file:// protocol) due to security restrictions. That won't happen when the HTML documentation is
uploaded to a web server and viewed using the http:// or https:// protocols. And that's why we
included a local HTTP web server: HTML documentation can be tested locally as web browsers are
tricked into thinking it has been uploaded to a real web server.
The solution is to use HelpNDoc's included HTTP web server or upload the whole
documentation file to a real web server.
If browsing local HTML files is mandatory, we recommend the use of the "legacy framed HTML
template" that ships with HelpNDoc. Be aware that some web-browsers might block it due to the
same security restrictions though. Here is how to select a template for a specific build:
https://www.helpndoc.com/step-by-step-guides/how-define-build-settings-helpndoc
HelpNDoc's powerful template system can be used to create completely customized HTML
documentation to fit specific requirements. See: Working with templates
Symptoms
When browsing the HTML documentation produced using HelpNDoc's default responsive
template, the table of contents is empty, shows an infinite loading animation or an error message.
Solutions
First of all, make sure that the documentation is correctly browsed from a web server. See: The
HTML documentation is not loading or behaving incorrectly
Some web servers such as older versions of Microsoft IIS or Amazon S3 must be configured to
return the correct mime type for JSON, WOFF and WOFF2 files. Requesting such files will have the
following results:
· The web server will return a "404 Not Found" error for those files: this will break the table of
contents in your HTML documentation;
· The web server will return those files as "text/plain" mime type. The default HTML template will
try to seamlessly work around that problem for JSON files, but can't do anything about font
files.
In any case, we recommend that you web server is correctly configured to return the correct mime
277 / 283
HelpNDoc User Manual
type for those files. Here is how this can be done for some servers:
Microsoft IIS
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
</staticContent>
</system.webServer>
Amazon S3
Specify the property Content-Type property for every JSON, WOFF, and WOFF2 files. See Amazon
S3 documentation: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html
Symptoms
While everything is working with the local web server, your HTML documentation hosted on
GitHub and served as a GitHub pages has a broken or indefinitely loading table of contents.
Solutions
By default, GitHub assumes that you are hosting Jekyll (a static site generator) compatible pages:
file names starting with a "_" (underscore) are ignored and not served by the GitHub web server.
However, HelpNDoc generates files starting with a "_" (table of contents, keywords...) and those
files are needed for the default HTML template to work correctly.
The solution is to include a .nojekyll file in the root path of your HTML documentation to turn off
Jekyll on GitHub pages. See this article from GitHub for more information.
Symptoms
When generating an HTML based documentation format, an error occurs saying that it is not
possible to create a specific file.
Solutions
HelpNDoc uses the each topic's unique help Id as it's file name. However, some file names (such as
CON, NUL, COM1, LPT1...) are not valid file names, and Microsoft Windows will not allow the file to
be created.
278 / 283
HelpNDoc User Manual
Do not use the following reserved names for the name of a file: CON, PRN, AUX, NUL, COM1,
COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6,
LPT7, LPT8, and LPT9. Also avoid these names followed immediately by an extension; for example,
NUL.txt is not recommended.
The only solution is to change the problematic topic's Help Id and use a value which will be
accepted as a valid file name by Microsoft Windows.
PDF documentation
Symptoms
Printing a PDF document using Adobe PDF reader fails with the message saying "Drawing Error".
Solutions
Try updating the Adobe PDF Reader software to the latest version. It can be downloaded freely
from Adobe's servers
Symptoms
When viewing a Microsoft Word document generated by HelpNDoc, the page numbers displayed
in the table of contents are wrong.
Solutions
HelpNDoc generates fields for the page numbers in the table of contents of Microsoft Word
documents. They are automatically managed and update by Microsoft Word and they are usually
updated when printing the document. It is possible to force the update of those fields by selecting
the whole table of contents in Microsoft Word, then hit the F9 keyboard shortcut.
279 / 283
HelpNDoc User Manual
Qt Help
Symptoms
When generating a modified Qt Help file and viewing it using the Qt assistant.exe software, the
latest changes are not displayed.
Solutions
This is a known bug of the Qt assistant.exe software which creates a cache version of the .qhc help
file. The only solution is to manually delete this cache as follows:
· Note the name of the .qhc file that you are creating. E.g. sample.qhc
· Type the path of the Qt Help assistant cache folder. Usually this is: %USERPROFILE%
\AppData\Local\QtProject\Assistant
· Delete the .qhc file and folder with the same name of your generated documentation project.
E.g. sample.qhc and .sample
By purchasing one of the full versions of HelpNDoc, you are entitled for free updates for a full
version cycle with a one year safety period. This means that, no matter what, you will benefit from
one year of free updates. And if by the end of that year we haven't reached a full version cycle -
for example if you buy version 9.0, a full version cycle will go up to version 10.0 included - you will
still get free updates until that version cycle has been reached.
· The HelpNDoc edition acquired: Standard Edition, Professional Edition or Ultimate Edition
· The number of licenses needed: Volume discounts are available as well as Site and Global
licenses
280 / 283
HelpNDoc User Manual
The most up-to-date prices are available from the HelpNDoc Store.
Site license provide an unlimited number of licenses for a single location in the world. World
license provide an unlimited number of licenses for multiple locations throughout the world.
HelpNDoc can be licensed site-wide or world-wide. Please contact us to receive further details.
We use MyCommerce as our payment handling partner. They are globally known for their security
and efficiency in payment processing. They accept many currencies including US dollars, Euros,
British pound, Australian dollar, Japanese yen, Canadian dollar, Swiss franc, Russian rouble,
Brasilian real, Norwegian krona, Swedish krona, Polish zloty, Chinese renminbi yuan, Taiwan dollar,
Indian rupee. You can pay using various payment methods including credit card, paypal, wire-
transfer, check and cash. To learn more about MyCommerce and the ordering options, visit the
MyCommerce FAQ page.
To obtain a written quote, first choose the edition and license that you'd like to acquire from
HelpNDoc's Store page and click the "Buy Now" button. Use the "Request Quote" tab and fill-in
the requested information to receive a written quote.
Miscellaneous
Symptoms
You downloaded the HelpNDoc installation program but can't launch it.
281 / 283
HelpNDoc User Manual
Solutions
· Check that the installation program's extension is correctly set as an .EXE file. Some programs
such as CA Security Software can rename downloaded .EXE files to .EFW
Starting with HelpNDoc 8, *.doc documents can't be imported anymore. You can use an external
application such as Microsoft Word to convert the legacy *.doc file format to the recommended
*.docx format.
Starting with HelpNDoc 7, *.docx documents are imported by HelpNDoc without the need for
any third-party software.
For earlier versions, the free "Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint
File Formats" must be installed on some systems in order to import Microsoft Word *.doc or
*.docx files. It is automatically installed with some older versions of Microsoft Office but not with
the latest versions. It can be downloaded from https://www.helpndoc.com/downloads/office-
converter/FileFormatConverters.exe
Symptoms
When launching HelpNDoc, either the main window can't be seen or some panels are missing.
Solutions
Use the "-reset" command line option to reset HelpNDoc's layout:
If you are using HelpNDoc 6.8 or later, you can try to reset HelpNDoc's user interface settings as
follows:
· Click the "Reset" button at the bottom left of the newly opened "HelpNDoc Options" dialog
If that doesn't fix the problem or if you are using an older version of HelpNDoc, please try to
launch HelpNDoc with the "-reset" command line option to reset all its settings as follows:
282 / 283
HelpNDoc User Manual
· Indicate HelpNDoc's installation path with the -reset option. Usually it is "C:\Program Files\IBE
Software\HelpNDoc 9\hnd9.exe -reset"
Note: for older HelpNDoc 7, 6 or 5 versions, adapt the command line accordingly.
When the table of contents is filtered, some filtered topics might be missing and the table of
contents could behave strangely. Make sure that you clear any filters first to restore the default
behavior. Some possible strange behaviors include:
· Newly added topics might not be visible, because they are filtered
· Moving a topic using the "Move" button could make it move intermittently, because it is
actually moved based on currently filtered topics
283 / 283