=================================================================== RCS file: /cvs/mandoc/mandoc_html.3,v retrieving revision 1.5 retrieving revision 1.9 diff -u -p -r1.5 -r1.9 --- mandoc/mandoc_html.3 2017/01/28 22:36:38 1.5 +++ mandoc/mandoc_html.3 2017/07/14 16:06:44 1.9 @@ -1,4 +1,4 @@ -.\" $Id: mandoc_html.3,v 1.5 2017/01/28 22:36:38 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 28 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 @@ -145,6 +153,11 @@ the respective attribute is not written. 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 @@ -191,7 +204,7 @@ Instead, the rest of the format string consists of pai 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 @@ -206,11 +219,6 @@ 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 * @@ -220,18 +228,22 @@ width specifier. If the argument is .Dv NULL , nothing is printed for this pair. -.It Cm W -Similar to -.Cm w , -but makes the width negative by multiplying it with \(mi1. +.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 @@ -244,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 @@ -301,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