Migrating from HTMLHelp (CHM) to HTML5/Top-Nav CSH

This forum is for all Flare issues related to the HTML5, WebHelp, WebHelp Plus, and Adobe Air Targets
Post Reply
Chicago_HPT
Sr. Propeller Head
Posts: 133
Joined: Sun Feb 03, 2013 6:01 pm

Migrating from HTMLHelp (CHM) to HTML5/Top-Nav CSH

Post by Chicago_HPT »

Hi folks,

A potential client currently uses HTMLHelp (*.chm) and I would like to recommend they switch to Top-Nav HTML5 help. Currently, they employ tightly-integrated context-sensitive help. Does anyone know what sort of hurdles they would face if they chose to migrate to HTML5 CSH? While I plan to discuss adding a web-based version of their help, the primary help will almost certainly need to be local to the end-user's machine, like the current HTMLHelp.

In particular, I'm hoping someone could help with the following questions:
  1. Are there any issues implementing HTML5/Top-Nav help locally? The client releases occasional software updates/patches so I'm not worried about updates to the help content.
  2. How difficult would it be for the developers to switch CSH calls in the application to call HTML5 help? The software appears to be written in C++ or some other VisualStudio language, such as C#.
Many thanks!
-jeff
Paul_N
Propeller Head
Posts: 55
Joined: Mon Feb 09, 2015 5:57 am
Location: Yorkshire, UK

Re: Migrating from HTMLHelp (CHM) to HTML5/Top-Nav CSH

Post by Paul_N »

I know it's not exactly the same as your requirement, but I've migrated several help files that were delivered as CHMs/WebHelp authored in RoboHelp, to CHMs/WebHelp in Flare. I used Flare's File > New Project > RoboHelp Project function.

It went pretty smoothly, the context csh calls worked out of the box for the CHM output target.

The only thing I had to tweak for the WebHelp target was the output folders that were created (they differed between the RH and Flare outputs). So that may be an issue for Target=HTML5/Top Nav.
cdschroeder
Sr. Propeller Head
Posts: 189
Joined: Mon Feb 22, 2016 9:18 am
Location: Cincinnati, OH

Re: Migrating from HTMLHelp (CHM) to HTML5/Top-Nav CSH

Post by cdschroeder »

We just migrated our content from CHM to HTML5 a few months ago, and install our files locally as well. Our plan is to have them online soon, but like you, we wanted to implement them locally first. To answer your questions:

1. If you choose to open the help in the computer's default browser, the main issue you will have is with Microsoft Edge + CSH calls. Essentially, Microsoft Edge has a security protocol which flags files with the # sign that are run through Windows API. As you likely know, CSH uses the # sign to redirect to the correct page. The end result is that when the default browser is Edge, CSH links open to the home page. Fortunately, our devs eventually found a solution, which I can share with you if you need it.

2. Regarding changing CSH calls - once our devs figured out the right call (Flare has a nice page on it here: http://help.madcapsoftware.com/flare201 ... lopers.htm), they essentially did a find and replace. For over 1000 calls, it took a junior dev about 8 hours to fully research, implement, and test it.

If you have any more questions/problems, let me know!
Casey

Image
devjoe
Sr. Propeller Head
Posts: 337
Joined: Thu Jan 23, 2014 1:43 pm

Re: Migrating from HTMLHelp (CHM) to HTML5/Top-Nav CSH

Post by devjoe »

You don't mention it, but if you have modular CHM help (where multiple CHM files make up one help system), that's not going to work with top nav, which doesn't support merging the output of multiple projects. That is OK in HTML5 tripane.
garyetzel
Jr. Propeller Head
Posts: 4
Joined: Tue Aug 25, 2015 7:32 am

Re: Migrating from HTMLHelp (CHM) to HTML5/Top-Nav CSH

Post by garyetzel »

Hi cdschroeder, I am interested to know how your developers tackled the Microsoft Edge problem. Is that something you can share here, for the benefit of other users? If not, I can provide some contact information if you'd be willing to contact me off list.
cdschroeder
Sr. Propeller Head
Posts: 189
Joined: Mon Feb 22, 2016 9:18 am
Location: Cincinnati, OH

Re: Migrating from HTMLHelp (CHM) to HTML5/Top-Nav CSH

Post by cdschroeder »

Sure! I have a document from the developers that I will paste below. If more info is needed, just let me know and I'll do my best to help.

Problem: CSH Links don't work in Microsoft Edge due to pound (#) sign
Cause: Microsoft Edge views local files which contain a # sign and are opened through API as a potential threat. As a result, it removes the # and any characters following. This is only an issue for files which meet the following criteria: 1) Are local, 2) Are opened through Windows API, 3) Contain the # sign.
Easy Solution: Host HTML5 help on a web server [unfortunately, not an option for us]
Less Easy Solution: Trick Microsoft.

Overview: We determined an alternate approach was necessary to "convince" Edge to open CSH files. Our approach was to create a temporary HTML file with the offending URL written inside the HTML file itself. When the customer calls for CSH, the software creates a temporary HTML file. The temporary file contains the URL, and redirects to the correct page. Since the API call occurs before the link is passed to Edge, the # is not removed.

Sample temporary HTML file:

Code: Select all

<html>
<meta http-equiv=Refresh content="0; url=file:///C:/myFile Name.htm#101">
<body></body>
</html>
Process:
1. Get the file name plus path where you want to create the temporary html file. For example: MyTempFile = ‘C:/myTempFile.html’.
2. If MyTempFile exists, then delete it.
3. Create a new MyTempFile.
4. Get the content to be written to the HTML file. You may need to build the string with your specific ID to be passed. For example:

Code: Select all

 '<html><meta http-equiv=Refresh content="0; url=file:///C:/myFile Name.htm#' + CovertIntToStr(myID) + ' "><body></body></html>'
5. Write this string to the MyTempFile HTML file.
6. Close the file so that it can be opened by other processes.
7. Use any of the Widows APIs to open this MyTempFile file. I used ShellExecute to simply open the file:

Code: Select all

ShellExecute(0, 'OPEN', PChar(MyTempFile), '', '', SW_SHOWNORMAL).
8. The code inside the MyTempFile takes care of redirecting it to the correct URL.
Casey

Image
OomikeoO
Propeller Head
Posts: 12
Joined: Wed Feb 12, 2014 4:04 am

Re: Migrating from HTMLHelp (CHM) to HTML5/Top-Nav CSH

Post by OomikeoO »

We're also experiencing the problem of MS Edge removing query strings on local file system.

Is there really no other solution than the one offered by cdschroeder?
cdschroeder
Sr. Propeller Head
Posts: 189
Joined: Mon Feb 22, 2016 9:18 am
Location: Cincinnati, OH

Re: Migrating from HTMLHelp (CHM) to HTML5/Top-Nav CSH

Post by cdschroeder »

OomikeoO wrote:We're also experiencing the problem of MS Edge removing query strings on local file system.

Is there really no other solution than the one offered by cdschroeder?
I personally haven't heard of any other solutions since the one we implemented here. At the time I left my last role (where this workaround was implemented), there was a bug open on the Microsoft Developers > Edge site where numerous people had complained about it.

Unfortunately, that page has since been replaced by an announcement for the new Microsoft Edge (https://developer.microsoft.com/en-us/microsoft-edge/), which I suppose might have a fix since it's Chromium-based, but who knows.

Sorry I don't have anything more to contribute - perhaps someone else has dealt with this more recently.
Casey

Image
Post Reply