=================================================================== RCS file: /cvs/mandoc/mandoc_html.3,v retrieving revision 1.4 retrieving revision 1.9 diff -u -p -r1.4 -r1.9 --- mandoc/mandoc_html.3 2017/01/25 02:14:43 1.4 +++ mandoc/mandoc_html.3 2017/07/14 16:06:44 1.9 @@ -1,4 +1,4 @@ -.\" $Id: mandoc_html.3,v 1.4 2017/01/25 02:14:43 schwarze Exp $ +.\" $Id: mandoc_html.3,v 1.9 2017/07/14 16:06:44 schwarze Exp $ .\" .\" Copyright (c) 2014, 2017 Ingo Schwarze .\" @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: January 25 2017 $ +.Dd $Mdocdate: July 14 2017 $ .Dt MANDOC_HTML 3 .Os .Sh NAME @@ -48,6 +48,14 @@ .Fa "struct html *h" .Fa "const char *word" .Fc +.Ft char * +.Fo html_make_id +.Fa "const struct roff_node *n" +.Fc +.Ft int +.Fo html_strlen +.Fa "const char *cp" +.Fc .Sh DESCRIPTION The mandoc HTML formatter is not a formal library. However, as it is compiled into more than one program, in particular @@ -137,11 +145,19 @@ Most attributes require one .Va char * argument which becomes the value of the attribute. The arguments have to be given in the same order as the attribute letters. +If an argument is +.Dv NULL , +the respective attribute is not written. .Bl -tag -width 1n -offset indent .It Cm c Print a .Cm class attribute. +This attribute letter can optionally be followed by the modifier letter +.Cm T . +In that case, a +.Cm title +attribute with the same value is also printed. .It Cm h Print a .Cm href @@ -175,18 +191,20 @@ Print an arbitrary attribute. This format letter requires two .Vt char * arguments, the attribute name and the value. +The name must not be +.Dv NULL . .It Cm s Print a .Cm style attribute. If present, it must be the last format letter. In contrast to the other format letters, this one does not yet -print the value and does not require an argument. +print the value and does not take an argument. Instead, the rest of the format string consists of pairs of argument type letters and style name letters. .El .Pp -Argument type letters each require on argument as follows: +Argument type letters each require one argument as follows: .Bl -tag -width 1n -offset indent .It Cm h Requires one @@ -201,29 +219,31 @@ argument, used as a style value. Requires one .Vt struct roffsu * argument, used as a length. -.It Cm v -Requires one -.Vt int -argument, interpreted as a vertical length in units of -.Dv SCALE_VS . .It Cm w Requires one .Vt char * argument, interpreted as an .Xr mdoc 7 Ns -style width specifier. -.It Cm W -Similar to -.Cm w , -but makes the width negative by multiplying it with \(mi1. +If the argument is +.Dv NULL , +nothing is printed for this pair. +.Pp +The +.Cm w +argument type letter can optionally be followed by one or two +modifier letters. +The modifier +.Cm + +increases the width by 10% to make even bold text fit +and adds two units for padding between columns. +The modifier +.Cm \- +makes the width negative by multiplying it with \-1. .El .Pp Style name letters decide what to do with the preceding argument: .Bl -tag -width 1n -offset indent -.It Cm b -Set -.Cm margin-bottom -to the given length. .It Cm h Set .Cm height @@ -236,10 +256,6 @@ to the given length. Set .Cm margin-left to the given length. -.It Cm t -Set -.Cm margin-top -to the given length. .It Cm w Set .Cm width @@ -255,6 +271,8 @@ requires two .Vt char * arguments. The first is the style name, the second its value. +The style name must not be +.Dv NULL . .El .Pp .Fn print_otag @@ -291,8 +309,27 @@ and .Fn print_tagq functions. .Pp +The function +.Fn html_make_id +takes a node containing one or more text children +and returns a newly allocated string containing the concatenation +of the child strings, with blanks replaced by underscores. +If the node +.Fa n +contains any non-text child node, +.Fn html_make_id +returns +.Dv NULL +instead. +The caller is responsible for freeing the returned string. +.Pp +The function +.Fn html_strlen +counts the number of characters in +.Fa cp . +It is used as a crude estimate of the width needed to display a string. +.Pp The functions -.Fn html_strlen , .Fn print_eqn , .Fn print_tbl , and @@ -340,5 +377,6 @@ implementation of common mandoc utility functions .An -nosplit The mandoc HTML formatter was written by .An Kristaps Dzonsons Aq Mt kristaps@bsd.lv . -This manual was written by -.An Ingo Schwarze Aq Mt schwarze@openbsd.org . +It is maintained by +.An Ingo Schwarze Aq Mt schwarze@openbsd.org , +who also wrote this manual.