htmlroff man page on Plan9

Man page or keyword search:  
man Server   549 pages
apropos Keyword Search (all sections)
Output format
Plan9 logo
[printable version]

HTMLROFF(6)							   HTMLROFF(6)

NAME
       htmlroff - HTML formatting and typesetting

DESCRIPTION
       Htmlroff(1)  accepts  troff  input  with	 a few extensions and changes.
       This manual describes the changes to the	 input	language,  assuming  a
       working knowledge of troff itself.

   Name lengths
       Request,	 macro,	 string,  and number names can be longer than two let‐
       ters, as in:

	      .html c <center>
	      .de footnote
	      Footnote here.
	      ..
	      .footnote
	      .ds string "hello
	      \*[string]
	      .nr number 1
	      \n[number]

   HTML output
       Two new requests:

	      .html id [ <html> ]
	      .ihtml id [ <ihtml> ]

       .html and .ihtml insert HTML into the output.  The  requests  are  only
       for opening new HTML tags.  To close previously-opened tags, repeat the
       request with the same id.  For example, the input:

	      .html t <table><tr>
	      .html td <td>Cell 1
	      .html td <td>Cell 2
	      .html td
	      .html t

       produces this output:

	      <table><tr><td>Cell 1</td><td>Cell 2</td></tr></table>

       The .html request is intended for block-level  HTML  constructs	(those
       that  can  contain <p>) and maintains the HTML tag stack automatically.
       Intermediate tags need not be explicitly	 closed:  removing  the	 final
       .html  t	 line in the example above would produce the same output.  The
       special id closes the HTML tags immediately after printing them.

       The .ihtml request is similar to .html but is intended for inline  HTML
       constructs such as <b> or <i> (those that can be contained within <p>).
       Unlike .html, .ihtml treats the open HTML tags as a set rather  than  a
       stack:  each must be explicitly closed.	Although it treats the tags as
       a set, .ihtml treats  nesting  properly	in  the	 output,  closing  and
       reopening tags as necessary.  For example, the input:

	      .ihtml style <b>
	      .ihtml link <a href="link.html">
	      Bold
	      .ihtml style <i>
	      and italic, still linked.
	      .ihtml link <a>
	      Unlinked.
	      .ihtml style

       produces this output:

	      <b><a href="link.html">Bold</a></b>
	      <i><a href="link.html">and italic, still linked.</i></a>
	      <i>Unlinked.</i>

       Outside of .html and .ihtml requests, the characters and are treated as
       normal characters, not HTML markers, and are translated to and on  out‐
       put.  To embed the raw HTML markers, use and [sic].

   Font changes
       Htmlroff	 interprets  the usual \f, .ft, \s, and .ps requests to change
       the font and point size.	 After applying each such change to its inter‐
       nal  registers,	htmlroff invokes the .font macro to emit corresponding
       HTML.  The default definition of .font is:

	      .de font
	      .ihtml f1
	      .ihtml f
	      .ihtml f <span style=
	      .if \n(.f==2 .ihtml f1 <i>
	      .if \n(.f==3 .ihtml f1 <b>
	      .if \n(.f==4 .ihtml f1 <b><i>
	      .if \n(.f==5 .ihtml f1 <tt>
	      .if \n(.f==6 .ihtml f1 <tt><i>
	      ..

       Input files can redefine .font like any other request or macro.

   Paragraphs
       Htmlroff implements line height, text adjustment, and margins by	 wrap‐
       ping  all  output  text	in <p style="..."> tags.  This behavior can be
       disabled by setting the .paragraph number register  to  zero.   Setting
       the .margin register to zero eliminates only the margin annotations.

   Subscripts and superscripts
       Htmlroff interprets the \u, \d, and \v requests to move vertically dur‐
       ing output.  It emits output vertically offset up the page inside <sup>
       tags  and  output  vertically  offset  down the page inside <sub> tags.
       This heuristic handles simple equations formatted by eqn(1).

   Conditional input
       To make it easier to write input files that can be  formatted  by  both
       troff  and  htmlroff,  htmlroff	adds a new condition h which evaluates
       true in .if and .ie requests.  The t condition  continues  to  evaluate
       true, to accomodate input files trying to distinguish between troff and
       nroff.  To write a conditional matching troff alone, use	 `.if  !h  .if
       t'.

       Htmlroff	 's  handling  of  conditional	input  does  not match troff's
       exactly.	 For example,

	      .if 0 \{\
	      .de xx
	      ..
	      .\}

       redefines the xx macro in troff but not	in  htmlroff.	Do  not	 write
       files  depending	 on  this  behavior,  as  this bug may be fixed in the
       future.	Htmlroff also mishandles \} in some  cases.   To  work	around
       them, use .\} on a line by itself, as in the last example.

   Diversions
       Diversions  in  htmlroff use the alignment in effect at the time of the
       diversion when output.  In particular,

	      .di xx
	      Line here.
	      .di
	      .nf
	      .ce
	      .xx

       produces a centered line in troff but not in htmlroff.  The solution is
       to center inside the diversion, as in

	      .di xx
	      .if h .ce 999
	      Line here
	      .di

   Traps
       Htmlroff	 implements  traps  at vertical position 0, which run when the
       first character is about to  be	printed.   Other  position  traps  are
       ignored.	 Input traps are implemented.

   Input pipes
       Htmlroff	 adds  a  new request .inputpipe stop cmd that redirects html‐
       roff's input into a pipe to cmd.	 The redirection stops on encountering
       the line stop, optionally followed by white space and extra text.  This
       is a dangerous and clumsy request, as htmlroff stops  interpreting  its
       input  during  the  redirection,	 so  stop  must	 be found in the input
       itself, not in a macro that the input might appear to  call.   Although
       clumsy, .inputpipe allows input files to invoke troff to handle compli‐
       cated input.  For example, tmac.html redefines the PS macro that	 marks
       the beginning of a pic(1) picture:

	      .nr png -1 1
	      .de PS
	      .ds pngbase "\\*[basename]
	      .if '\\*[pngbase]'' .ds pngbase \\n(.B
	      .ds pngfile \\*[pngbase]\\n+[png].png
	      .html - <center><img src="\\*[pngfile]"></center>
	      .inputpipe .PE troff2png >\\*[pngfile]
	      ..

       This  macro invokes the shell script troff2png to run troff and convert
       the Postscript output to a PNG image file.  Before  starting  the  pro‐
       gram,  the  macro creates a new file name for the image and prints HTML
       referring to it.	 The .B register holds the  final  path	 element  (the
       base name) of the current input file.

   Unimplemented
       Tabs are set every eight spaces and cannot be changed.

       Some requests, such as .tl, are unimplemented for lack of a good imple‐
       mentation.  Workarounds can be defined as necessary in input files.

SEE ALSO
       htmlroff(1), mhtml(6)

								   HTMLROFF(6)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Plan9

List of man pages available for Plan9

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net