Макросы DocBook? - PullRequest
       16

Макросы DocBook?

5 голосов
/ 08 апреля 2010

Есть ли способ определения макросов (например, текстовые макросы или определения латекса) в документах DocBook?

DocBook очень многословен, и макросы очень помогли бы. Я их не нашел в кратких руководствах.

Если да, может ли кто-нибудь привести простой пример или ссылку на?

Спасибо

Ответы [ 3 ]

6 голосов
/ 15 апреля 2010

Не уверен, если это именно то, что вы хотите / если оно полностью соответствует вашим требованиям, но я думаю о сущностях. Вы можете определить их в верхней части (вашего XML-документа, то есть общего XML, но не DocBook). Как видно здесь для «doc.release.number» и «doc.release.date». Но они также могут быть включены через отдельный файл. Как видно в 3-м ряду ENTITY. Здесь СИСТЕМА означает, что пришло из другого файла "entity.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>

В документе вы ссылаетесь на сущности через начало & и окончание ;, как в &project.impl.title;

В файле entity.ent вы указываете элементы ENTITY аналогичным образом:

<?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'                  >  
1 голос
/ 02 августа 2010

Не совсем то, что вы просили, но, возможно, полезно для некоторых ваших случаев: вы можете определить шаблоны в вашей таблице стилей оболочки, где вы определяете fo команды. Некоторые примеры:

Код:

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

Использование:

<symbolchar>le</symbolchar>

Код:

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

Использование:

<?linebreak?>
0 голосов
/ 08 апреля 2010

Рассматривали ли вы создание DocBook из другого формата (например, reStructuredText ?)

Я нашел это довольно хорошо для документации.

Кроме того, вы можете написать макропроцессор (или заглянуть в m4) довольно быстро. Если вы используете версию DocBook в формате XML, подойдет простой XSLT. Просто сделайте несколько тегов и преобразуйте их. Иметь шаблонные материалы добавляются автоматически. И будьте готовы злиться на XSLT. За то, что не все, что могло быть. Для того, чтобы сделать ваше мышление деформированным.

...