X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/339cbe09f017eb521e1d623b70a59b902dbc4711..91f93b94744447a088ce435e50500a9598cb5466:/doc/output.but?ds=sidebyside diff --git a/doc/output.but b/doc/output.but index 5c70e72..986f53d 100644 --- a/doc/output.but +++ b/doc/output.but @@ -8,7 +8,7 @@ that format. \H{output-text} Plain text This output format generates the document as a single \i{plain text} -file, under the name \i\c{output.txt}. +file. The output file is currently assumed to be in the \i{ISO 8859-1} character set. Any Unicode characters representable in this set will @@ -19,6 +19,15 @@ The precise formatting of the text file can be controlled by a variety of configuration directives. They are listed in the following subsections. +\S{output-text-file} Output file name + +\dt \I{\cw{\\cfg\{text-filename\}}}\cw{\\cfg\{text-filename\}\{}\e{filename}\cw{\}} + +\dd Sets the \i{output file name} in which to store the text file. +This directive is implicitly generated if you provide a file name +parameter after the command-line option \i\c{--text} (see +\k{running-options}). + \S{output-text-dimensions} Indentation and line width This section describes the configuration directives which control @@ -187,6 +196,8 @@ in bulletted lists. It can be one character The \i{default settings} for Halibut's plain text output format are: +\c \cfg{text-filename}{output.txt} +\c \c \cfg{text-width}{68} \c \cfg{text-indent}{7} \c \cfg{text-indent-code}{2} @@ -223,13 +234,85 @@ default, this will be in multiple files, starting with and/or subsection. You can configure precisely how the text is split between HTML files using the configuration commands described in this section. In particular, you can configure Halibut to output one -single HTML file instead of multiple ones, in which case it will be -called \c{Manual.html} (but you can rename it easily enough). +single HTML file instead of multiple ones. Strictly speaking, the output format is \i{XHTML} 1.0 Transitional, which is why all of the configuration directives start with the word \c{xhtml} rather than \c{html}. +\S{output-html-file} Controlling the output file names + +\dt \I{\cw{\\cfg\{xhtml-contents-filename\}}}\cw{\\cfg\{xhtml-contents-filename\}\{}\e{filename}\cw{\}} + +\dd Sets the \i{output file name} in which to store the top-level +contents page. Since this is the first page a user ought to see when +beginning to read the document, a good choice in many cases might be +\c{index.html} (although this is not the default, for historical +reasons). + +\dt \I{\cw{\\cfg\{xhtml-index-filename\}}}\cw{\\cfg\{xhtml-index-filename\}\{}\e{filename}\cw{\}} + +\dd Sets the file name in which to store the document's index. + +\dt \I{\cw{\\cfg\{xhtml-template-filename\}}}\cw{\\cfg\{xhtml-template-filename\}\{}\e{template}\cw{\}} + +\dd Provides a \i{template} to be used when constructing the file +names of each chapter or section of the document. This template +should contain at least one \i\e{formatting command}, in the form of +a per cent sign followed by a letter. (If you need a literal per +cent sign, you can write \c{%%}.) + +\lcont{ + +The formatting commands used in this template are: + +\dt \i\c{%N} + +\dd Expands to the visible title of the section, with white space +removed. So in a chapter declared as \q{\cw{\\C\{fish\} Catching +Fish}}, this formatting command would expand to +\q{\cw{CatchingFish}}. + +\dt \i\c{%n} + +\dd Expands to the type and number of the section, without white +space. So in chapter 1 this would expand to \q{\cw{Chapter1}}; in +section A.4.3 it would expand to \q{\cw{SectionA.4.3}}, and so on. +If the section has no number (an unnumbered chapter created using +\c{\\U}), this directive falls back to doing the same thing as +\c{%N}. + +\dt \i\c{%b} + +\dd Expands to the bare number of the section. So in chapter 1 this +would expand to \q{\cw{1}}; in section A.4.3 it would expand to +\q{\cw{A.4.3}}, and so on. If the section has no number (an +unnumbered chapter created using \c{\\U}), this directive falls back +to doing the same thing as \c{%N}. + +\dt \i\c{%k} + +\dd Expands to the internal keyword specified in the section title. +So in a chapter declared as \q{\cw{\\C\{fish\} Catching Fish}}, this +formatting command would expand to \q{\cw{fish}}. If the section has +no keyword (an unnumbered chapter created using \c{\\U}), this +directive falls back to doing the same thing as \c{%N}. + +These formatting directives can also be used in the +\cw{\\cfg\{xhtml-template-fragment\}} configuration directive (see +\k{output-html-misc}). + +} + +\dt \I{\cw{\\cfg\{xhtml-single-filename\}}}\cw{\\cfg\{xhtml-single-filename\}\{}\e{filename}\cw{\}} + +\dd Sets the file name in which to store the entire document, if +Halibut is configured (using \c{\\cfg\{xhtml-leaf-level\}\{0\}} to +produce a single self-contained file. Both this directive \e{and} +\c{\\cfg\{xhtml-leaf-level\}\{0\}} are implicitly generated if you +provide a file name parameter after the command-line option +\i\c{--html} (see \k{running-options}). + \S{output-html-split} Controlling the splitting into HTML files By default, the HTML output from Halibut is split into multiple @@ -259,6 +342,12 @@ If you set this option to zero, then the whole document will appear in a single file. If you do this, Halibut will call that file \i\c{Manual.html} instead of \i\c{Contents.html}. +This option is automatically set to zero if you provide a file name +parameter after the command-line option \i\c{--html} (see +\k{running-options}), because you have specified a single file name +and so Halibut assumes you want the whole document to be placed in +that file. + } \dt \I{\cw{\\cfg\{xhtml-contents-depth\}}}\cw{\\cfg\{xhtml-contents-depth-}\e{level}\cw{\}\{}\e{depth}\cw{\}} @@ -395,6 +484,17 @@ particular level, before displaying the section title. \S{output-html-misc} Miscellaneous options +\dt \I{\cw{\\cfg\{xhtml-template-fragment\}}}\cw{\\cfg\{xhtml-template-fragment\}\{}\e{template}\cw{\}} + +\dd This directive lets you specify a \i{template}, with exactly the +same syntax used in \cw{\\cfg\{xhtml-template-filename\}} (see +\k{output-html-file}), to be used for the anchor names (\i\cw{}) used to allow URLs to refer to specific sections +within a particular HTML file. So if you set this to \q{\cw{%k}}, +for example, then each individual section in your document will be +addressable by means of a URL ending in a \c{#} followed by your +internal section keyword. + \dt \I{\cw{\\cfg\{xhtml-versionid\}}}\cw{\\cfg\{xhtml-versionid\}\{}\e{boolean}\cw{\}} \dd If this is set to \c{true}, \i{version ID paragraphs} (defined using @@ -428,6 +528,12 @@ document}description of the document. The \i{default settings} for Halibut's HTML output format are: +\c \cfg{xhtml-contents-filename}{Contents.html} +\c \cfg{xhtml-index-filename}{IndexPage.html} +\c \cfg{xhtml-template-filename}{%n.html} +\c \cfg{xhtml-single-filename}{Manual.html} +\c \cfg{xhtml-template-fragment}{%b} +\c \c \cfg{xhtml-leaf-level}{2} \c \cfg{xhtml-leaf-contains-contents}{false} \c \cfg{xhtml-leaf-smallest-contents}{4} @@ -466,17 +572,26 @@ The \i{default settings} for Halibut's HTML output format are: \H{output-whlp} Windows Help This output format generates data that can be used by the \i{Windows -Help} program \cw{WINHELP.EXE}. There are two actual files generated, -called \c{output.hlp} and \c{output.cnt}. (You can rename them both -with no problems; they don't depend on keeping those filenames. You -just have to make sure that the two names are related in this way, -so that \c{.hlp} on the end of one name is replaced by \c{.cnt} on -the end of the other.) - -The Windows Help output format is currently not configurable at all; -all formatting decisions are fixed. However, there is one -configuration directive you can use, which is not so much -\e{configuration} as extra functionality: +Help} program \cw{WINHELP.EXE}. There are two actual files +generated, one ending in \c{.hlp} and the other ending in \c{.cnt}. + +The Windows Help output format supports the following configuration +directives: + +\dt \I{\cw{\\cfg\{winhelp-filename\}}}\cw{\\cfg\{winhelp-filename\}\{}\e{filename}\cw{\}} + +\dd Sets the \i{output file name} in which to store the man page. +This directive is implicitly generated if you provide a file name +parameter after the command-line option \i\c{--winhelp} (see +\k{running-options}). + +\lcont{ + +Your output file name should end with \c{.hlp}; if it doesn't, +Halibut will append it. Halibut will also generate a contents file +(ending in \c{.cnt}) alongside the file name you specify. + +} \dt \I{\cw{\\cfg\{winhelp-topic\}}}\cw{\\cfg\{winhelp-topic\}\{}\e{topic-name}\cw{\}} @@ -503,6 +618,12 @@ different help contexts which you can use in this way. } +The \i{default settings} for the Windows Help output format are: + +\c \cfg{winhelp-filename}{output.hlp} + +and no \c{\\cfg\{winhelp-topic\}} directives anywhere. + \H{output-man} Unix \cw{man} pages This output format generates a Unix \i{\cw{man} page}. That is to say, @@ -511,6 +632,13 @@ macro package. The available configuration options for this format are as follows: +\dt \I{\cw{\\cfg\{man-filename\}}}\cw{\\cfg\{man-filename\}\{}\e{filename}\cw{\}} + +\dd Sets the \i{output file name} in which to store the man page. +This directive is implicitly generated if you provide a file name +parameter after the command-line option \i\c{--man} (see +\k{running-options}). + \dt \I{\cw{\\cfg\{man-identity\}}}\cw{\\cfg\{man-identity\}\{}\e{text}\cw{\}\{}\e{text...}\cw{\}} \dd This directive is used to generate the initial \i{\c{.TH} @@ -534,7 +662,8 @@ A traditional order for the arguments appears to be: For example, a typical \cw{man} page might contain -\c \cfg{man-identity}{make-foo}{1}{June 2003}{foo-utils}{Fred Bloggs} +\c \cfg{man-identity}{make-foo}{1}{June 2003}{foo-utils}{Fred +\c Bloggs} } @@ -576,7 +705,8 @@ simply says Then you have a file \c{make-foo.but}, and probably others like it as well, each of which looks something like this: -\c \cfg{man-identity}{make-foo}{1}{June 2003}{foo-utils}{Fred Bloggs} +\c \cfg{man-identity}{make-foo}{1}{June 2003}{foo-utils}{Fred +\c Bloggs} \c \c \H{man-foo} \cw{man} page for \c{make-foo} \c @@ -608,6 +738,149 @@ expect. The \i{default settings} for the \cw{man} page output format are: +\c \cfg{man-filename}{output.1} \c \cfg{man-identity}{} \c \cfg{man-headnumbers}{false} \c \cfg{man-mindepth}{0} + +\H{output-info} GNU \c{info} + +This output format generates files which can be used with the \i{GNU +\c{info}} program. + +There are typically multiple output files: a primary file whose name +usually ends in \c{.info}, and one or more subsidiary files whose +names have numbers on the end, so that they end in \c{.info-1}, +\c{.info-2} and so on. Alternatively, this output format can be +configured to output a single large file containing the whole +document. + +The \c{info} output format supports the following configuration +directives: + +\dt \I{\cw{\\cfg\{info-filename\}}}\cw{\\cfg\{info-filename\}\{}\e{filename}\cw{\}} + +\dd Sets the output file name in which to store the \c{info} file. +This directive is implicitly generated if you provide a file name +parameter after the command-line option \i\c{--info} (see +\k{running-options}). + +\lcont{ + +The suffixes \c{-1}, \c{-2}, \c{-3} and so on will be appended to +your output file name to produce any subsidiary files required. + +Note that \c{info} files refer to their own names internally, so +these files cannot be \I{renaming \c{info} files}renamed after +creation and remain useful. + +} + +\dt \I{\cw{\\cfg\{info-max-file-size\}}}\cw{\\cfg\{info-max-file-size\}\{}\e{bytes}\cw{\}} + +\dd Sets the preferred \i{maximum file size} for each subsidiary +file. As a special case, if you set this to zero, there will be no +subsidiary files and the whole document will be placed in a single +self-contained output file. (However, note that this file can still +not be renamed usefully.) + +\lcont{ + +The preferred maximum file size is only a guideline. Halibut may be +forced to exceed it if a single section of the document is larger +than the maximum size (since individual \c{info} nodes may not be +split between files). + +} + +\dt \I{\cw{\\cfg\{info-dir-entry\}}}\cw{\\cfg\{info-dir-entry\}\{}\e{section}\cw{\}\{}\e{short +name}\cw{\}\{}\e{long name}\cw{\}}[\cw{\{}\e{keyword}\cw{\}}] + +\dd Constructs an \i\cw{INFO-DIR-ENTRY} section and places it in the +header of the Info file. This mechanism is used to automatically +generate the \i{\c{dir} file} at the root of a Unix system's +\c{info} collection. + +\lcont{ + +The parameters to this directive are: + +\dt \e{section} + +\dd Specifies the section of the \c{dir} file in which you want your +document referenced. For example, \q{Development}, or \q{Games}, or +\q{Miscellaneous}. + +\dt \e{short name} + +\dd Specifies a short name for the directory entry, which will +appear at the start of the menu line. + +\dt \e{long name} + +\dd Specifies a long name for the directory entry, which will appear +at the end of the menu line. + +\dt \e{keyword} + +\dd This parameter is optional. If it is present, then the directory +entry will cause a jump to a particular subsection of your document, +rather than starting at the top. The subsection will be the one +referred to by the given keyword (see \k{input-sections} for details +about assigning keywords to document sections). + +For example, in a document describing many game programs, the +configuration directive + +\c \cfg{info-dir-entry}{Games}{Chess}{Electronic chess +\c game}{chess} + +might produce text in the \c{dir} file looking something like this: + +\c Games +\c * Chess: (mygames)Chapter 3. Electronic chess game + +if the output file were called \c{mygames.info} and the keyword +\c{chess} had been used to define Chapter 3 of the document. + +} + +\H{output-ps} \i{PostScript} + +This output format generates a printable manual in PostScript format. + +This format is currently very new and is not yet configurable. There +is only one available configuration option: + +\dt \I{\cw{\\cfg\{ps-filename\}}}\cw{\\cfg\{ps-filename\}\{}\e{filename}\cw{\}} + +\dd Sets the \i{output file name} in which to store the PostScript +file. This directive is implicitly generated if you provide a file +name parameter after the command-line option \i\c{--ps} (see +\k{running-options}). + +The \i{default settings} for the PostScript output format are: + +\c \cfg{ps-filename}{output.ps} + +\H{output-pdf} \i{PDF} + +This output format generates a printable manual in PDF format. This +should look exactly identical to the PostScript output (see +\k{output-ps}), but also uses some PDF interactive features to +provide an outline of all the document's sections and clickable +cross-references between sections. + +This format is currently very new and is not yet configurable. There +is only one available configuration option: + +\dt \I{\cw{\\cfg\{pdf-filename\}}}\cw{\\cfg\{pdf-filename\}\{}\e{filename}\cw{\}} + +\dd Sets the \i{output file name} in which to store the PDF file. +This directive is implicitly generated if you provide a file name +parameter after the command-line option \i\c{--pdf} (see +\k{running-options}). + +The \i{default settings} for the PDF output format are: + +\c \cfg{pdf-filename}{output.pdf}