Публикация Docbook для разных целевых аудиторий - PullRequest
2 голосов
/ 26 августа 2010

Мне нравится иметь один документ docbook xml, содержащий контент для нескольких целевых аудиторий.Есть ли фильтр, который позволяет мне отфильтровывать материал, необходимый только для «продвинутых» пользователей?

Атрибут уровня придуман мной, чтобы выразить то, что я имею в виду.

 <?xml version="1.0"?>
 <book>  
   <title lang="en">Documentation</title>

   <chapter id="introduction" level="advanced">  
       <title>Introduction for advanced users</title>
   </chapter>

   <chapter id="introduction" level="basic">  
      <title>Introduction for basic users</title>
   </chapter>  

   <chapter id="ch1">
      <para level="basic">Just press the button</para>
      <para level="advanced">
           Go to preferences to set your
           needs and then start the process 
           by pressing the button.
      </para>
   </chapter>
</book>

Ответы [ 2 ]

2 голосов
/ 27 августа 2010

DocBook не имеет атрибута level.Возможно, вы имели в виду userlevel?

Если вы используете таблицы стилей DocBook XSL для преобразования ваших документов, они имеют встроенную поддержку профилирования (условный текст).Чтобы использовать его, вам нужно

  1. использовать версию таблицы стилей с поддержкой профилирования (например, использовать html/profile-docbook.xsl вместо обычной html/docbook.xsl) и

  2. укажите значения атрибутов, которые вы хотите профилировать, с помощью параметра (например, установите profile.userlevel в basic).

Глава 26 Боба Стейтона DocBook XSL: полное руководство содержит все подробности.

0 голосов
/ 26 августа 2010

Двумя способами, вне головы:

  1. Напишите быстрый скрипт, который принимает level в качестве параметра и, используя XPath или регулярные выражения, чтотолько выплевывает нужный вам XML.
  2. Напишите XSLT-преобразование , которое выдаст нужный вам XML.

(2) чище, но (1) возможно быстрее записать.

...