Getting topic count as a JavaScript variable in WebHelp output

raybiss
Posts: 5
Joined: Sat Jan 17, 2015 6:21 pm

Getting topic count as a JavaScript variable in WebHelp output

Post by raybiss » Wed Apr 29, 2020 4:17 am

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: 175
Joined: Thu Dec 24, 2009 11:21 am

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

Post by alin » Thu Apr 30, 2020 6:57 pm

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