Question

Est-il possible de définir des macros (comme tex macros o latex définit) dans les documents DocBook?

DocBook est très bavard, et les macros aiderait beaucoup. Je ne les ai pas trouvé dans les didacticiels de démarrage rapide.

Si oui, quelqu'un pourrait-il fournir un exemple simple ou un lien vers?

Merci

Était-ce utile?

La solution

Je ne sais pas, si c'est exactement ce que vous voulez / si elle remplit pleinement vos besoins, mais je pense à ENTITYs. Vous pouvez les définir en haut (de votre document XML, de sorte que XML général, rien de spécifique DocBook). Comme on le voit ici pour « doc.release.number » et « doc.release.date ». Mais ils peuvent aussi être inclus dans un fichier séparé. Comme on le voit dans la ligne de ENTITÉ 3th. Ici, le système signifie, comming d'un autre fichier '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>

Dans le document que vous faites référence à des entités par un & début et de fin ; comme dans &project.impl.title;

Dans le fichier « entities.ent » vous spécifiez les éléments ENTITÉ d'une manière similaire:

<?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'                  >  

Autres conseils

Pas exactement ce que vous avez demandé, mais peut-être utile pour certains de vos cas: vous pouvez définir des modèles dans votre emballage stylesheet où vous définissez les commandes fo. Voici quelques exemples:

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>

Utilisation:

<symbolchar>le</symbolchar>

Code:

<xsl:template match="processing-instruction('linebreak')">
  <fo:block/>
</xsl:template>

Utilisation:

<?linebreak?>

Avez-vous envisagé la génération DocBook d'un autre format (comme reStructuredText ?)

Je l'ai trouvé très agréable pour la documentation.

En outre, vous pouvez probablement écrire un préprocesseur macro (ou regarder dans m4) assez rapidement. Si vous utilisez la version XML de DocBook, un XSLT simple, fera. Il suffit de faire quelques balises et les transformer. Avoir des choses boilerplate automatiquement ajouté. Et préparez-vous à être vraiment en colère contre XSLT. Pour ne pas tout ce qu'il pourrait être. Pour rendre votre chaîne de pensée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top