aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-07-14 16:06:44 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-07-14 16:06:44 +0000
commit9ab0f1d2fbd0ca6762382443886903e11810663b (patch)
tree4100e951e358a5de21830f3f5d56dc5678a556bb
parentff3d7d9996ea5f017430919b824c15e1bf1a6e31 (diff)
downloadmandoc-9ab0f1d2fbd0ca6762382443886903e11810663b.tar.gz
mandoc-9ab0f1d2fbd0ca6762382443886903e11810663b.tar.zst
mandoc-9ab0f1d2fbd0ca6762382443886903e11810663b.zip
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.c13
-rw-r--r--mandoc.css10
-rw-r--r--mandoc_html.317
-rw-r--r--mdoc_html.c45
4 files changed, 31 insertions, 54 deletions
diff --git a/html.c b/html.c
index 1cc615cc..c6442783 100644
--- a/html.c
+++ b/html.c
@@ -1,4 +1,4 @@
-/* $Id: html.c,v 1.216 2017/07/14 15:56:37 schwarze Exp $ */
+/* $Id: html.c,v 1.217 2017/07/14 16:06:44 schwarze Exp $ */
/*
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011-2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -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;
diff --git a/mandoc.css b/mandoc.css
index 0dab6e88..01a10c64 100644
--- a/mandoc.css
+++ b/mandoc.css
@@ -1,4 +1,4 @@
-/* $Id: mandoc.css,v 1.18 2017/03/13 20:22:18 schwarze Exp $ */
+/* $Id: mandoc.css,v 1.19 2017/07/14 16:06:44 schwarze Exp $ */
/*
* Standard style sheet for mandoc(1) -Thtml and man.cgi(8).
*/
@@ -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 bd3f1b58..4c652e7a 100644
--- a/mandoc_html.3
+++ b/mandoc_html.3
@@ -1,4 +1,4 @@
-.\" $Id: mandoc_html.3,v 1.8 2017/05/12 17:58:21 schwarze Exp $
+.\" $Id: mandoc_html.3,v 1.9 2017/07/14 16:06:44 schwarze Exp $
.\"
.\" Copyright (c) 2014, 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
@@ -14,7 +14,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: May 12 2017 $
+.Dd $Mdocdate: July 14 2017 $
.Dt MANDOC_HTML 3
.Os
.Sh NAME
@@ -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 f2d97f3e..20fc052a 100644
--- a/mdoc_html.c
+++ b/mdoc_html.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_html.c,v 1.291 2017/06/24 14:38:32 schwarze Exp $ */
+/* $Id: mdoc_html.c,v 1.292 2017/07/14 16:06:44 schwarze Exp $ */
/*
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -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;
}