Pergunta
Existe alguma maneira de definir macros (como o Tex Macros O Latex define) nos documentos do DocBook?
O DocBook é muito detalhado, e Macros ajudaria muito. Não os encontrei em tutoriais do QuickStart.
Nesse caso, alguém poderia fornecer um exemplo simples ou um link para?
Obrigado
Solução
<?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>
No documento, você faz referência às entidades através de um início &
e terminando ;
como em &project.impl.title;
No arquivo 'entities.ent', você especifica os elementos da entidade de maneira semelhante:
<?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' >
Outras dicas
Não é exatamente o que você pediu, mas talvez seja útil para alguns de seus casos: você pode definir modelos na folha de estilo do invólucro onde você define fo
comandos. Alguns exemplos:
Código:
<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>
Uso:
<symbolchar>le</symbolchar>
Código:
<xsl:template match="processing-instruction('linebreak')">
<fo:block/>
</xsl:template>
Uso:
<?linebreak?>
Você já pensou em gerar docbook a partir de outro formato (como reestruturado text?)
Achei muito bom para documentação.
Além disso, você provavelmente poderia escrever um pré -processador de macro (ou procurar no M4) rapidamente. Se você estiver usando a versão XML do DocBook, um XSLT simples servirá. Basta inventar algumas tags e transformá -las. Recebem coisas de caldeira adicionadas automaticamente. E prepare -se para ficar com muita raiva do XSLT. Por não ser tudo o que poderia ser. Por fazer seu pensamento deformar.