-
Notifications
You must be signed in to change notification settings - Fork 80
Description
The steps to open the preferences dialog are repeated many times in the docs, and they are heavily profiled because of the differences between standalone and the various flavors of Eclipse. Often the profiling is inconsistent from one topic to another, and they are painful to debug.
To address this, I looked for a way to move the initial steps of the menucascade to a reusable file in such a way that the profiling would be in the reusable content, not in each instance where it is used. This means having a single keyref or conkeyref that is used wherever the user has to call up the preferences dialog.
This means having a single keyref (or conkeyref) that pulls in . So far I have not been able to find a way to do it. Here are some of the obstacles I have encountered:
- Because it is only part of a menucascade that I am using, I need to use ids on the first and last uicontrol of each sequence and use conref and conrefend to select just the uicontrols I want. The problem is, I also have to apply the profiling to these same uicontrols, and:
- I can't use the same id with different profiling because the ids are unique across a file, regardless of profiling.
- I can't use ids at the start and end of a whole block of profiled uicontrols because then the ids are not visible to the profiles that don't include them, breaking the conref.
- I can't put a wrapper element like ph around a block of uicontrols because ph is not allowed inside menucascade.
All of which means there is no way that I can find to profile in the reusable content. So I looked for a way to profile at the map level. I came up with the structure shown in commit 26c28b1 in C:\Users\Mark\userguide\DITA\reusables\reusables.ditamap and C:\Users\Mark\userguide\DITA\reusables\topics\reusable.menu-elements.dita.
This approach uses double indirection, but it validates fine. However, it does not build correctly. The build fails with:
[conref] : Fatal Error! Error reported by XML parser processing file:/C:/Users/Mark/userguide/DITA/temp/webhelp/oxygen_dita_temp/reusables/reusables.ditamap: Premature end of file. Cause: org.xml.sax.SAXParseException; Premature end of file.
The version of reusables.ditamap in temp is actually empty.
I don't know if this is a bug or if the double indirection I am trying to do is illegal, but either way, I'm stumped.
Can anybody think of a way to do this, because it would really help clean up the source, reduce authoring effort, and reduce errors if we could make it work. It probably applies to a number of other menucascades besides preferences.