如何在脚本编辑器中使用 api 在 helpndoc 中定义关键字

How to define keywords in helpndoc using api in script editor

我想使用 api 脚本编辑器在 HelpNDoc 中创建关键字。但是,我找不到如何定义函数 HndKeywords.CreateKeyword 的参数。在不向函数传递任何值的情况下,它会创建 New 关键字。但是,我想设置文本,hrefdata-related 对象信息。

HndKeywords.CreateKeyword;

输出:_keywords.json

[{ "id": "B3BF561185624A4685FB01E93FE5ED87", "parent" : "#", "text": "New keyword", "a_attr": {"href": "#", "data-related": "[]"} }]

我发现,在创建关键字时无法添加标题和 data-related 信息。

function SetKeywordCaption(const aKeywordId: string; const sNewCaption: string): string;
function AssociateTopicWithKeyword(const aTopicId: string; const  aKeywordId:string): Boolean;

为了编辑关键字标题,我必须使用需要关键字 ID 的函数 SetKeywordCaption。为此,我使用函数 GetKeywordList(); 获取关键字列表,它 returns 是一个数组。我从该数组中获取最后一个元素数字 id,这是一个新插入的关键字。然后,使用最后一个元素数组 id 访问 aKeywordList 数组并添加 .Id ,这将检索该关键字的 id。然后,使用关键字id和功能SetKeywordCaption,可以编辑关键字标题。

为了添加data-related信息,我使用函数AssociateTopicWithKeyword需要topic idkeyword id。我使用函数 GetTopicList 获取主题列表。我得到主题 ID 为五个 (topic_array[(5-1)].ID) 和第六个主题 (topic_array[(6-1)].ID)。然后,使用函数 AssociateTopicWithKeyword 到 link 关键字到主题。

调用 helpndoc 函数:

Object.function

ex (HndKeywords.CreateKeyword;)

var new_keyword                :=HndKeywords.CreateKeyword;
var aKeywordList                =HndKeywords.GetKeywordList() ;
//get keyword added last
var newlyaddedkeyword_array_id  =length(aKeywordList) - 1 ;
var newlyaddedkeyword__id       =aKeywordList[newlyaddedkeyword_array_id].Id;
var edit_keywordcaption         =HndKeywords.SetKeywordCaption(newlyaddedkeyword__id, "Edited keyword");
var topic_array=HndTopics.GetTopicList; 
var keywordtopics         =HndTopicsKeywords.AssociateTopicWithKeyword(topic_array[4].ID,newlyaddedkeyword__id);//parameter : topic id and keyword id
var keywordtopics2          =HndTopicsKeywords.AssociateTopicWithKeyword(topic_array[5].ID,newlyaddedkeyword__id);

参见:HndKeywords - Properties and methods for keywords