14 Replies Latest reply on Jun 28, 2007 8:25 AM by oceanbreeze

    Link to a topic in another project

    oceanbreeze
      I have a large WebHelp project with several projects that I include in one master project. I am generating Javahelp so the projects (about 10 of them) are SubHelpSets of the master project.

      How do I create a link in one project to a topic in another project? ( I do not use the chm files since I am doing WebHelp, not Microsoft help.)
      Thanks so much.
        • 1. Re: Link to a topic in another project
          Peter Grainge Adobe Community Professional (Moderator)
          Take a look at the Calling Webhelp topics on my site.

          • 2. Re: Link to a topic in another project
            Captiv8r Adobe Community Professional & MVP
            Hi folks

            Personally, I see a wee bit of clarification needed here.

            Perhaps it's just a typographical or terminology issue, and I know Peter has dabbled in JavaHelp, but are you truly creating JavaHelp output? If so, (and this one is for Peter) do you cover linking this way from JavaHelp projects?

            Apologies in advance if I'm seeming overly picky or being a dweeb.

            Cheers... Rick
            • 3. Re: Link to a topic in another project
              Peter Grainge Adobe Community Professional (Moderator)
              My understanding is that JavaHelp can be called via URLs. I have taken the posters method to mean they have one project from which they generate several versions, presumably using build expressions, and that they referred to these as the "several projects". Whatever they have done, the startpage#target method should work, unless Rick you are seeing some other scenario?

              Perhaps the poster could clarify this for us.

              • 4. Re: Link to a topic in another project
                oceanbreeze Level 1
                I am sorry, but I am not familiar enough with the info in the replies to figure out what to do. (I wish I knew a little more.) :)

                I'm not having any problem running the help otherwise and the developers have put it in the application and everything else is working fine for it. All links within a project work fine.

                My project is just a plain WebHelp (.xpj) project. For single source layout, I use the JavaHelp option to generate the help. But the problem I am having I believe is the same even if I generate "WebHelp" as the single source layout.

                I have one .xpj project called master that has some topics. I have other .xpj projects I refer to as subprojects. If one of the subprojects is A.xpj and one is B.xpj and the corresponding .hs file for both are listed as subsets on the JavaHelp "SubHelpSets - JavaHelp" window when you are setting up the info for JavaHelp to be the Single Source Layout for the master.xpj project, then how do I make a link from a topic in A.xpj to a topic in B.xpj?

                Can I use relative pathnames? For example, in a topic in A.xpj, when I highlight some text and then click the Hyperlink icon and the Hyperlink window is displayed, in the "Link to" field, can I put::

                ../B.xpj/goodtopic.htm

                I hope this makes some sense. Thanks for your patience and your help.

                Diane

                • 5. Re: Link to a topic in another project
                  MergeThis Level 4
                  Diane:

                  Example: merged project source directory:
                  C:\abcmerge\master
                  C:\abcmerge\projects\proj_A
                  C:\abcmerge\projects\proj_B
                  C:\abcmerge\projects\proj_C

                  Example: merged project output directory:
                  C:\abcgenerate\master
                  C:\abcgenerate\mergedProjects\proj_A
                  C:\abcgenerate\mergedProjects\proj_B
                  C:\abcgenerate\mergedProjects\proj_C

                  Therefore a link from a topic in A to a topic in B must come out of its folder, call the other folder, then the topic:
                  href="../proj_B/goodtopic.htm"

                  RH takes care of this for you if you have all the folders actually on your machine in the right structure. Initially, in the GUI, it'll show an absolute path. When you reopen the GUI, you'll see the relative path.


                  Good luck,
                  Leon

                  • 6. Re: Link to a topic in another project
                    oceanbreeze Level 1
                    Leon,

                    Thanks so much for your info. It is very helpful.

                    My file structure is:

                    Source
                    c:\aaa\master
                    c:\aaa\proj_A
                    c:\aaa\proj_B

                    Output
                    c:\aaa\master\!SSL!\JavaHelp ------ The output for all the topics from all the projects are in this JavaHelp folder when I generate the help from the master project.

                    Here is what I have for a link from proj_B to a topic in proj_A:

                    <a href="../proj_A/af0002_help.htm">test link to AF0002</a>

                    After I generate the JavaHelp from the master project the link shows as a link in the Java viewer window, but nothing happens when you click on it. With the JavaHelp, it never asks you to create a "merged" file, it simply has the SubHelpSets.

                    I'm not sure what to do.

                    Thanks,

                    Diane
                    • 7. Re: Link to a topic in another project
                      MergeThis Level 4
                      I provided an example of the WebHelp directory structure, which I assumed you could adapt to your Javahelp structure, which I'm not familiar with.

                      The reason for generating outside the !SSL!\[whateverlayoutyou'reusing default directory is to keep the source and output files entirely separate, with the least confusion. In addition, you can more easily back up your source files if they don't also include the output directories.


                      Good luck,
                      Leon
                      • 8. Re: Link to a topic in another project
                        oceanbreeze Level 1
                        Thanks for all your help. I used the folder structure "Merge This" suggested on April 17, 2007 and was able to make the external links work when my Single Source Layout is "WebHelp". However, if I use a Single Source layout of "JavaHelp", the external links do not work. What I mean by external link is linking from a topic in proj_A to a topic in proj_B.
                        I looked at the RoboHelp Help and found that one of the Limitations of JavaHelp is that it cannot do "links to external files". I've tried a lot of things but could not make an external link work in JavaHelp. Has anyone been able to do this? Thanks so much.
                        • 9. Re: Link to a topic in another project
                          MergeThis Level 4
                          From your responses, I'm guessing that you're unclear on the differing/converging aspects of RH source & output files in a merged project. The best structural setup, in my opinion, is Peter Grainge's method.

                          Using that method for our "IMS" product help (42 child projects), we have structured this:

                          C:/imsmerge
                          C:/imsmerge/imsportal/imsportal.xpj (contains a redirect page only, to the home page [site_map.htm] in ims_start)
                          C:/imsmerge/projects
                          C:/imsmerge/projects/ims_start/ims_start.xpj (contains the home page and other navigation pages)
                          C:/imsmerge/projects/projA/projA.xpj
                          C:/imsmerge/projects/projB/projB.xpj
                          etc.

                          The generation paths for them are these:

                          C:/imsgenerate/index.htm (output from the imsportal project, with RH frameset info and pointer to start page in ims_start)
                          C:/imsgenerate/mergedProjects
                          C:/imsgenerate/mergedProjects/ims_start/start.htm (output from the ims_start project)
                          C:/imsgenerate/mergedProjects/projA/start.htm (output from the projA project)
                          C:/imsmerge/mergedProjects/projB/start.htm (output from the projB project)
                          etc.

                          Therefore, a link from projA to ProjB needs to go back one directory (into the mergedProjects directory), then into the target:

                          EX: a href="../projB/MyTargetTopicLink.htm [tags not included]

                          All our topics call a "feedback_script.js" file (a mailto: setup), but that JavaScript file resides at the root (in the imsgenerate directory), so that link is:

                          EX: script src="../../feedback_script.js" language=javascript type="text/javascript" etc. [tags not included]

                          I'm not familiar with the Javahelp output either, but links is links is links... That is, when you are working in the projA RH project, and you want a link to projB, it's wise to actually have a copy of that projB project on your machine so that RH can create the proper link (unless you want to type in the correct path yourself, which you can do). However, the link path structure must be the same "relative" construct in the generated folders as it was in the source folders.


                          Good luck,
                          Leon
                          • 10. Re: Link to a topic in another project
                            MergeThis Level 4
                            In reply to a private message which I could not respond to:

                            No, the !SSL! structure is only the RH default generation folder structure. You should change the directory/startpage.htm path so that your child projects get generated to the "aaoutput/mergeProjects" directories, same as with the WebHelp.

                            In addition, "external files" in the RH help can mean any file outside the current, working project; that could mean a file in another project within a merged project (which should be allowed in JavaHelp), or some other type of file like .pdf, .doc, etc (which apparently is not).

                            Note also that in the "Merging JavaHelp projects" topic, RH mentions the need for an external help set file (.HS file), as well as extra .xml files, etc. Have you checked into all of that?


                            Good luck,
                            Leon
                            • 11. Re: Link to a topic in another project
                              oceanbreeze Level 1
                              June 27, 2007
                              I apologize for not posting my last question on the forum; I will do that from now on. Here is what I wrote on June 22. It is rather long:
                              ###########################################################
                              As you suggested in your 6/20/07 post, I looked at Peter Grainge’s method. I even downloaded his working example he mentions in his “How This Method Works” paragraph.
                              Using his working example, I found that the links from child_1 to child_2 work fine when I generate using the Single Source Layout of "WebHelp". However, without making any changes to the source, if I use a Single Source layout of "JavaHelp", the links from child_1 to child_2 do not work.
                              Perhaps it is the way RoboHelp generates JavaHelp output as it adds additional folders as it generates the JavaHelp output, for example it puts these folders in the output file structure:
                              \!SSL!\JavaHelp
                              which it apparently needs to generate and structure all the files, I would guess.
                              I looked at the RoboHelp Help and found that it says that one of the Limitations of JavaHelp is that it cannot do "links to external files".
                              If you are able to make Peter Grainge’s working example do the links from child_1 to child_2 when using the Single Source layout of "JavaHelp", I would be very interested to know how to do that. That is the essence of my problem.
                              ---------------------------------
                              I have also created my own small example and still found the same results…the links worked when generating WebHelp but not when generating JavaHelp.
                              Here is the file structure I am using:
                              SOURCE
                              c:\aaSource
                              c:\aaSource\master
                              c:\aaSource\master\first.htm
                              c:\aaSource\projects
                              c:\aaSource\projects\proj_A\LaneA.htm
                              c:\aaSource\projects\proj_B\LaneB.htm
                              c:\aaSource\projects\proj_C\LaneC.htm

                              OUTPUT
                              c:\aaOutput
                              c:\aaOutput\master
                              c:\aaOutput\master\first.htm
                              c:\aaOutput\mergedProjects
                              c:\aaOutput\mergedProjects\proj_A\LaneA.htm
                              c:\aaOutput\mergedProjects\proj_B\LaneB.htm
                              c:\aaOutput\mergedProjects\proj_C\LaneC.htm

                              HERE IS MY LINK FROM A TO B:
                              I understand the principle of relative links and going up one level, across, and down one level, so here is what I have for a link from topic LaneA.htm in proj_A to topic LaneB.htm in proj_B
                              <a href="../proj_B/LaneB.htm" target=_parent>LaneB</a>

                              #########################################################################
                              June 27, 2007
                              I tried what Leon suggested and changed the directory/startpage.htm path so that my child projects get generated to the "aaoutput/mergeProjects" directories, same as with the WebHelp.
                              My WebHelp "Select Output folder and Start Page" says:
                              C:\aaOutput\mergedProjects\proj_A\LaneA.htm
                              So for JavaHelp "Select Output folder and Start Page" I put:
                              C:\aaOutput\mergedProjects\proj_A\proj_a.hs
                              I could not put “LaneA.htm” because the JavaHelp generate wizard says it has to end in .hs: It says:
                              Please enter a valid extension for the output file: .hs.
                              I did this to all three (A, B, and C) projects, but the links did not work in JavaHelp.
                              If anyone has ever made a link actually work in JavaHelp, I would like to know or to know that I should just give up and tell my client that it cannot be done in JavaHelp.
                              Thanks so much for all your help.
                              Diane
                              • 12. Re: Link to a topic in another project
                                MergeThis Level 4
                                Diane:

                                Are you producing .JAR files (the compressed JavaHelp form)? If so, wouldn't your links have to reflect that? Hey, I have no idea if that means anything: I'm just reading the RH help.

                                Also, re-reading some of your posts, there seems to be some confusion between source files and output files. .xpj files (and .hhk, .kkp, .stp, etc.) are the source project files, and WebHelp, JavaHelp, HTML Help are output layouts. That output no longer contains any of those project source files.

                                Good luck,
                                Leon
                                • 13. Re: Link to a topic in another project
                                  MergeThis Level 4
                                  One other thing:

                                  The main reason I responded to your private message here in the forum was because the Personal Options in your Profile is set to not receive private messages (option: Off).

                                  Another reason is to help other users that might encounter similar issues in the future.


                                  Good luck,
                                  Leon
                                  • 14. Re: Link to a topic in another project
                                    oceanbreeze Level 1
                                    Thanks for all your help. I have now changed my options to be able to receive private messages in case needed in the future. Thanks for making me aware of this. I do agree with you, however, that it is more helpful to post the messages on the forum for others in the future.
                                    I may be very wrong, but I believe that now I have clearly separated my source files and output files. I think back in April I may have still been confused. I’m now using the structure shown in my June 27 posting. It works fine for WebHelp, but as we’ve talked, it’s a bit blurry for JavaHelp with the way JavaHelp generates its output.
                                    I am using “Uncompressed JavaHelp with source files” and JavaHelp 2.0.
                                    Since I have selected “Uncompressed”, it is my understanding that a .jar file is NOT created.
                                    At this point, I’m not sure what to do. This morning I opened a Technical Support Case with Adobe and asked them this question. I will post the answer when I receive it.
                                    Thanks,
                                    Diane