diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2017-07-14 16:06:44 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2017-07-14 16:06:44 +0000 |
commit | e1926dad13331d995f227c3347ddcedb77fe1688 (patch) | |
tree | 4f0a6aa4402df6b45dfc6165b8bbdb19b17e17c6 | |
parent | 0a3fdda2fdfc6e87b86c158cca5f54f59f302ddf (diff) | |
download | mandoc-e1926dad13331d995f227c3347ddcedb77fe1688.tar.gz |
Handle .Bl -compact via CSS rather than writing individual style
attributes into .It blocks; suggested by Steffen Nurpmeso <steffen
at sdaoden dot eu> on <groff at GNU dot org> in April 2017.
Delete margin-bottom and margin-top style names and the 'v' argument
letter from print_otag() because they are no longer used.
-rw-r--r-- | html.c | 11 | ||||
-rw-r--r-- | mandoc.css | 8 | ||||
-rw-r--r-- | mandoc_html.3 | 13 | ||||
-rw-r--r-- | mdoc_html.c | 43 |
4 files changed, 26 insertions, 49 deletions
@@ -623,11 +623,6 @@ print_otag(struct html *h, enum htmltag tag, const char *fmt, ...) case 'u': su = va_arg(ap, struct roffsu *); break; - case 'v': - i = va_arg(ap, int); - su = &mysu; - SCALE_VS_INIT(su, i); - break; case 'w': if ((arg2 = va_arg(ap, char *)) == NULL) break; @@ -652,9 +647,6 @@ print_otag(struct html *h, enum htmltag tag, const char *fmt, ...) /* Second letter: style name. */ switch (*fmt++) { - case 'b': - attr = "margin-bottom"; - break; case 'h': attr = "height"; break; @@ -664,9 +656,6 @@ print_otag(struct html *h, enum htmltag tag, const char *fmt, ...) case 'l': attr = "margin-left"; break; - case 't': - attr = "margin-top"; - break; case 'w': attr = "width"; break; @@ -79,9 +79,13 @@ li.It-dash:before { ul.Bl-item { list-style-type: none; padding-left: 0em; } li.It-item { } +ul.Bl-compact > li { + margin-top: 0ex; } ol.Bl-enum { padding-left: 2em; } li.It-enum { } +ol.Bl-compact > li { + margin-top: 0ex; } dl.Bl-diag { } dt.It-diag { } @@ -108,10 +112,14 @@ dd.It-tag { width: 100%; margin-left: 0ex; vertical-align: top; overflow: auto; } +dl.Bl-compact > dt { + margin-top: 0ex; } table.Bl-column { } tr.It-column { } td.It-column { margin-top: 1em; } +table.Bl-compact > tbody > tr > td { + margin-top: 0ex; } cite.Rs { font-style: normal; font-weight: normal; } diff --git a/mandoc_html.3 b/mandoc_html.3 index ee0f8bc6..d7c3f45a 100644 --- a/mandoc_html.3 +++ b/mandoc_html.3 @@ -219,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 * @@ -249,10 +244,6 @@ makes the width negative by multiplying it with \-1. .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 @@ -265,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 diff --git a/mdoc_html.c b/mdoc_html.c index a79cc0d3..be76ef5f 100644 --- a/mdoc_html.c +++ b/mdoc_html.c @@ -715,10 +715,7 @@ mdoc_it_pre(MDOC_ARGS) case ROFFT_HEAD: return 0; case ROFFT_BODY: - if (bl->norm->Bl.comp) - print_otag(h, TAG_LI, "csvt", cattr, 0); - else - print_otag(h, TAG_LI, "c", cattr); + print_otag(h, TAG_LI, "c", cattr); break; default: break; @@ -730,10 +727,7 @@ mdoc_it_pre(MDOC_ARGS) case LIST_ohang: switch (n->type) { case ROFFT_HEAD: - if (bl->norm->Bl.comp) - print_otag(h, TAG_DT, "csvt", cattr, 0); - else - print_otag(h, TAG_DT, "c", cattr); + print_otag(h, TAG_DT, "c", cattr); if (type == LIST_diag) print_otag(h, TAG_B, "c", cattr); break; @@ -780,10 +774,7 @@ mdoc_it_pre(MDOC_ARGS) case ROFFT_HEAD: break; case ROFFT_BODY: - if (bl->norm->Bl.comp) - print_otag(h, TAG_TD, "csvt", cattr, 0); - else - print_otag(h, TAG_TD, "c", cattr); + print_otag(h, TAG_TD, "c", cattr); break; default: print_otag(h, TAG_TR, "c", cattr); @@ -798,9 +789,9 @@ mdoc_it_pre(MDOC_ARGS) static int mdoc_bl_pre(MDOC_ARGS) { + char cattr[21]; struct tag *t; struct mdoc_bl *bl; - const char *cattr; size_t i; enum htmltag elemtype; @@ -835,50 +826,52 @@ mdoc_bl_pre(MDOC_ARGS) switch (bl->type) { case LIST_bullet: elemtype = TAG_UL; - cattr = "Bl-bullet"; + (void)strlcpy(cattr, "Bl-bullet", sizeof(cattr)); break; case LIST_dash: case LIST_hyphen: elemtype = TAG_UL; - cattr = "Bl-dash"; + (void)strlcpy(cattr, "Bl-dash", sizeof(cattr)); break; case LIST_item: elemtype = TAG_UL; - cattr = "Bl-item"; + (void)strlcpy(cattr, "Bl-item", sizeof(cattr)); break; case LIST_enum: elemtype = TAG_OL; - cattr = "Bl-enum"; + (void)strlcpy(cattr, "Bl-enum", sizeof(cattr)); break; case LIST_diag: elemtype = TAG_DL; - cattr = "Bl-diag"; + (void)strlcpy(cattr, "Bl-diag", sizeof(cattr)); break; case LIST_hang: elemtype = TAG_DL; - cattr = "Bl-hang"; + (void)strlcpy(cattr, "Bl-hang", sizeof(cattr)); break; case LIST_inset: elemtype = TAG_DL; - cattr = "Bl-inset"; + (void)strlcpy(cattr, "Bl-inset", sizeof(cattr)); break; case LIST_ohang: elemtype = TAG_DL; - cattr = "Bl-ohang"; + (void)strlcpy(cattr, "Bl-ohang", sizeof(cattr)); break; case LIST_tag: - cattr = "Bl-tag"; if (bl->offs) - print_otag(h, TAG_DIV, "cswl", cattr, bl->offs); - print_otag(h, TAG_DL, "csw+l", cattr, bl->width); + print_otag(h, TAG_DIV, "cswl", "Bl-tag", bl->offs); + print_otag(h, TAG_DL, "csw+l", bl->comp ? + "Bl-tag Bl-compact" : "Bl-tag", bl->width); return 1; case LIST_column: elemtype = TAG_TABLE; - cattr = "Bl-column"; + (void)strlcpy(cattr, "Bl-column", sizeof(cattr)); break; default: abort(); } + if (bl->comp) + (void)strlcat(cattr, " Bl-compact", sizeof(cattr)); print_otag(h, elemtype, "cswl", cattr, bl->offs); return 1; } |