The xtpxlib-xdoc component contains the following XProc 3.0 pipelines:
Module/Pipeline | Description |
---|---|
docbook-to-pdf.xpl | This turns Docbook (5.1) into a PDF using FOP. |
docbook-to-xhtml.xpl | This turns Docbook (5.1) into XHTML. |
xdoc-to-docbook.xpl | XProc 3.0 pipeline that transforms a DocBook source containing xdoc extensions into "pure" DocBook format. |
xdoc-to-pdf.xpl | Convenience pipeline: Combines the xdoc-to-docbook and the docbook-to-pdf steps in one. |
xdoc-to-xhtml.xpl | Convenience pipeline: Combines the xdoc-to-docbook and the docbook-to-xhtml steps in one. |
docbook-to-pdf.xpl
File: xpl3/docbook-to-pdf.xpl
Type: xdoc:docbook-to-pdf
This turns Docbook (5.1) into a PDF using FOP.
All necessary xdoc
pre-processing (usually with xdoc-to-docbook.xpl) must have been done.
It will only convert a partial DocBook tagset.
If you don't use xdoc-to-docbook.xpl, you have to make sure to get correct xml:base
attributes in, so the pipeline can find includes and images. The following XProc (1.0) code takes care of that:
<p:xinclude> <p:with-option name="fixup-xml-base" select="true()"/> </p:xinclude> <p:add-attribute attribute-name="xml:base" match="/*"> <p:with-option name="attribute-value" select="/reference/to/source/document.xml"/> </p:add-attribute>
Port | Type | Primary? | Description |
---|---|---|---|
source | in | yes | The Docbook source document, fully expanded (with appropriate xml:base attributes) |
result | out | yes | A small report thingie |
Option | Type | Rq? | Default | Description |
---|---|---|---|---|
chapter-id | xs:string | '' | Specific chapter identifier to output. | |
create-pdf | xs:boolean | true() | Whether to actually create the PDF. | |
fop-config | xs:string | resolve-uri('../../xtpxlib-common/data/fop-default-config.xml', static-base-uri()) | Reference to the FOP configuration file | |
global-resources-directory | xs:string? | () | Images that are tagged as role="global" are searched here (discarding any directory information in the image's URI) | |
href-pdf | xs:string | yes |
| The name of the resulting PDF file, as a URI (an absolute path must have file:// in front). |
href-xsl-fo | xs:string? | () | If set, writes the intermediate XSL-FO to this href (so you can inspect it when things go wrong in FOP) | |
main-font-size | xs:integer | 10 | Main font size as an integer. Usual values somewhere between 8 and 10. | |
output-type | xs:string | 'a4' | Output type. Use either a4 or sb (= standard book size) | |
preliminary-version | xs:boolean | false() | If true , adds a preliminary version marker and output any db:remark elements. If false , output of db:remark elements will be suppressed. |
docbook-to-xhtml.xpl
File: xpl3/docbook-to-xhtml.xpl
Type: xdoc:docbook-to-xhtml
This turns Docbook (5.1) into XHTML.
All necessary xdoc
pre-processing (usually with xdoc-to-docbook.xpl) must have been done.
It will only convert a partial DocBook tagset.
The resulting XHTML will not be directly useable, post-processing the result into a complete and correct HTML page is necessary. The result of this pipeline consists of nested div
elements. There is no surrounding html
or body
element.
Port | Type | Primary? | Description |
---|---|---|---|
source | in | yes | The docbook source document. |
result | out | yes | The resulting XHTML |
xdoc-to-docbook.xpl
File: xpl3/xdoc-to-docbook.xpl
Type: xdoc:xdoc-to-docbook
XProc 3.0 pipeline that transforms a DocBook source containing xdoc
extensions into "pure" DocBook format.
Port | Type | Primary? | Description |
---|---|---|---|
source | in | yes | The DocBook source with xdoc extensions |
result | out | yes | The resulting DocBook. |
Option | Type | Rq? | Default | Description |
---|---|---|---|---|
alttarget | xs:string? | () | The target for applying alternate settings. | |
href-parameters | xs:string? | () | Optional reference to a document with parameter settings. See here for details. | |
parameter-filters-map | map(xs:string, xs:string) | map{} | Optional filter settings for processing the parameters. |
xdoc-to-pdf.xpl
File: xpl3/xdoc-to-pdf.xpl
Type: xdoc:xdoc-to-pdf
Convenience pipeline: Combines the xdoc-to-docbook and the docbook-to-pdf steps in one.
Port | Type | Primary? | Description |
---|---|---|---|
source | in | yes | The Docbook source, with option al xdoc extensions. |
result | out | yes | A small report thingie |
Option | Type | Rq? | Default | Description |
---|---|---|---|---|
alttarget | xs:string? | () | The target for applying alternate settings. | |
chapter-id | xs:string | '' | Specific chapter identifier to output. | |
create-pdf | xs:boolean | true() | Whether to actually create the PDF. | |
fop-config | xs:string | resolve-uri('../../xtpxlib-common/data/fop-default-config.xml', static-base-uri()) | Reference to the FOP configuration file | |
global-resources-directory | xs:string? | () | Images that are tagged as role="global" are searched here (discarding any directory information in the image's URI) | |
href-docbook | xs:string? | () | If set, writes the intermediate full DocBook to this href (so you can inspect it when things go wrong) | |
href-parameters | xs:string? | () | Optional reference to a document with parameter settings. See here for details. | |
href-pdf | xs:string | yes |
| The name of the resulting PDF file, as a URI (an absolute path must have file:// in front). |
href-xsl-fo | xs:string? | () | If set, writes the intermediate XSL-FO to this href (so you can inspect it when things go wrong in FOP) | |
main-font-size | xs:integer | 10 | Main font size as an integer. Usual values somewhere between 8 and 10. | |
output-type | xs:string | 'a4' | Output type. Use either a4 or sb (= standard book size) | |
parameter-filters-map | map(xs:string, xs:string) | map{} | Optional filter settings for processing the parameters. | |
preliminary-version | xs:boolean | false() | If true , adds a preliminary version marker and output any db:remark elements. If false , output of db:remark elements will be suppressed. |
xdoc-to-xhtml.xpl
File: xpl3/xdoc-to-xhtml.xpl
Type: xdoc:xdoc-to-pdf
Convenience pipeline: Combines the xdoc-to-docbook and the docbook-to-xhtml steps in one.
Port | Type | Primary? | Description |
---|---|---|---|
source | in | yes | The Docbook source, with option al xdoc extensions. |
result | out | yes | The resulting XHTML. |
Option | Type | Rq? | Default | Description |
---|---|---|---|---|
alttarget | xs:string? | () | The target for applying alternate settings. | |
href-docbook | xs:string? | () | If set, writes the intermediate full DocBook to this href (so you can inspect it when things go wrong) | |
href-parameters | xs:string? | () | Optional reference to a document with parameter settings. See here for details. | |
parameter-filters-map | map(xs:string, xs:string) | map{} | Optional filter settings for processing the parameters. |
Module/Pipeline | Description |
---|---|
xtpxlib-xdoc.mod.xpl | Library with support pipelines for xdoc and related conversions. |
xtpxlib-xdoc.mod.xpl
File: xpl3mod/xtpxlib-xdoc.mod/xtpxlib-xdoc.mod.xpl
Library with support pipelines for xdoc
and related conversions.
Prefix | Namespace URI |
---|---|
xdoc | http://www.xtpxlib.nl/ns/xdoc |
xdoc:markdown-to-docbook
Converts the contents of xdoc:MARKDOWN
elements into DocBook.
This pipeline checks the incoming XML for xdoc:MARKDOWN
elements. The contents of these elements is assumed to contain Markdown. The pipeline tries to convert this into DocBook. The xdoc:MARKDOWN
element is removed/unwrapped.
The following rules apply:
The contents of an xdoc:MARKDOWN
element is stringified (so any child elements are lost).
The resulting text can be indented, using space characters only (no tabs!). The non-empty line with the minimum indent is assumed to be its left margin.
Only simple Markdown is supported. Specifically:
Inline markup for emphasis, bold, code, etc.
Links. A link target starting with a %
is handled as an internal link (the @xml:id
of something in the encompassing DocBook).
Code blocks (using three consecutive back-ticks)
Headers (these are all converted into the same DocBook bridgehead
elements)
Specifically not supported (yet?) are tables.
If you add an header-only="true"
attribute to the xdoc:MARKDOWN
element, only the first paragraph will be output.
Port | Type | Primary? | Description |
---|---|---|---|
source | in | yes | Any XML that might contain xdoc:MARKDOWN elements for conversion. |
result | out | yes | The same XML but with the xdoc:MARKDOWN element's contents converted into DocBook. |