Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards


Step 8: Iterate - to refine your index

Creating a good index is an iterative process, often the first step is just to add a header scanning rule to the script file and then generate the documentation and see:

Further rules can then be added to the script to handle these cases and the next iteration examined, and so on.

[Tip] Tip

If you don't understand why a particular term is (or is not) present in the index, try adding a !debug regular-expression directive to the script file.

Restricting which Sections are indexed for a particular term

You can restrict which sections are indexed for a particular term. So assuming that the docbook document has the usual hierarchical names for section ID's (as Quickbook generates, for example), you can easily place a constraint on which sections are examined for a particular term.

For example, if you want to index occurrences of Lord Kelvin's name, but only in the introduction section, you might then add:

Kelvin "" ".*introduction.*"

to the script file, assuming that the section ID of the intro is "some_library_or_chapter_name.introduction".

This would avoid an index entry every time 'Kelvin' is found, something the user is unlikely to find helpful.