Я пытаюсь улучшить свой HTML-шаблон, который используется с HelpNDoc. Мне не хватает одного факта, что тег meta description
одинаков для всех страниц.
Файл шаблона представляет собой смесь паскаля и HTML. На данный момент это данные в шаблоне для отображения тега описания:
<meta name="description" content="<% print(HndProjects.GetProjectSummary()); %>" />
Я создал картографический XML-документ, который содержит необходимые описания. Пример:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<HelpTopics xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Topic>
<Caption>Overview</Caption>
<ID>msa-overview</ID>
<ContextID>0</ContextID>
<Description>An introduction to Meeting Schedule Assistant.</Description>
</Topic>
<Topic>
<Caption>Quick Start - Getting Started</Caption>
<ID>msa-quick-start</ID>
<ContextID>1</ContextID>
<Description>A quick start guide to get you up and running with Meeting Schedule Assistant.</Description>
</Topic>
<Topic>
<Caption>Using Meeting Schedule Assistant</Caption>
<ID>msa</ID>
<ContextID>2</ContextID>
<Description>An overview of the menus in Meeting Schedule Assistant.</Description>
</Topic>
</HelpTopics>
Возможно ли использовать pascal внутри этого скрипта HelpnDoc для чтения XML-файла? На своем сайте они предоставляют подробную информацию о HndProjects
и упоминает:
function GetProjectId: string;
Возвращает текущий открытый идентификатор проекта.
Итак, я бы хотел получить это значение из файла данных XML:
HelpTopics/Topic/ID[text()='<% HndProjects.GetProjectId(); %>'
Но я не знаю, как использовать такой XPath со скриптом HelpNDoc Pascal.
Обновление
Я попытался добавить этот код, чтобы начать:
function GetDescription(sTopicID: string): String;
var
nodeTopic: TDOMNode;
doc: TXMLDocument;
begin
try
// Read in the xml file
ReadXMLFile(doc, '.\MSA-Help-Descriptions.xml');
// Get the node
//nodeTopic := doc.DocumentElement.FindNode(
// How do we get the node at: HelpTopics/Topic/ID[text()=sTopicID];
finally
doc.Free;
end;
GetDescription := 'xxxx';
end;
Затем внутри HelpNDoc я попытался скомпилировать скрипт, но получил следующие ошибки:
Так что я не уверен, смогу ли я даже сделать то, что я хочу, если я не пропустил некоторые шаги.