aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2018-06-10 16:15:43 +0000
committerIngo Schwarze <schwarze@openbsd.org>2018-06-10 16:15:43 +0000
commit9eb1a73b1c8fa4ca949849507ca93a8d30ca5cbb (patch)
tree851ad58844718f77ef9e8939d56255364edcb7cc
parentc44d370823355882e5013556927675ea11fa8199 (diff)
downloadmandoc-9eb1a73b1c8fa4ca949849507ca93a8d30ca5cbb.tar.gz
mandoc-9eb1a73b1c8fa4ca949849507ca93a8d30ca5cbb.tar.zst
mandoc-9eb1a73b1c8fa4ca949849507ca93a8d30ca5cbb.zip
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.
-rw-r--r--mandoc.css6
-rw-r--r--mdoc_html.c27
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 <kristaps@bsd.lv>
* Copyright (c) 2014,2015,2016,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -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)