Well that is just brilliant and solves my problem 100%.  The target.db file
contains the information I need in an easily parsable format.  Thank you
very much for this advice.

Cheers,

Tom
P.S.   I just ordered a copy of your book.

On Tue, Nov 15, 2022 at 8:47 PM Bob Stayton <b...@sagehill.net> wrote:

> Hi Tom,
>
> You can generate something like what you need already using the olink
> mechanism.  If you set the stylesheet parameter 'collect.xref.targets' to a
> value of 'yes', then when you process your document for HTML output you
> will also generate a target.db file that is used in olinking (there's a
> parameter to rename that file).  It is an XML file that contains all
> potential cross reference targets for that document.  In that file, the
> <div> elements hold the info for the hierarchical elements, and <obj>
> elements contain the info for the nonhierarchical elements (tables,
> figures, etc.).  For each, its targetptr attribute contains the element's
> id, and its href attribute contains the link to that element in your output.
>
> Your app could open that file, or you could further process it with a
> simple stylesheet to refine it.
>
> Check out this chapter in my book on olinking:
>
> http://www.sagehill.net/docbookxsl/Olinking.html
>
> Bob
> On 11/15/2022 3:49 PM, Tom Moore wrote:
>
> Hi all
>
> I have a desktop app and I have written documentation for this app in
> DocBook.  I am producing webhelp and posting these html pages online.  From
> within my application I would like to be able to open pages from the online
> webhelp in a local browser.  All of this works nicely so far.
>
> The problem is knowing which page to open for a given topic.  To solve
> this problem I would like to produce a file that contains the mappings
> between all of the id attributes that are declared in my document and the
> name of the chunked html output file that contains the id.  Ideally the
> mapping would be to the chunk plus anchor if the element containing the id
> is not the outermost section, chapter, appendix, etc of the chunk.  Then
> from within my app I can look up the mapping for a given id, and request
> the browser to open the desired page.
>
> I expect that this is something that can be done using xslt technology,
> but I do not know where to begin.  I am at the skill level where I have
> made a few small customizations in a project that used xslt, but I don't
> really know how to go about opening a file and writing output, where to
> find the id value, where to find the chunk name, etc.   In other words a
> beginner looking at the start of a steep learning curve.
>
> Can someone point me in the right direction for this task?  I notice that
> the javahelp output creates a mapping file that is almost right, except
> that it does not use the chunk names derived from the <?dbhtml
> filename=""?> processing instructions, which I am using in order to get
> links that don't shift around as I add chapters and sections.  Is the
> javahelp tool a good starting point or would it be better to start from
> scratch?  Is there a book that you would recommend that is good to learn
> from?
>
> Thanks,
>
> Tom
>
>

Reply via email to