How to Convert Definition Lists into Tables
Suppose you want your definitions lists (<dl>
) to
be displayed as tables in your PDF output.
To add this functionality using an Oxygen Publishing Template,
follow these steps:
- If you have not already created a Publishing Template, you need to create one. For details, see How to Create a Publishing Template.
- Link the folder associated with the publishing template to your current project in the Project view.
- Using the view, create an xslt folder inside the project root folder.
- In this folder, create an XSL file (for example, named
merged2html5Extension.xsl) with the following
content:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0"> <xsl:template match="*[contains(@class, ' topic/dl ')]"> <xsl:call-template name="setaname"/> <xsl:apply-templates select=" *[contains(@class, ' ditaot-d/ditaval-startprop ')]" mode="out-of-line"/> <!-- Wrap in a table --> <table> <xsl:call-template name="commonattributes"/> <xsl:call-template name="setid"/> <xsl:apply-templates/> </table> <xsl:apply-templates select=" *[contains(@class, ' ditaot-d/ditaval-endprop ')]" mode="out-of-line"/> </xsl:template> <xsl:template match="*[contains(@class, ' topic/dlentry ')]"> <!-- Wrap in a table row --> <tr> <xsl:call-template name="commonattributes"/> <xsl:call-template name="setidaname"/> <xsl:apply-templates/> </tr> </xsl:template> <xsl:template match=" *[contains(@class, ' topic/dd ')] | *[contains(@class, ' topic/dt ')]"> <!-- Wrap in a cell --> <td> <xsl:call-template name="commonattributes"/> <xsl:call-template name="setidaname"/> <xsl:apply-templates select=" ../*[contains(@class, ' ditaot-d/ditaval-startprop ')]" mode="out-of-line"/> <xsl:apply-templates/> <xsl:apply-templates select=" ../*[contains(@class, ' ditaot-d/ditaval-endprop ')]" mode="out-of-line"/> </td> </xsl:template> </xsl:stylesheet>
- Open the template
descriptor file associated with your publishing template (the
.opt file) and set the XSLT stylesheet created in the previous step with the
com.oxygenxml.pdf.css.xsl.merged2html5
XSLT extension point:<publishing-template> ... <pdf> ... <xslt> <extension id="com.oxygenxml.pdf.css.xsl.merged2html5" file="xslt/merged2html5Extension.xsl"/> </xslt>
- Edit the DITA Map PDF - based on HTML5 & CSS transformation scenario.
- In the Templates tab, click the Choose Custom Publishing Template link and select your template.
- Click OK to save the changes and run the transformation scenario.