We create CSH for all of our product's table fields We are currently using the TopicAlias marker to create tags in FrameMaker source that are defined as <FieldName>. The TableName values are Heading1, so they are being written to individual table-specific htm files.
When we generate the help in RoboHelp, we get:
So the lookup is now TableName-.htm#CSH_xxx
What we really want, based on what the developers are looking for, is: TableName.htm#FieldName
Is there a way to suppress the addition of these unwanted items in the URLs?
Copy link to clipboard
What version of FM & RH and are you importing or linking content?
We are using FM and RH from TCS 2015. We are importing from FM.
First make sure you're entirely patched up on both sides. As far as your #1 want - yes, you can put whatever you want into the marker text to come over as the CSH tag in RH - I use the program name of each screen in my FM to RH project. You then get a cross-ref file (the BSSCDefault.h) that is used to interpret the program name text to a MapID number. We've got the software rigged to pass in the program name & come up with the number to be used in the CSH call.
The #2 want can probably be controlled by using FM markers and text also. I know that there's a way of setting the resulting filename created in RH to what you tell it to in FM.
Secondly, this whole thread should probably be over in the FM integration section - but I don't have enough rights to move it for you - maybe Rick can do that ;>)
We were hoping to avoid using the mapping file as our developers have set up a method to call the help based on <tablename>.htm#<fieldname>. We wanted to have the fieldname as the actual bookmark text in the html file (the anchor portion of the URL), rather than the CSH_xxx generated bookmark name. fieldname is our marker text in FM (we are currently using the TopicAlias marker type).
As far as the html filename, it is basically what we want based on our Heading1 style being used for pagination in RH. The only issue is that RH is adding a hyphen at the end of the name (Sites-.htm rather than Sites.htm as we would expect).
What does your Conversion Settings screen look like? I think that's where it's dealing with the pagination of the Heading1 paragraph tag - maybe it's picking up some extra stuff in the definition - have you got it mapped using "[Source]" ?
We are using the [Source] – not mapping to a different RH style. It is the way we have always done it and it did not happen when we were using RH11. We have previous help builds with RH11 and none of the filenames are appended with the hyphen. Using the same FM book, RH2015 appends the hyphens.
As a workaround, I'd try an experiment - use $paratext inside angle brackets (which don't appear well in the forums) and see if the filename changes. If it doesn't, then set up a small sample file & submit a bug report to the bugbase.
Thanks, we will try that experiment...meanwhile, what about the other issue of being able to generate bookmark URLs within our output that follow the <tablename>.htm#<fieldname> format instead of Robohelp's default format of <tablename>.htm#CSH_xxx? Is that possible? In other words, the developers want to be able to link directly to our output html without having to use a cross-reference file to determine what <fieldname> is.
Not that way I suspect - the CSH call wants a number in there to work - you need a conversion to turn "<fieldname>" into the CSH number. Or they could use the direct URL to the html file as their method..
When you say the developers could use the direct URL to the html file as their method, that only works if they can find an anchor in the html file that has just the <fieldname> we have authored into the content as a topic alias (or some other such tag). We need a way to define the contents of an <a> tag, either in the source FM files or in the RH output settings, that would not get altered in the resulting html files. Can that be done? The developers do not want the added burden of a map file, and I have to believe there is a way to do this without a large post-processing effort.
I think I misunderstood what you're producing - I was thinking that you had an individual HTML file that matched each field name (1 HTML = 1 field name) - your anchor comment leads me to think that this is not the case - you still have a bunch of field names all contained within a number of separate HTML files (x HTML = y field names). In that case, yes they would need a bookmark to the "right" spot in the HTML. You could do that with custom markers in the FM content - but that seems like a lot of effort when just launching the help via RH tools they provide with MapIDs is much easier IMHO.
Yes, I am sorry for the confusion, and you are correct that we have multiple html files (one for each table in the product), each with multiple fieldnames. My next question, based on your response, is how can we create custom markers in the FM content that won't get modified when they are imported into RH and then output as Webhelp html files?
While waiting for your response to my latest question, I have thought of another question: Is there a way in RoboHelp to suppress the addition of a Map Number to a Topic ID? Is there some setting or call in the code that could be tweaked to effect this desired outcome; i.e., no Map Number prefix in the generated Map ID?
I don't use the FM route often, so I can't add much on the marker part. In the past, I have created a script once where extracted markers from FrameMaker were added to RoboHelp after linking. More work was involved than simply adding a marker.
As for your other question: Map numbers and Topic ID's are pairs. You need both for the CSH to work on the Robo side. That said, you can use either ID or numbers for your calls. So if you don't want to use the map number, you can also call the help using the topic id's instead. Is that what you're looking for?
What we want is for our developers to make CSH calls directly to the html pages, which ideally would contain <a> tags with only the topic alias defined in Framemaker - and NO map IDs...it sounds like there is no way to do that.
I may have minunderstood in that case. In the conversion from Frame to RoboHelp, you can specify a custom marker for CSH, the 'context sensitive help marker'. You pick the marker you want to use for the CSH and RH uses that one. Does that one suffice? (It's below the Other settings in the conversion dialog)
The problem is that, regardless of the type of marker selected and used, Robohelp does not generate the <a name="..".></a> tag based strictly on the marker we provide. It creates another mapping file (a .h file) and uses the ID from the mapping file as the bookmark in the .htm file. If I specify a topicalias or any other custom marker in Framemaker as "unicorn" and then generate animals.htm in Robohelp, then I want to see <a name="unicorn"></a> in the animals.htm file, not <a name="CSH_213"></a> or whatever number got mapped to the topic alias. I don't want any mapping maintained and used in some other .h file. I want my developer to be able to call animals.htm#unicorn and pull up that topic for the context sensitive help. Does this explain what we are trying to do?
I don't know about a great idea, but I just had a look at some of my FM to RH content to see what comes over. In my FM content, I have a custom marker type set up for cross-references (so that when I create a cross-reference within FM, I can read my own text for the location and not have to look at the paragraph type). It appears that some of that marker text survives the conversion to RH. For example, one of the topics has marker text that reads "GJKM1A Basic Club Profile - Options button" - over in RH, that gets turned into a bookmark with the "name="XREF_GJKM1A_Basic_Club">". So it looks like if you keep the text short enough in your marker, it will come across to RH. Note: this cross-reference marker isn't the same one that I use for CSH - that one is another custom marker type I called "CSHMarker" and it's the one that gets mentioned in the Conversion settings. The text within that marker provides the basis for my .h mapids.
I have upgraded from TCS 4 (2013) to TCS 2017 and I now have this hyphen problem at the end of each htm file imported from Framemaker. Any clues as to correcting the problem?