diff options
| author | Simon Tatham <anakin@pobox.com> | 2017-05-13 18:33:51 +0100 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2017-05-13 18:37:04 +0100 |
| commit | 7e330bca5bc45fa7feb6c31da5c3f1b6b44c208c (patch) | |
| tree | 07899cb827ade0aeac5050408b03cccefccce3bb /input.c | |
| parent | cf30118640f67342e287e6d609869e4416bc4b91 (diff) | |
| download | halibut-7e330bca5bc45fa7feb6c31da5c3f1b6b44c208c.zip halibut-7e330bca5bc45fa7feb6c31da5c3f1b6b44c208c.tar.gz halibut-7e330bca5bc45fa7feb6c31da5c3f1b6b44c208c.tar.bz2 halibut-7e330bca5bc45fa7feb6c31da5c3f1b6b44c208c.tar.xz | |
New output mode to write CHM files directly.
I became aware a few months ago that enough is known about CHM files
that free software _can_ write them without benefit of the MS HTML
Help compiler - in particular there's a thing called 'chmcmd' in the
Free Pascal Compiler software distribution which is more or less a
drop-in replacement for hhc.exe itself.
But although depending on chmcmd would be a bit nicer than depending
on hhc.exe, Halibut has always preferred to do the whole job itself if
it can. So here's my own from-scratch code to generate CHM directly
from Halibut source.
The new output mode is presented as a completely separate top-level
thing independent of HTML mode. Of course, in reality, the two back
ends share all of the HTML-generation code, differing only in a few
configuration defaults and the minor detail of what will be _done_
with each chunk of HTML as it's generated (this is what the recent
refactoring in b3db1cce3 was in aid of). But even so, the output modes
are properly independent from a user-visible-behaviour perspective:
they use parallel sets of config directives rather than sharing the
same ones (you can set \cfg{html-foo} and \cfg{chm-foo} independently,
for a great many values of 'foo'), and you can run either or neither
or both as you choose in a given run of Halibut.
The old HTML Help support, in the form of some config directives for
HTML mode to output the auxiliary files needed by hhc.exe, is still
around and should still work the same as it always did. I have no real
intention of removing it, partly for the reasons stated in the manual
(someone might find it useful to have Halibut generate the .HHP file
once and then make manual adjustments to it, so that they can change
styling options that the direct CHM output doesn't permit), and mostly
because it wouldn't save a great deal of code or complexity in any
case - the big two of the three auxiliary files (the HHC and HHK) have
to be generated _anyway_ to go inside the .CHM, so all the code would
have to stay around regardless.
Diffstat (limited to 'input.c')
0 files changed, 0 insertions, 0 deletions