Page 1 of 1

Getting topic count as a JavaScript variable in WebHelp output

Posted: Wed Apr 29, 2020 4:17 am
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

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

Posted: Thu Apr 30, 2020 6:57 pm
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