使用 HelpNDoc API 重新编号主题上下文 ID 值

Renumbering topic Context ID values using HelpNDoc API

我发现这个 tutorial 用于将上下文帮助 ID 值导出到数据文件:

const
  // Define the output file
  OUTPUT_FILE = 'c:\tmp\topics.txt';

var
  // Current topic ID
  aTopicId: string;
  // List of output
  aList: TStringList;

begin
  // Init list
  aList := TStringList.Create;
  aList.Add('Topic Caption | Help ID | Help Context');
  aList.Add('--------------------------------------');
  try
    // Get first topic
    aTopicId := HndTopics.GetTopicFirst();
    // Loop through all topics
    while aTopicId <> '' do
    begin
      // Add the topic to the list
      aList.Add(Format('%s | %s | %d', [
        HndTopics.GetTopicCaption(aTopicId),
        HndTopics.GetTopicHelpId(aTopicId),
        HndTopics.GetTopicHelpContext(aTopicId)
      ]));
      // Get next topic
      aTopicId := HndTopics.GetTopicNext(aTopicId);
    end;
    // Create the file
    aList.SaveToFile(OUTPUT_FILE);
  finally
    aList.Free;
  end;
end.

我对修改后的帮助文档进行了一些重组,因此上下文编号不是连续的:

使用 HelpNDoc 我希望编写一个新的 API 脚本来重新编号,但我看不到合适的 API method.

这不可能吗?

使用 HelpNDoc API,您可以使用 HndTopics.SetTopicHelpContext 方法调用更改主题的帮助上下文编号。使用简单的逻辑,可以重置所有帮助上下文编号。以下文章对此进行了描述:Using HelpNDoc scripting capabilities to automatically reset all help context numbers

文章中展示的脚本甚至包含在最近的 HelpNDoc 安装文件夹中:

Context numbers can become messy as HelpNDoc project evolves. This script will reset each topic's context number so that they are setup incrementally from first topic till last one.

这里是 运行 该脚本的方法:

  • 保存项目的备份以备不时之需
  • 加载您的项目
  • 在 HelpNDoc 的 "Tools" 功能区选项卡中,单击 "Script Editor"
  • 单击 "Load script" 旁边的箭头以显示内置脚本列表
  • 点击"ResetHelpContextNumbers.hnd.pas"
  • 点击"Run script"