Calling Context Sensitive Help
What's Covered
This topic explains how to use Map IDs or URLs to call specific topics created in RoboHelp.
Frameless Skins
Using Map IDs
The call needs to be in the format - path/index.htm?rhmapno=123
If you require greater control over how the help opens, for example to a specific window, see the RoboHelp CSH API section below.
Using URLs
Each topic has a unique URL and the help will open with all the navigation components.
Responsive Skins
Using Map IDs
The call needs to be in the format - path/index.htm?rhmapno=123
If you require greater control over how the help opens, for example to a specific window, see the RoboHelp CSH API section below.
Using URLs
If you use the URL of the topic in the format path/topic_name.htm, the topic will open without the navigation controls, the user will have to click a link to open the TOC and other controls.
To open the help with the navigation controls, you need a path that includes the start page of the help, by default that is index.htm.
You then append #t= followed by the rest of the path to the required topic. For example - path/index.htm#t=path/topic_name.htm
Changing from Responsive to Frameless Help
As above, your calls will need to change if you choose to upgrade and use URLs rather than map ids. However, your users may have bookmarked topics and they will have saved URLs. On changing to frameless help, those bookmarks will break.
In this forum thread, davidd99046111 posted a nice solution whereby instead of getting a 404 Page not Found message, the user is taken to the help home page where an explanation can be added.
I have added a couple of tips and Adobe have suggested another solution as well as adding a caution if the frameless home page is used.
Steps
- Create a topic with the file name index.htm. That should be in the root of the Contents.
- Add the topic to the TOC with the Exclude This Topic From Search option selected so that it is not found by a search.
- Set a different topic as the default. That should contain a note somewhere to tell users who have used a bookmark why they have landed here and tell them how to locate the required topic and create a new bookmark.
- Generate the help.
To Test
- Open the help.
- Amend the link in the browser from say file:///C:/00_Test_Projects/Outputs/Frameless/Topic_Name.htm to file:///C:/00_Test_Projects/Outputs/Frameless/index.htm
- Paste that into a new window and when you press Enter, the help opens perfectly to the default topic.
- Append an HTML call as below. That is the link a user will have. That will appear in the browser momentarily and because it cannot be found, the output will be opened to the default topic. That should include a note explaining the user needs to change their bookmark.
file:///C:/00_Test_Projects/Outputs/Frameless/index.htm#t=folder1%2Ffolder2%2Ftopic.htm
Adobe have suggested that javascript can be added to the index.htm file created in Step 1 that could redirect the user to the new topic. Maybe your developers can assist with that.
One caution they have added is if you are using a home page in the frameless output, that will create an index.htm file causing a conflict. You will need to change the name of the start page to something else. I believe that home.htm and default.htm will both work in the same way as index.htm but check that with your developers. The user will then land on the home page where you can add an explanatory note.
WebHelp
WebHelp is a format that was offered in Classic versions of RoboHelp.
- RoboHelp 2019 New UI only offers Responsive outputs so on upgrade you will need to choose one of the Responsive skins.
- RoboHelp 2020 introduced Frameless skins.
The new skins allow the appearance to change to suit the device being used to view the output. There is an option to turn off responsiveness in both skins.
On upgrading to the new UI, your help calls will need to change. See the RoboHelp Tour for information.
Using Map IDs
The call needs to be in the format - path/index.htm#<id=123>>newwnd=false
Thus #<id=123>>newwnd=false is replaced by ?rhmapno=123
Using URLs
The format of URLs in Classic versions was path/index.htm#path/target_topic_1.htm.
In RoboHelp 2019 the format is path/index.htm#t=path/topic_name.htm. Note that the # symbol is followed by t=.
Classic Versions
Using Map IDs
The call needs to be in the format - path/index.htm#<id=123>>newwnd=false
Using URLs
To open a specific topic with the TOC and navigation shown use the path to the start page followed by a hash symbol and then the path to the required topic.
path/index.htm#path/target_topic_1.htm
Merged Help
Using Map IDs
If you call topics using map ids, the parent and all the child projects should have unique map ids in their map files.
If a child topic uses a map id which is same as a parent topic, then using Parent/index.htm?rhmapno=123 will result in loading the parent’s topic (if it exists).
If for some reason you cannot avoid duplication, then use the child project’s own index.htm file path.
For example - Parent/mergedProjects/child_one/index.htm?rhmapno=123
If you require greater control over how the help opens, for example to a specific window, see the RoboHelp CSH API section below.
Using URLs
Frameless Skins
Each topic has a unique URL and the help will open with all the navigation components.
Responsive / WebHelp Skins
If you use the URL of the topic in the format path/topic_name.htm, the topic will open without the navigation controls, the user will have to click a link to open the TOC and other controls.
To open the help with the navigation controls, you need a path that includes the start page of the help, by default that is index.htm.
You then append #t= followed by the rest of the path to the required topic.
For example - path/index.htm#t=path/topic_name.htm
CHMs
To create CSH with CHMs (Microsoft HTML Help), use the RoboHelp CSH API described below.
Using Map IDs
To call a topic using a map number, make a call to the HTML Help API using the following syntax
HWND HtmlHelp(Window(), “c:\path\helpfile.chm”, HH_HELP_CONTEXT, Number);
Using a File Name
To call a topic using the file name, make a call to the HTML Help API using the following syntax
HWND HtmlHelp (Dialog(), “c:\path\helpfile.chm”, HH_DISPLAY_TOPIC, "topicfile.htm");
RoboHelp CSH API
In C:\Program Files\Adobe\Adobe RoboHelp 2019\CSH API, RoboHelp provides versions of this API file in a number of programming languages. Developers can use this file so that it calls the help using map ids with the parameters they required, such as a specific window.
Creating Map IDs
RoboHelp 2019 and 2020
Creating Map IDs in RoboHelp 2019 is described in the RoboHelp Tour and the RoboHelp Reimagined sample project.
Classic Versions
The topic describing Calling CHMs includes information on creating map ids that is applicable to all outputs.
Donations
If you find the information and tutorials on my site save you time figuring it out for yourself and help improve what you produce, please consider making a small donation.