As you may or may not know, I have started on cleaning our internal Microsoft 
Help Viewer 1.0 transformation up to a point where it is releasable to the 
public. However, in this effort I have come across some issues.

Some background;
The Microsoft HV1 format is the replacement for chm and hlp files. It is based 
off xhtml with a set of header tags an some special magic. The set of html and 
other content are zipped into a zip volume with the mshc extension (Microsoft 
Help Collection or similar :)). This file (called a package) is accompanied by 
a manifest file with the extension msha. This file can point to multiple 
packages, and this collection of packages is called a book.

Now to my first found issue;
The header for a html file needs to contain a set of special meta tags. This is 
what the help system uses to generate positional/relational information, 
indexing and content description. Some of these tags needs to contain 
information of the current chunk (e.g a set of <meta name="Microsoft.Help.F1" 
content="myTopic" /> for all F1 content in the current chunk). Currently we use 
indexterms with IDs to mark content for F1 resolution, and the following 
template is called from "user.head.content":

<xsl:template name="mshelp3.help.f1">
      <xsl:for-each select="self::*//indexterm">
            <xsl:if test="@id">
                  <meta xmlns="http://www.w3.org/1999/xhtml"; 
name="Microsoft.Help.F1">
                        <xsl:attribute name="content">
                             <xsl:value-of select="@id" />
                        </xsl:attribute>
                  </meta>
            </xsl:if>
      </xsl:for-each>
</xsl:template>

However, the "self::*//indexterm" matches all indexterms below self, but with a 
chunk depth of e.g.4, the content of self may be chunked into separate files. 
So how can I select the content of only the current chunk from 
"user.head.content"? The current situation is that F1 ids are flowing up in the 
chunking tree and usually hits on a higher level than were the actual section 
exists.


Morten Engelhardt Olsen
Software Engineer / Tools Group / Atmel Corporation
Tel: (+47) 930 94 593
morten_engelhardt.ol...@atmel.com<mailto:dean_patrick.cam...@atmel.com> / 
http://www.atmel.com/

The information contained in this email message may be privileged, confidential 
and/or protected from unauthorized disclosure. If you are not the intended 
recipient, any dissemination, distribution or copying is strictly prohibited. 
Please immediately notify the sender by reply if you received this email in 
error. Thank you for your cooperation.

Reply via email to