4 Replies Latest reply on Aug 13, 2010 6:12 AM by Write U R

    decompiling chm, opening hhp in Robohelp, 2 questions

    Write U R

      Hi, I've been looking through the forum posts, as well as on Peter Grainge's web site under Reverse Engineering, and I haven't quite found the answers to some questions I have about turning a chm file into a RoboHelp project.  Any help with the following would be much appreciated.



      Our .net API developers use ndoc (which I've never used) to generate a chm file for each API. I received a copy of one of the chm files. Kind of looks like a handy dictionary, in the same spirit as Man pages, with definitions of methods, elements, types, and syntax.  Useful for what it is. But there's very little in the way of context or "big picture".


      What is missing is an overview, method examples, a discussion of the business rules and constraints that the developer needs to keep in mind for each method, and so on.  As the tech writer, I'm tasked with adding the missing info as well as clarifying some of what's already there.


      The final help documentation needs to be useful to developers, QA testers, or even a PM who wants to have a general understanding of what the methods do, what data is used, and so on.



      So, I thought maybe I could just pull the chm information into a RoboHelp 8  project and augment it with additional text, topics, etc.


      What I Tried

      After reading Peter's reverse engineering info, I opened RH8 and used HTML Help Studio to decompile the chm file I received.


      However, when I opened the resulting hhp file in RH8, all of the topics were on the same level, unlike in the original chm file.

      No nice hierarchy. Plus there was no TOC or index.


      I then thought I would try Pete Lees' suggested method of recovering the TOC and index, as a start toward fixing things, but since I did not see two hhc and hhk files in my project, I couldn't use that method.


      I then tried decompiling the chm using Keytools, but the results were the same when I looked at the project in RoboHelp.


      My Questions

      1. Before I spend more time on this, am I even on the right track, thinking that the way to go is to take API Development team's chm files and turn them into RH8 projects that I can doctor up? Or am I overlooking a better alternative? 


      2. Is there another way to recreate the topic hierarchy, TOC, and index after decompiling the chm file and then opening the hhp file in RH8?



      Thanks again for any and all help.

        • 1. Re: decompiling chm, opening hhp in Robohelp, 2 questions
          Peter Grainge Adobe Community Professional

          I think you are on the right track.


          TOC AND INDEX


          You should be able to recover those. Check the detail of my article. Post back if no joy.




          It is a while since I have done any reverse engineering so I would have to test whether or not the hierarchy is maintained. I thought it was but not sure.


          It maybe there was no hierarchy in the source. You don't need one to create a TOC with hierarchy so are you sure the developers had one? I suspect they may well have ignored niceties like that. If so, you would either have to live with that or undertake it manually.




          Have you considered how you will maintain this arrangement when the product is upgraded? I guess you could reverse engineer the CHM you are given and then import the topics you need, provided they don't need too much massage.


          See www.grainge.org for RoboHelp and Authoring tips



          • 2. Re: decompiling chm, opening hhp in Robohelp, 2 questions
            MergeThis Level 4

            From a quick scan on the Web, it appears that nDoc generates XML files first, then compiles that transitional output into HTML Help (CHM).


            If the developers processed that XML output into HTML output, you could then set up links to those pages, without any need for including them as topic pages in the RH project. (Since they would be HTML files, not HTM files, you could either: 1) add them as Baggage Files for inclusion in the project; or 2) establish a folder structure for them. The developers would continue to maintain the files and the hierarchy without any effort on your part, allowing you to only work on the collateral content. You'd need to work with the developers to coordinate style sheet similarities and differences.


            If you want to include those files in your search, you could look into the Zoom Search Engine, which we're already using for our large merged WebHelp output and considering for API library inclusion. Our preliminary testing has shown that these API libraries (we have a ton of them) can also be indexed and included into the Search capability. You would need to block the indexing of the API page headers and footers, for example, but the developers should be able to do that programmatically.



            Good luck,


            • 3. Re: decompiling chm, opening hhp in Robohelp, 2 questions
              Write U R Level 1

              Thanks much for the feedback, Peter. As far as future maintenance--good question, I'm going to really have to think about how that would work.



              • 4. Re: decompiling chm, opening hhp in Robohelp, 2 questions
                Write U R Level 1

                Leon, Thanks for the feedback! The idea of linking to the html files seems like it could be a workable solution.  I will investigate that further.