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
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'">≥</xsl:when>
<xsl:when test=".='le'">≤</xsl:when>
<xsl:when test=".='sqrt'">√</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.