Home Forums DITA and XMetaL Discussion modifying CHM output functionality Reply To: modifying CHM output functionality

Derek Read

Reply to: modifying CHM output functionality

@gcrews: “Xmetal does some stuff to the hhp”…

If you are wondering what XMetaL is actually doing when it calls the DITA OT to generate output you may wish to view the list of commands that XMetaL calls.

The commands are in the following file (for XMetaL Author Enterprise 6.0), which you can open directly inside of XMetaL (a basic customization is provided to view these files). Search for the text “HTML Help (CHM)” to find the list of commands used by the CHM deliverable.

C:Program FilesXMetaL 6.0AuthorDITAXACssharedrenditionsprint_dita142.xml

The content of each is copied verbatim into a standard (DOS) batch file before that batch file is run.

If you want to see what everything looks like you can get XMetaL Author Enterprise to generate output and not clean up any of the files it uses to do that:

[list type=none]

  • a) Select Tools > Configure Output and in that dialog on the Advanced tab look for the following setting:
                    _rem_cmd_synchro_mode  =  2
    b) Remove the _rem_ part so that it looks like this:
    cmd_synchro_mode  =  2
    c) Open a DITA map or topic and generate output using the “HTML Help (CHM)” deliverable. When that process is complete select the Open Folder button instead of Open File in the dialog that appears. You can select any deliverable type, but we were initially discussing CHM output in this thread.
    d) In the folder that opens there should be a subfolder called xmetal_log (yes, I agree this is a perhaps a poor name choice, but this feature was not originally designed to be visible to clients and was also initially used for the output log only). Inside that folder is everything you need to generate the same output you just generated. You simply need to run the file dita_call.bat again.
    e) To show that it is this set of files that is actually generating output shut down XMetaL, then inside the chm_out  folder delete everything except the xmetal_log folder, and finally inside xmetal_log run the dita_call.bat batch file.
  • An added benefit of turning on the cmd_synchro_mode = 2 option (which is currently undocumented) is that you can generate output and then immediately return to editing in XMetaL Author Enterprise. Without this command XMetaL is performing the exact same set of steps, it just locks itself and then cleans up the xmetal_log folder so that you never see it.