Frage
Gibt es eine Möglichkeit Makros zu definieren (wie tex Makros o Latex definiert) in DocBook Dokumenten?
DocBook ist sehr ausführlich und Makros würde viel helfen. Ich habe sie nicht gefunden in Schnellstart-Tutorials.
Wenn ja, könnte jemand bietet ein einfaches Beispiel oder einen Link zu?
Danke
Lösung
Nicht sicher, ob dies ist genau das, was Sie wollen / wenn es voll Ihre Anforderungen erfüllt, aber ich denke an Entitys. Sie können sie an der Spitze (Ihr XML-Dokuments, so allgemeine XML, nichts DocBook-spezifisch) definieren. Wie hier zu sehen für den ‚doc.release.number‘ und ‚doc.release.date‘. Sie können aber auch durch eine separate Datei enthalten sein. Wie in der 3. Reihe ENTITY gesehen. Hier das System Mittel, comming aus einer anderen Datei 'entities.ent'.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY doc.release.number "1.0.0.beta-1" >
<!ENTITY doc.release.date "April 2010" >
<!ENTITY % entities SYSTEM "entities.ent" >
%entities;
]>
<!-- This document is based on http://readyset.tigris.org/nonav/templates/userguide.html -->
<article lang="en">
<articleinfo>
<title>&project.impl.title; - User Manual</title>
<subtitle></subtitle>
<date>&project.impl.release.date;</date>
<copyright>
<year>doc.release.year</year>
<holder>Team - &project.impl.title;</holder>
</copyright>
<releaseinfo>&doc.release.number;</releaseinfo>
</articleinfo>
<section>
<title>Introduction</title>
<para>
The &project.impl.title; has been created to clean up (X)HTML and XML documents as part of
</para>
<section>
</article>
In dem Dokument verweisen Sie auf die Objekte durch einen Start-&
und ;
wie in &project.impl.title;
Endung
In der Datei 'entities.ent' Sie die ENTITY Elemente in ähnlicher Weise an:
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY project.impl.title 'Maven Tidy Plug-in' >
<!ENTITY project.impl.group-id 'net.sourceforge.docbook-utils.maven-plugin' >
<!ENTITY project.impl.artifact-id 'maven-tidy-plugin' >
<!ENTITY project.impl.release.number '1.0.0.beta-1' >
<!ENTITY project.impl.release.date 'April 2010' >
<!ENTITY project.impl.release.year '2010' >
<!ENTITY project.impl.url '../' >
<!ENTITY project.spec.title '' >
<!ENTITY project.spec.release.number '' >
<!ENTITY project.spec.release.date '' >
<!ENTITY doc.release.year '2010' >
Andere Tipps
Nicht genau das, was Sie gefragt, aber vielleicht hilfreich für einige Ihrer Fälle: Sie Vorlagen in Ihrem Wrapper Sheet definieren können, wo Sie fo
Befehle definieren. Einige Beispiele:
Code:
<xsl:template match="symbolchar">
<fo:inline font-family="Symbol">
<xsl:choose>
<xsl:when test=".='ge'">≥</xsl:when>
<xsl:when test=".='le'">≤</xsl:when>
<xsl:when test=".='sqrt'">√</xsl:when>
<xsl:otherwise>?!?</xsl:otherwise>
</xsl:choose>
</fo:inline>
</xsl:template>
Verbrauch:
<symbolchar>le</symbolchar>
Code:
<xsl:template match="processing-instruction('linebreak')">
<fo:block/>
</xsl:template>
Verbrauch:
<?linebreak?>
Haben Sie darüber nachgedacht, zu erzeugen DocBook aus einem anderen Format (wie reStructuredText ?)
Ich fand es für die Dokumentation ganz nett.
Auch könnte man wahrscheinlich einen Makro-Präprozessor (oder Blick in m4) ziemlich schnell schreiben. Wenn Sie die XML-Version von DocBook verwenden, wird ein einfaches XSLT tun. machen Sie einfach ein paar Tags und verwandeln sie. Hat vorformulierten Zeug automatisch hinzugefügt. Und machen Sie sich bereit auf XSLT wirklich wütend zu sein. Denn nicht alles sein könnte es sein. Für Ihr Denken Kette zu machen.