Getting topic count as a JavaScript variable in WebHelp output

Post here questions and problems related to editing and publishing DITA content.
raybiss
Posts: 31
Joined: Sat Jan 17, 2015 6:21 pm

Getting topic count as a JavaScript variable in WebHelp output

Post by raybiss »

Hi,

I'm trying to get the topic count in a map with a custom WebHelp (responsive) publishing template.

I added the markup below to the bottom of the footer template; which I took from
https://github.com/oxygenxml/dita-ot-we ... tom-footer

Code: Select all

        <script>
            totalPages = <xsl:value-of select="count(//*[contains(@class, ' topic/topic ')])"/>;
            console.log("totalPages = " + totalPages);
        </script>
I tried a couple of variations on the @select value but I always get 0 or 1 totalPages.
I did look into the temp folder but did not find which element I could count().

Can I get the total @topicref in the map from within this template?
What would be the proper @select value?

Thank you,
Raymond
alin
Site Admin
Posts: 268
Joined: Thu Dec 24, 2009 11:21 am

Re: Getting topic count as a JavaScript variable in WebHelp output

Post by alin »

Hello,

You can use the map-xpath WebHelp Macro to execute an XPath expression on the DITA map and count all the topicrefs.
You can contribute your custom content using an HTML Fragment file, like the one below:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<div xmlns:whc="http://www.oxygenxml.com/webhelp/components">
    <script>
        var totalPages = <whc:macro value="${map-xpath(count(//*[contains(@class, 'map/topicref')]))}"/>;
        console.log("totalPages: ", totalPages);
    </script>    
</div>

You can find a sample Publishing Template here: https://github.com/oxygenxml/oxygen-pub ... opic-count

Regards,
Alin
Alin Balasa
Software Developer
<oXygen/> XML Editor
http://www.oxygenxml.com
Post Reply