From 9eb1a73b1c8fa4ca949849507ca93a8d30ca5cbb Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Sun, 10 Jun 2018 16:15:43 +0000 Subject: 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. --- mandoc.css | 6 +++--- mdoc_html.c | 27 ++++++++++----------------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/mandoc.css b/mandoc.css index 925c1e38..29e47445 100644 --- a/mandoc.css +++ b/mandoc.css @@ -1,4 +1,4 @@ -/* $Id: mandoc.css,v 1.32 2018/05/28 15:39:25 schwarze Exp $ */ +/* $Id: mandoc.css,v 1.33 2018/06/10 16:15:43 schwarze Exp $ */ /* * Standard style sheet for mandoc(1) -Thtml and man.cgi(8). */ @@ -68,7 +68,7 @@ div.manual-text { /* Displays and lists. */ .Bd { } -.D1 { margin-left: 3.8em; } +.Bd-indent { margin-left: 3.8em; } ul.Bl-bullet { list-style-type: disc; padding-left: 1em; } @@ -239,7 +239,7 @@ a.In { } div.manual-text { margin-left: 0.5em; } .Sh, .Ss { margin-left: 0em; } -.D1 { margin-left: 2em; } +.Bd-indent { margin-left: 2em; } dl.Bl-hang > dd { margin-left: 2em; } dl.Bl-tag { margin-left: 2em; } diff --git a/mdoc_html.c b/mdoc_html.c index 8f2f857b..1b06e43f 100644 --- a/mdoc_html.c +++ b/mdoc_html.c @@ -1,4 +1,4 @@ -/* $Id: mdoc_html.c,v 1.305 2018/05/29 01:55:50 schwarze Exp $ */ +/* $Id: mdoc_html.c,v 1.306 2018/06/10 16:15:43 schwarze Exp $ */ /* * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons * Copyright (c) 2014,2015,2016,2017,2018 Ingo Schwarze @@ -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) -- cgit v1.2.3-56-ge451