Resolve abbreviated-form and term in Webhelp related-links
Are you missing a feature? Request its implementation here.
-
- Posts: 86
- Joined: Sun May 03, 2015 7:34 pm
- Location: San Francisco
Resolve abbreviated-form and term in Webhelp related-links
Post by urbanrobots »
Hello.
I believe that this is a DITA-OT bug. We thought that the Webhelp 17.1 plugin solved this, but <abbreviated-form> and <term> used for glossary entries still do not correctly resolve in HTML output.
For example, this input file's title:
Renders link this the output related links section of other topics:
Thanks,
- Nick
I believe that this is a DITA-OT bug. We thought that the Webhelp 17.1 plugin solved this, but <abbreviated-form> and <term> used for glossary entries still do not correctly resolve in HTML output.
For example, this input file's title:
Code: Select all
<title>Keyword (<keyword keyref="g_etsi"/>) Term
(<term keyref="g_etsi"/>) Abbreviated-Form(<abbreviated-form keyref="g_etsi"/>)</title>
Code: Select all
Related concepts
Keyword () Term () Abbreviated-Form()
- Nick
-
- Posts: 9434
- Joined: Fri Jul 09, 2004 5:18 pm
Re: Resolve abbreviated-form and term in Webhelp related-links
Hi Nick,
Indeed the WebHelp plugin depends on the XHTML output plugin so it also inherits part of its problems.
Have you tried producing the output with both DITA OT 1.8 and 2.x? You can configure the default used DITA OT in the Preferences->DITA page.
If you can still reproduce the issue with DITA OT 2.x maybe you could put together a very small sample DITA project and either send it to us (support@oxygenxml.com) or add an issue directly on the DITA OT issues list:
https://github.com/dita-ot/dita-ot
Regards,
Radu
Indeed the WebHelp plugin depends on the XHTML output plugin so it also inherits part of its problems.
Have you tried producing the output with both DITA OT 1.8 and 2.x? You can configure the default used DITA OT in the Preferences->DITA page.
If you can still reproduce the issue with DITA OT 2.x maybe you could put together a very small sample DITA project and either send it to us (support@oxygenxml.com) or add an issue directly on the DITA OT issues list:
https://github.com/dita-ot/dita-ot
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 159
- Joined: Mon Nov 24, 2014 1:49 pm
- Location: Greven/Germany
Re: Resolve abbreviated-form and term in Webhelp related-links
There is a known processing error of abbreviated-form and term in the DITA-OT 2.x, see #2173. Maybe this is related to your issue.
stefan-jung.org – Your DITA/DITA-OT XML consultant
-
- Posts: 86
- Joined: Sun May 03, 2015 7:34 pm
- Location: San Francisco
Re: Resolve abbreviated-form and term in Webhelp related-links
Post by urbanrobots »
Hi.
We added a new "Preprocess" plugin to our DITA-OT process and this has (so far) fixed the problem of <abbreviated-form> and <term> elements not appearing in related-links.
- Override to add abbreviated-form processing.
- Set the linktext from a topic, unless specified within the topicref.
and this:
- More or less an identity transform, but replaces abbreviated-form with text.
- The next step after this is to emit text only, so attributes don't matter.
I hope that you can add similar default logic to the Oxygen Webhelp.
Take care,
- Nick
We added a new "Preprocess" plugin to our DITA-OT process and this has (so far) fixed the problem of <abbreviated-form> and <term> elements not appearing in related-links.
- Override to add abbreviated-form processing.
- Set the linktext from a topic, unless specified within the topicref.
Code: Select all
<xsl:template match="*" mode="mappull:getmetadata_linktext">
<xsl:param name="type"/>
<xsl:param name="scope">#none#</xsl:param>
<xsl:param name="format">#none#</xsl:param>
<xsl:param name="file"/>
<xsl:param name="topicpos"/>
<xsl:param name="topicid"/>
<xsl:param name="classval"/>
<xsl:variable name="doc" select="document($file,/)"/>
<xsl:choose>
<!-- If linktext is already specified, use that -->
<xsl:when test="*[contains(@class, ' map/topicmeta ')]/*[contains(@class, ' map/linktext ')]">
<xsl:apply-templates select="." mode="mappull:add-usertext-PI"/>
<xsl:apply-templates select="*[contains(@class, ' map/topicmeta ')]/*[contains(@class, ' map/linktext ')]"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="linktext">
<xsl:choose>
<!--if it's external and not dita, use the href as fallback-->
<xsl:when test="($scope='external' and not($format='dita' or $format='DITA')) or $type='external'">
<xsl:apply-templates select="." mode="mappull:get-linktext_external-and-non-dita"/>
</xsl:when>
<!--if it's external and dita, leave empty as fallback, so that the final output process can handle file extension-->
<xsl:when test="$scope='external'">
<xsl:apply-templates select="." mode="mappull:get-linktext_external-dita"/>
</xsl:when>
<xsl:when test="$scope='peer'">
<xsl:apply-templates select="." mode="mappull:get-linktext_peer-dita"/>
</xsl:when>
<!-- skip resource-only image files -->
<xsl:when test="($format='jpg' or $format='jpeg' or $format='tiff' or $format='gif'
or $format='eps' or $format='svg' or $format='tif') and @processing-role='resource-only'"/>
<xsl:when test="not($format='#none#' or $format='dita' or $format='DITA')">
<xsl:apply-templates select="." mode="mappull:get-linktext-for-non-dita"/>
</xsl:when>
<xsl:when test="@href=''">#none#</xsl:when>
<!--xsl:when test="not(contains($file,$DITAEXT))">
<xsl:text>#none#</xsl:text>
<xsl:apply-templates select="." mode="ditamsg:unknown-extension"/>
</xsl:when-->
<!--grabbing text from a particular topic in another file-->
<xsl:when test="$topicpos='otherfile'">
<xsl:variable name="target" select="$doc//*[@id=$topicid]"/>
<xsl:choose>
<xsl:when test="$target[contains(@class, $classval)]/*[contains(@class, ' topic/title ')]">
<xsl:variable name="grabbed-value">
<xsl:apply-templates select="($target[contains(@class, $classval)])[1]/*[contains(@class, ' topic/title ')]" mode="text-only"/>
</xsl:variable>
<xsl:value-of select="normalize-space($grabbed-value)"/>
</xsl:when>
<xsl:when test="$target[contains(@class, ' topic/topic ')]/*[contains(@class, ' topic/title ')]">
<xsl:variable name="grabbed-value">
<xsl:apply-templates select="($target[contains(@class, ' topic/topic ')])[1]/*[contains(@class, ' topic/title ')]" mode="text-only"/>
</xsl:variable>
<xsl:value-of select="normalize-space($grabbed-value)"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="linktext-fallback"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<!--grabbing text from the first topic in another file-->
<xsl:when test="$topicpos='firstinfile'">
<xsl:choose>
<xsl:when test="$doc//*[contains(@class, ' topic/topic ')][1]/*[contains(@class, ' topic/title ')]">
<xsl:variable name="abbreviated">
<xsl:apply-templates select="($doc//*[contains(@class, ' topic/topic ')])[1]/*[contains(@class, ' topic/title ')]" mode="handle-abbreviated"/>
</xsl:variable>
<!-- <xsl:apply-templates select="($doc//*[contains(@class, ' topic/topic ')])[1]/*[contains(@class, ' topic/title ')]" mode="tree2stream"/>-->
<xsl:variable name="grabbed-value">
<xsl:apply-templates select="$abbreviated" mode="text-only"/>
<!-- <xsl:apply-templates select="($doc//*[contains(@class, ' topic/topic ')])[1]/*[contains(@class, ' topic/title ')]" mode="text-only"/>-->
</xsl:variable>
<xsl:value-of select="normalize-space($grabbed-value)"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="linktext-fallback"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>#none#<!--never happens - both possible values for topicpos are tested--></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="not($linktext='#none#')">
<xsl:apply-templates select="." mode="mappull:add-gentext-PI"/>
<linktext class="- map/linktext ">
<xsl:copy-of select="$linktext"/>
</linktext>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
- More or less an identity transform, but replaces abbreviated-form with text.
- The next step after this is to emit text only, so attributes don't matter.
Code: Select all
<xsl:template match="*|text()|processing-instruction()" mode="handle-abbreviated">
<xsl:choose>
<xsl:when test="name() = 'abbreviated-form'">
<!-- Tomorrow: Open the file, find the abbreviated form insert it. DONE! -->
<!-- Oh and move the overrides into a preprocessor file. -->
<xsl:variable name="gloss-entry" select="document(@href)/*"/>
<xsl:choose>
<xsl:when test="$gloss-entry/glossBody/glossAlt/glossAcronym">
<xsl:value-of select="$gloss-entry/glossBody/glossAlt/glossAcronym"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$gloss-entry/glossterm"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<!-- [2016Apr2] When statement copied from above for term handling -->
<xsl:when test="name() = 'term'">
<xsl:variable name="gloss-entry" select="document(@href)/*"/>
<xsl:value-of select="$gloss-entry/glossterm"/>
</xsl:when>
<!-- [2016Apr2] When statement copied from above for keyword handling -->
<!--<xsl:when test="name() = 'keyword'">
<xsl:variable name="gloss-entry" select="document(@href)/*"/>
<xsl:value-of select="$gloss-entry/glossterm"/>
</xsl:when>-->
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates mode="handle-abbreviated"/>
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Take care,
- Nick
-
- Posts: 9434
- Joined: Fri Jul 09, 2004 5:18 pm
Re: Resolve abbreviated-form and term in Webhelp related-links
Hi Nick,
I created a sample project on my side and indeed I reproduced the problem.
It seems that at some point one of my colleagues opened a DITA Open Toolkit issue about this:
https://github.com/dita-ot/dita-ot/issues/2067
I added a comment on the issue + link to this forum post.
Regards,
Radu
I created a sample project on my side and indeed I reproduced the problem.
It seems that at some point one of my colleagues opened a DITA Open Toolkit issue about this:
https://github.com/dita-ot/dita-ot/issues/2067
I added a comment on the issue + link to this forum post.
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
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