diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2018-06-10 16:15:43 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2018-06-10 16:15:43 +0000 |
commit | 9990d4494b540b6b77b9b9e8c326a1f5e0e431eb (patch) | |
tree | 144405dae7549389cb8f0e84b68c1948cc20df36 /mdoc_html.c | |
parent | 7aa5d287ad5185549e44868b9474c7b186d69a5f (diff) | |
download | mandoc-9990d4494b540b6b77b9b9e8c326a1f5e0e431eb.tar.gz |
In HTML output, for lists that have an -indent argument, just use
a uniform indentation in CSS adapted to the viewport width and
ignore the value of the argument taken from mdoc(7). While
author-specified widths somewhat work as a micro-optimization in
terminal and typeset output, they are nothing but harmful in HTML
style= attributes because they break responsive design, whereas
using a reasonable default indent almost never results in ugly
output. Admittedly, the author-specified width might occasionally
look even better, but only slightly so, and only for some viewport
sizes.
Based on guidance provided by John Gardner.
Diffstat (limited to 'mdoc_html.c')
-rw-r--r-- | mdoc_html.c | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/mdoc_html.c b/mdoc_html.c index 72ca7f41..f9f6b84b 100644 --- a/mdoc_html.c +++ b/mdoc_html.c @@ -749,7 +749,7 @@ mdoc_it_pre(MDOC_ARGS) static int mdoc_bl_pre(MDOC_ARGS) { - char cattr[21]; + char cattr[28]; struct tag *t; struct mdoc_bl *bl; size_t i; @@ -819,7 +819,7 @@ mdoc_bl_pre(MDOC_ARGS) break; case LIST_tag: if (bl->offs) - print_otag(h, TAG_DIV, "cswl", "Bl-tag", bl->offs); + print_otag(h, TAG_DIV, "c", "Bd-indent"); print_otag(h, TAG_DL, "c", bl->comp ? "Bl-tag Bl-compact" : "Bl-tag"); return 1; @@ -830,9 +830,11 @@ mdoc_bl_pre(MDOC_ARGS) default: abort(); } + if (bl->offs != NULL) + (void)strlcat(cattr, " Bd-indent", sizeof(cattr)); if (bl->comp) (void)strlcat(cattr, " Bl-compact", sizeof(cattr)); - print_otag(h, elemtype, "cswl", cattr, bl->offs); + print_otag(h, elemtype, "c", cattr); return 1; } @@ -864,7 +866,7 @@ mdoc_d1_pre(MDOC_ARGS) if (n->type != ROFFT_BLOCK) return 1; - print_otag(h, TAG_DIV, "c", "D1"); + print_otag(h, TAG_DIV, "c", "Bd Bd-indent"); if (n->tok == MDOC_Dl) print_otag(h, TAG_CODE, "c", "Li"); @@ -886,7 +888,7 @@ mdoc_sx_pre(MDOC_ARGS) static int mdoc_bd_pre(MDOC_ARGS) { - int comp, offs, sv; + int comp, sv; struct roff_node *nn; if (n->type == ROFFT_HEAD) @@ -911,18 +913,9 @@ mdoc_bd_pre(MDOC_ARGS) if (n->norm->Bd.offs == NULL || ! strcmp(n->norm->Bd.offs, "left")) - offs = 0; - else if ( ! strcmp(n->norm->Bd.offs, "indent")) - offs = INDENT; - else if ( ! strcmp(n->norm->Bd.offs, "indent-two")) - offs = INDENT * 2; + print_otag(h, TAG_DIV, "c", "Bd"); else - offs = -1; - - if (offs == -1) - print_otag(h, TAG_DIV, "cswl", "Bd", n->norm->Bd.offs); - else - print_otag(h, TAG_DIV, "cshl", "Bd", offs); + print_otag(h, TAG_DIV, "c", "Bd Bd-indent"); if (n->norm->Bd.type != DISP_unfilled && n->norm->Bd.type != DISP_literal) |