how do i reference topic in different help file

i have two separate CHM help files that I have created using NDOC. I want to be able to jump to a topic in one from the other. Is this possible

As it is created with NDOC, I don't know the name of the relevant page but I think NDOC should be able to work this out. However I get "page not found" - does anyone know how to do this

Incidently, building the help files as HTML 2 still has the problem.

Thanks

Jason



Answer this question

how do i reference topic in different help file

  • Lutz Albers

    wow! what a comprehensive response. I will follow your advice and investigate.

    Many thanks for this.

    Jason


  • Poojac25

    Hi Jason,

    I see. You prefer keeping the Ndoc generated .chms separate, and want the ability to call topics between them. I don't think this is possible without doing the merge.

    However, why don't you become a member of the Help Authoring Tools & Techniques (HATT) list, and pose this question there. There are over five thousand members, most of them experts in their fields, and I think you will get a very qualified yes or no to your query.

    The address is:

    http://groups.yahoo.com/group/HATT/

    Good luck, and see you on the HATT list.

    Kind regards,

    Frank M. Palinkas
    MCP, MCT, MCSE, MCDBA, A+
    Senior Technical Communicator & WEb Accessibility Designer



  • dlevine

    Hi Jason,

    You're most welcome. I only wish I could do more.

    Another thought:

    Alternatively, if you're ultimate goal is to have these two NDoc generated .chm's converted, merged and then integrated into the VS 2002/2003/2005 IDE Help Contents windows as a MSHelp2 Windows Desktop application, then you can bypass the .chm merge process and do a merge of the two .HxS files you'll create using Helpware FAR and the VS Help Integration Wizard 2005. This will create a MSHelp2 Combined Collection.

    Before you merge the two .HxS files, you need to create them. Go to MS Help MVP Rob Chandler's Helpware website and download the Fast Track: MSHelp2 VS 2005 Conversion & Integration TestCase/Lab which I built for this specific purpose:

    http://helpware.net/mshelp2/frank/help2.htm

    I've given Rob the update which includes an Appendix on constructing  a MSHelp2 Combined Collection, but I don't see that he's updated the above web page with it yet. So, I've included these instructions below for you.

    After you've created the two .HxS files, follow these instructions:

    Appendix A: Creating a MSHelp2 Combined Collection

    Why create a MSHelp2 Combined Collection

    You have created numerous MSHelp2 (.HxS) Collections.

    • For example, you've created MSHelp2 Collections for an API, Class Library, DLL Library and Programmers Guide, all specific to one software product.
    • Instead of listing each of these H2 Collections separately in the Visual Studio Help Contents window, we can combine them under one Parent Node and make each H2 Collection a Child node of that Parent node.
    • We then compile and build this new MSHelp2 Collection.
    • This will save space in the Visual Studio Help Contents window, and also help categorize your H2 Collections with a specific application.
    • The key to accomplishing this is in the Visual Studio Help Integration Wizard 2005 (Page 3 of 4) dialog box, and consists of creating a Parent node with your .HxS collections set as Child nodes.
    • In order to create a Combined Help Collection consisting of 2 or more .HxS files, and have them listed successfully with a Parent node and subsequent Child nodes in the VS 2005 Help Contents Window, please follow the Step by Step instructions below.

    Getting Started:

    1. Create an H2_Output folder (preferably on C:\).
      1. Copy and paste all of your .HxS Collections specific to this new MSHelp2 Combined Collection into the H2_Output folder.
      2. Remove the Build folder containing the MergeModule and .MSI/Setup.exe folders from each .HxS collection.
    2. Open Visual Studio 2005.
      1. Open the Help Integration Wizard 2005 from the File > New Project > Help Integration Wizard.
      2. Enter the title of your combined help collection in the Name field.
      3. Make sure the Create Directory for Solution checkbox is checked.
      4. Click the "OK" button.
    3. In the Help Integration Wizard (Page 1 of 4) dialog box:
      1. Choose the Setup Project radio button.
      2. In the Target dropdown list, choose Visual Studio 2005 (or another Visual Studio version).
      3. Click the Next button.
    4. In the Help Integration Wizard (Page 2 of 4) dialog box:
      1. Click the Add button.
      2. Navigate to the H2_Output folder which contains your .HxS Collection files.
      3. Select ALL of the .HxS files using the Shift key.
        1. The sequential order of these files is not important now.....we'll fix that in the next step.
      4. Click the Open button.
        1. This adds all of the .HxS files to the Source Files window.
      5. Click the Next button.
    5. In the Help Integration Wizard (Page 3 of 4) dialog box:
      1. Keep the Plug-in Style radio button selection set to Hierarchical 
      2. Click the red book icon in the Help Collection TOC window on the left, and enter a title for your combined help collection.
        1. This will become the Parent node of your combined collection.
      3. In the Exclude from TOC window on the right, select the title of your 1st Child node to appear under the Parent node.
      4. Click the Include button.
        1. Do the same for each title appearing in the Exclude from TOC window, setting the order of precedence in which they will appear under the Parent node.
      5. Click on the Plug-in Node Properties icon.
      6. Edit the name in the text box, eliminating all spaces between words in the name.
        1. Use underscores or another naming convention.
      7. Click the Next button.
    6. In the Help Integration Wizard (Page 4 of 4) dialog box:
      1. Enter a namespace for your combined help collection.
        1. Make sure there are no spaces between words in the namespace.
      2. Click the Finish button.
        1. This will return you to the VS 2005 IDE, and your pre-builds for the combined help collection will be showing in the Solution Explorer window.
    7. In the Visual Studio 2005 Solution Explorer window:
      1. Right-click the MergeModule pre-build solution.
      2. Click Build in the menu.
        1. Verify that the MergeModule build has finished successfully.
      3. Right-click the .MSI/Setup.exe pre-build solution.
      4. Click Build in the menu.
        1. Verify that the .MSI/Setup.exe build has finished successfully.
      5. Save the builds.
      6. Close Visual Studio 2005.
    8. Go to your H2_Output folder containing the .HxS files, which now contains the combined help collection folder created by the Visual Studio build process.
      1. Open the new combined help collection folder.
      2. Open the .MSI/Setup.exe folder.
      3. Open the Debug folder.
      4. Double-click on the Setup.exe package, or right-click on the .MSI package and choose Install in the menu.
      5. Follow the Install wizard process.
      6. After successfully completing the Install procedure, close all folders.
    9. Open Visual Studio 2005 and click on the Help Contents tab.
      1. Your combined help collection will be listed in the Help Contents Window navigation tree.
      2. Expand the Parent node and you will see your Child nodes listed in the order of precedence you set in the Help Integration Wizard procedure.

    Kind regards,

    Frank M. Palinkas
    MCP, MCT, MCSE, MCDBA, A+
    Senior Technical Communicator & Web Accessibility Designer



  • Jim Andre Andersen

    Hi Jason,

    Been doing some scouring on this topic. Maybe this Javascript will at least get a .chm to open a topic in it by calling it from another .chm

    Calling a CHM from your help:

    This can be done with a short piece of JavaScript in the <head> of the html file. When the page is selected in the TOC, it will open MYCHM.chm in a new window. It will go on to display the rest of the topic in the original window.

    <!—(Scripts)======================================-->
    <script LANGUAGE=JavaScript
    TYPE="text/javascript"><!--
    var fIE4orLater = (document.all);
    function OpenCHM(sURL)
    {
    window.showHelp(sURL);
    return;
    };
    //-->
    </script>

    <script>OpenCHM("file://MYCHM.chm");</script>

    If you want to set a link in the body of the topic which will open a chm in a new window, set the hyperlink as follows:

    <a href="#" onclick="window.showHelp('file://MYCHM.chm')">LinkName</a>

    ==================================================>

    Hope this helps,

    Frank M. Palinkas
    MCP, MCT, MCSE, MCDBA, A+
    Senior Technical Communicator & Web Accessibility Designer



  • Peppi

    I would like to keep them separate but link to the other help file simply.

    It appears

    If I document code which contains objects in different libraries, there is no simple way of linking to their help file by using the xml code documentation or the free help utilities. This gives the "page not found" with any type of help because it tries to find the object in the current library.

    or am I missing something

    thanks so far

    Jason


  • jrv1211

    Hi Jason,

    My suggestion would be to merge the two NDoc generated .chm's using the latest version of Microsoft HTML Help Workshop in conjunction with a good .chm/H2 compiler/decompiler such as Helpware FAR. Documentation on how to perform a merge of two or more .chms is in both the MS HTML Workshop and Helpware FAR.

    The MS HTML Help Workshop is normally installed as part of the MSDN Library installation, so first check if it's installed on your local machine in the Programs list. If not, then you can download and then install it (version 1.4) from this MS webpage:

    http://msdn.microsoft.com/library/default.asp url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp

    With that in hand, go to Microsoft Help MVP Rob Chandler's Helpware FAR website and download and then install a free fully working trial of Helpware FAR:

    http://www.helpware.net/FAR/index.html

    Also, if you don't have the source files available for either NDoc generated .chm, you'll need to decompile them to get the .hhp (Project file) and then commence the merge procedure. Go to the WorkWrite website of Microsoft Help MVP's Cheryl Lockett Zubak and Ralph Walden and download their KeyTools tool to do this:

    http://www.workwrite.com

    Just a mention of the NDoc .chms I have worked with, that were generated by our Dev team. Normally, the TOC's of these .chms are configured in a "flat" style. By that, I mean there is no Parent node which starts the TOC tree structure. I normally edit the TOC of an NDoc generated .chm in Helpware FAR and give it a Parent node, from which all of the Child nodes then descend. Later on, if you wish to convert these NDoc generated .chms into MSHelp2, and then integrate them into the VS IDE Help Contents window, I strongly recommend that you do this before attempting the H2 procedure.

    Hope this helps,

    Frank M. Palinkas
    MCP, MCT, MCSE, MCDBA, A+
    Senior Technical Communicator & Web Accessibility Designer



  • how do i reference topic in different help file