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

  1. Create a topic with the file name index.htm. That should be in the root of the Contents.
  2. Add the topic to the TOC with the Exclude This Topic From Search option selected so that it is not found by a search.
  3. 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.
  4. Generate the help.

To Test

  1. Open the help.
  2. 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
  3. Paste that into a new window and when you press Enter, the help opens perfectly to the default topic.
  4. 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.