version 1.1, 2014/07/23 18:13:09 |
version 1.2, 2017/01/17 01:47:51 |
|
|
.Fo print_otag |
.Fo print_otag |
.Fa "struct html *h" |
.Fa "struct html *h" |
.Fa "enum htmltag tag" |
.Fa "enum htmltag tag" |
.Fa "int sz" |
.Fa "const char *fmt" |
.Fa "const struct htmlpair *p" |
.Fa ... |
.Fc |
.Fc |
.Ft void |
.Ft void |
.Fo print_tagq |
.Fo print_tagq |
Line 84 These structures are declared in |
|
Line 84 These structures are declared in |
|
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Vt struct html |
.It Vt struct html |
Internal state of the HTML formatter. |
Internal state of the HTML formatter. |
.It Vt struct htmlpair |
|
Holds one HTML attribute. |
|
Members are |
|
.Fa "enum htmlattr key" |
|
and |
|
.Fa "const char *val" . |
|
Helper macros |
|
.Fn PAIR_* |
|
are provided to support initialization of such structures. |
|
.It Vt struct tag |
.It Vt struct tag |
One entry for the LIFO stack of HTML elements. |
One entry for the LIFO stack of HTML elements. |
Members are |
Members are |
|
|
.Fn print_otag |
.Fn print_otag |
prints the start tag of an HTML element with the name |
prints the start tag of an HTML element with the name |
.Fa tag , |
.Fa tag , |
including the |
optionally including the attributes specified by |
.Fa sz |
.Fa fmt . |
attributes that can optionally be provided in the |
If |
.Fa p |
.Fa fmt |
array. |
is the empty string, no attributes are written. |
It uses the private function |
Each letter of |
|
.Fa fmt |
|
specifies one attribute to write. |
|
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. |
|
.Bl -tag -width 1n -offset indent |
|
.It Cm c |
|
Print a |
|
.Cm class |
|
attribute. |
|
.It Cm h |
|
Print a |
|
.Cm href |
|
attribute. |
|
.It Cm i |
|
Print an |
|
.Cm id |
|
attribute. |
|
.It Cm \&? |
|
Print an arbitrary attribute. |
|
This format letter requires two |
|
.Vt char * |
|
arguments, the attribute name and the value. |
|
.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. |
|
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: |
|
.Bl -tag -width 1n -offset indent |
|
.It Cm h |
|
Requires one |
|
.Vt int |
|
argument, interpreted as a horizontal length in units of |
|
.Dv SCALE_EN . |
|
.It Cm s |
|
Requires one |
|
.Vt char * |
|
argument, used as a style value. |
|
.It Cm u |
|
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. |
|
.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 |
|
to the given length. |
|
.It Cm i |
|
Set |
|
.Cm text-indent |
|
to the given length. |
|
.It Cm l |
|
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 |
|
to the given length. |
|
.It Cm W |
|
Set |
|
.Cm min-width |
|
to the given length. |
|
.It Cm \&? |
|
The special pair |
|
.Cm s? |
|
requires two |
|
.Vt char * |
|
arguments. |
|
The first is the style name, the second its value. |
|
.El |
|
.Pp |
|
.Fn print_otag |
|
uses the private function |
.Fn print_attr |
.Fn print_attr |
which in turn uses the private function |
which in turn uses the private function |
.Fn print_encode |
.Fn print_encode |