DocBook Publishing für unterschiedliche Zielgruppen
-
01-10-2019 - |
Frage
Ich mag eine DocBook XML-Dokument haben, die Inhalte für verschiedene Zielgruppen hat. Gibt es einen Filter, der mir ermöglicht nur das Zeug, um herauszufiltern, die für „advanced“ Benutzer?
Das Niveau Attribut wird von mir erfunden, um auszudrücken, was ich im Sinne habe.
<?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>
Lösung
DocBook keinen level
Attribut. Vielleicht bedeutete Sie userlevel
?
Wenn Sie die DocBook XSL Stylesheets verwenden, um Ihre Dokumente zu verwandeln, haben sie eine integrierte Unterstützung für die Profilierung (bedingter Text). Um es zu benutzen Sie müssen
-
verwenden, um die Profilierungs-fähige Version des Stylesheets (z Verwendung
html/profile-docbook.xsl
statt des üblichenhtml/docbook.xsl
) und -
geben Sie die Attributwerte Sie über eine Parameter (zB Set
profile.userlevel
zubasic
).
Kapitel 26 von Bob Stayton der DocBook XSL: The Complete Guide hat alle Details.
Andere Tipps
Zwei Wege, aus der Spitze von meinem Kopf:
- Schreiben Sie eine schnelle Skript, das die
level
als Parameter übernimmt und unter Verwendung von XPath oder reguläre Ausdrücke, die nur spuckt die XML Sie wollen. - schreiben XSLT-Transformation , die die XML ausspucken werden Sie wollen.
(2) ist sauberer, aber (1) ist wahrscheinlich schneller zu schreiben.