DL Widths / Replace with blocks
Post here questions and problems related to editing and publishing DITA content.
-
- Posts: 14
- Joined: Mon Jun 15, 2015 1:02 pm
DL Widths / Replace with blocks
Hi,
I am trying to use DL elements in my DITA and have the following:
Using the standard Dita 1.8 engine with FOP, this is rendered as a table with the DT and DD in columns with 50% each.
Ideally, I would like the DL list rendered like this (but other solutions are acceptable):
My list appears as above, but it is 100% wide and starts left of the above text. For example (... show indent)
In my tables-attr.xsl, I've set the following:
But niether width nor start-indent have any effect. Only color:blue has any effect.
How can I either:
a) use DL as a table, but have dynamic column widths (I've read that this isn't possible with FOP
b) use DL as blocks, but set the width and have it indented with the surrounding text (like notes or tables)
Thanks
Rich
I am trying to use DL elements in my DITA and have the following:
Code: Select all
<dl>
<dlentry>
<dt>Lorem ipsum</dt>
<dd>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
invidunt</dd>
</dlentry>
<dlentry>
<dt>At vero</dt>
<dd>At vero eos et accusam et justo duo dolores et ea rebum</dd>
</dlentry>
</dl>
Ideally, I would like the DL list rendered like this (but other solutions are acceptable):
So in my tables.xsl, I've replaced all table blocks with fo:blocks as shown here:Lorem ipsum
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
invidunt
At vero
At vero eos et accusam et justo duo dolores et ea rebum
Code: Select all
<!--Definition list-->
<xsl:template match="*[contains(@class, ' topic/dl ')]">
<fo:block xsl:use-attribute-sets="dl">
<xsl:call-template name="commonattributes"/>
<xsl:apply-templates select="*[contains(@class, ' topic/dlhead ')]"/>
<fo:block xsl:use-attribute-sets="dl__body">
<xsl:choose>
<xsl:when test="contains(@otherprops,'sortable')">
<xsl:apply-templates select="*[contains(@class, ' topic/dlentry ')]">
<xsl:sort select="opentopic-func:getSortString(normalize-space( opentopic-func:fetchValueableText(*[contains(@class, ' topic/dt ')]) ))" lang="{$locale}"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="*[contains(@class, ' topic/dlentry ')]"/>
</xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:block>
</xsl:template>
<xsl:template match="*[contains(@class, ' topic/dl ')]/*[contains(@class, ' topic/dlhead ')]">
<fo:block xsl:use-attribute-sets="dl.dlhead">
<xsl:call-template name="commonattributes"/>
<fo:block xsl:use-attribute-sets="dl.dlhead__row">
<xsl:apply-templates/>
</fo:block>
</fo:block>
</xsl:template>
<xsl:template match="*[contains(@class, ' topic/dlhead ')]/*[contains(@class, ' topic/dthd ')]">
<fo:block xsl:use-attribute-sets="dlhead.dthd__cell">
<xsl:call-template name="commonattributes"/>
<fo:block xsl:use-attribute-sets="dlhead.dthd__content">
<xsl:apply-templates/>
</fo:block>
</fo:block>
</xsl:template>
<xsl:template match="*[contains(@class, ' topic/dlhead ')]/*[contains(@class, ' topic/ddhd ')]">
<fo:block xsl:use-attribute-sets="dlhead.ddhd__cell">
<xsl:call-template name="commonattributes"/>
<fo:block xsl:use-attribute-sets="dlhead.ddhd__content">
<xsl:apply-templates/>
</fo:block>
</fo:block>
</xsl:template>
<xsl:template match="*[contains(@class, ' topic/dlentry ')]">
<fo:block xsl:use-attribute-sets="dlentry">
<xsl:call-template name="commonattributes"/>
<fo:block xsl:use-attribute-sets="dlentry.dt">
<xsl:apply-templates select="*[contains(@class, ' topic/dt ')]"/>
</fo:block>
<fo:block xsl:use-attribute-sets="dlentry.dd">
<xsl:apply-templates select="*[contains(@class, ' topic/dd ')]"/>
</fo:block>
</fo:block>
</xsl:template>
<xsl:template match="*[contains(@class, ' topic/dt ')]">
<fo:block xsl:use-attribute-sets="dlentry.dt__content">
<xsl:call-template name="commonattributes"/>
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="*[contains(@class, ' topic/dd ')]">
<fo:block xsl:use-attribute-sets="dlentry.dd__content">
<xsl:call-template name="commonattributes"/>
<xsl:apply-templates/>
</fo:block>
</xsl:template>
.....Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat,
.....vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim
.....qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
Lorem ipsum
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
invidunt
At vero
At vero eos et accusam et justo duo dolores et ea rebum
In my tables-attr.xsl, I've set the following:
Code: Select all
<xsl:attribute-set name="dl">
<!--DL is a table-->
<xsl:attribute name="width">300pt</xsl:attribute>
<xsl:attribute name="start-indent">20pt</xsl:attribute>
<xsl:attribute name="space-before">5pt</xsl:attribute>
<xsl:attribute name="space-after">5pt</xsl:attribute>
<xsl:attribute name="color">blue</xsl:attribute>
</xsl:attribute-set>
How can I either:
a) use DL as a table, but have dynamic column widths (I've read that this isn't possible with FOP
b) use DL as blocks, but set the width and have it indented with the surrounding text (like notes or tables)
Thanks
Rich
-
- Posts: 14
- Joined: Mon Jun 15, 2015 1:02 pm
Re: DL Widths / Replace with blocks
p.s., I forgot to write. I've looked at my topic.fo and the attributes are set:
Code: Select all
<fo:block color="blue" space-after="5pt" space-before="5pt" start-indent="20pt" table-layout="fixed" width="300pt">
-
- Posts: 14
- Joined: Mon Jun 15, 2015 1:02 pm
Re: DL Widths / Replace with blocks
Hi,
I found a solution by looking at the code here: https://github.com/dita-community/org.d ... -as-dl.xsl.
I stuck with my tables.xsl code as shown above where I replaced all the table references with fo:block. Then in my tables-attr.xsl I have
And that produces a nice DL list which is aligned with the parent, the DT is bold on its own line and the DD is indented on the line below the DT.
Hope this helps.
Rich
I found a solution by looking at the code here: https://github.com/dita-community/org.d ... -as-dl.xsl.
I stuck with my tables.xsl code as shown above where I replaced all the table references with fo:block. Then in my tables-attr.xsl I have
Code: Select all
<xsl:attribute-set name="dl">
<!--DL is a table-->
<xsl:attribute name="space-before">5pt</xsl:attribute>
<xsl:attribute name="space-after">5pt</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="dl__body">
</xsl:attribute-set>
<xsl:attribute-set name="dl.dlhead">
</xsl:attribute-set>
<xsl:attribute-set name="dlentry">
</xsl:attribute-set>
<xsl:attribute-set name="dlentry.dt">
<xsl:attribute name="relative-align">baseline</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="dlentry.dt__content" use-attribute-sets="common.table.body.entry common.table.head.entry">
<xsl:attribute name="start-indent">from-parent(start-indent) + 0mm</xsl:attribute>
<xsl:attribute name="keep-with-next">always</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="dlentry.dd">
</xsl:attribute-set>
<xsl:attribute-set name="dlentry.dd__content" use-attribute-sets="common.table.body.entry">
<xsl:attribute name="start-indent">from-parent(start-indent) + 10pt</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="dl.dlhead__row">
</xsl:attribute-set>
<xsl:attribute-set name="dlhead.dthd__cell">
</xsl:attribute-set>
<xsl:attribute-set name="dlhead.dthd__content" use-attribute-sets="common.table.body.entry common.table.head.entry">
</xsl:attribute-set>
<xsl:attribute-set name="dlhead.ddhd__cell">
</xsl:attribute-set>
<xsl:attribute-set name="dlhead.ddhd__content" use-attribute-sets="common.table.body.entry common.table.head.entry">
</xsl:attribute-set>
Hope this helps.
Rich
-
- Posts: 404
- Joined: Thu Aug 21, 2003 11:36 am
- Location: Craiova
- Contact:
Re: DL Widths / Replace with blocks
Post by radu_pisoi »
Hi,
Yes, the org.dita-community.pdf-dl-as-dl plugin overrides the default formatting for the dl element. This plugin is already included in the DITA-OT 1.8 distribution that comes bundled with oXygen.
If you use a custom DITA-OT, you can integrate this plugin with your custom DITA-OT instead of copying its stylesheests into a customization folder. I think that this option is recommended.
The next topic describes how to integrate a custom plugin in the current used DITA-OT from oXygen: Installing a Plugin in the DITA Open Toolkit. The DITA-OT distribution can be changed from the oXygen's DITA preferences page.
Yes, the org.dita-community.pdf-dl-as-dl plugin overrides the default formatting for the dl element. This plugin is already included in the DITA-OT 1.8 distribution that comes bundled with oXygen.
If you use a custom DITA-OT, you can integrate this plugin with your custom DITA-OT instead of copying its stylesheests into a customization folder. I think that this option is recommended.
The next topic describes how to integrate a custom plugin in the current used DITA-OT from oXygen: Installing a Plugin in the DITA Open Toolkit. The DITA-OT distribution can be changed from the oXygen's DITA preferences page.
Radu Pisoi
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
-
- Posts: 14
- Joined: Mon Jun 15, 2015 1:02 pm
Re: DL Widths / Replace with blocks
Hi,
using the net.sourceforge.dita4publishers.pdf-dl-as-dl plugin is best I agree. I have a PDF customization "systemguide", which uses "pdf2". How do I use the dl-as-dl plugin as well?
Do I just need to update my plugin.xml and add a <require> tag before/after the line "<require plugin="org.dita.pdf2"/>"
Thanks
Rich
using the net.sourceforge.dita4publishers.pdf-dl-as-dl plugin is best I agree. I have a PDF customization "systemguide", which uses "pdf2". How do I use the dl-as-dl plugin as well?
Do I just need to update my plugin.xml and add a <require> tag before/after the line "<require plugin="org.dita.pdf2"/>"
Thanks
Rich
-
- Posts: 404
- Joined: Thu Aug 21, 2003 11:36 am
- Location: Craiova
- Contact:
Re: DL Widths / Replace with blocks
Post by radu_pisoi »
Hi,
No, it's not necessarily to make a dependency between the two plugins.
For instance, if both plugins contributes an XSLT stylesheet, the DITA-OT integrator will generate an xsl:import for each extension stylesheet in the main stylesheet.
I've tested with DITA-OT 1.8 that comes bundled with oXygen 17.1. After I've run the Integrator, the PDF generated with my custom PDF plugin includes the display customization for the dl element.
No, it's not necessarily to make a dependency between the two plugins.
For instance, if both plugins contributes an XSLT stylesheet, the DITA-OT integrator will generate an xsl:import for each extension stylesheet in the main stylesheet.
I've tested with DITA-OT 1.8 that comes bundled with oXygen 17.1. After I've run the Integrator, the PDF generated with my custom PDF plugin includes the display customization for the dl element.
Radu Pisoi
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
-
- Posts: 14
- Joined: Mon Jun 15, 2015 1:02 pm
Re: DL Widths / Replace with blocks
Hi,
I've lost the plot a little I'm afraid. My customized plugin includes the table.xsl and table_attr.xsl files which include the definitions for the DL elements. To use the definitions in the dl_as_dl plugin do I just delete all custzomized DL references? How do I include the dl_as_dl definitions and not the pdf2 definitions?
Thanks
Rich
I've lost the plot a little I'm afraid. My customized plugin includes the table.xsl and table_attr.xsl files which include the definitions for the DL elements. To use the definitions in the dl_as_dl plugin do I just delete all custzomized DL references? How do I include the dl_as_dl definitions and not the pdf2 definitions?
Thanks
Rich
-
- Posts: 404
- Joined: Thu Aug 21, 2003 11:36 am
- Location: Craiova
- Contact:
Re: DL Widths / Replace with blocks
Post by radu_pisoi »
Hi,
So, if you want to use the templates from the dl_as_dl plugin you have to comment all the templates from your plugin that override them.
Yes, the templates from your customization plugin are more important and they can override any template from the default PDF stylesheet or any other plugin that extend it.My customized plugin includes the table.xsl and table_attr.xsl files which include the definitions for the DL elements. To use the definitions in the dl_as_dl plugin do I just delete all custzomized DL references?
So, if you want to use the templates from the dl_as_dl plugin you have to comment all the templates from your plugin that override them.
For this task it's not necessarily to do any action. This is the default extension mechanism that allows a plugin to override some functionality from the plugin that it extends.How do I include the dl_as_dl definitions and not the pdf2 definitions?
Radu Pisoi
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
Return to “DITA (Editing and Publishing DITA Content)”
Jump to
- Oxygen XML Editor/Author/Developer
- ↳ Feature Request
- ↳ Common Problems
- ↳ DITA (Editing and Publishing DITA Content)
- ↳ SDK-API, Frameworks - Document Types
- ↳ DocBook
- ↳ TEI
- ↳ XHTML
- ↳ Other Issues
- Oxygen XML Web Author
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Content Fusion
- ↳ Feature Request
- ↳ Common Problems
- Oxygen JSON Editor
- ↳ Feature Request
- ↳ Common Problems
- Oxygen PDF Chemistry
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Feedback
- ↳ Feature Request
- ↳ Common Problems
- Oxygen XML WebHelp
- ↳ Feature Request
- ↳ Common Problems
- XML
- ↳ General XML Questions
- ↳ XSLT and FOP
- ↳ XML Schemas
- ↳ XQuery
- NVDL
- ↳ General NVDL Issues
- ↳ oNVDL Related Issues
- XML Services Market
- ↳ Offer a Service