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

War es hilfreich?

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'">&#x2265;</xsl:when>
      <xsl:when test=".='le'">&#x2264;</xsl:when>
      <xsl:when test=".='sqrt'">&#x221A;</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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top