aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--mandoc.css83
-rw-r--r--mdoc_html.c176
2 files changed, 140 insertions, 119 deletions
diff --git a/mandoc.css b/mandoc.css
index 6158a0cf..28b8b86e 100644
--- a/mandoc.css
+++ b/mandoc.css
@@ -1,4 +1,4 @@
-/* $Id: mandoc.css,v 1.7 2017/01/19 16:56:54 schwarze Exp $ */
+/* $Id: mandoc.css,v 1.8 2017/01/20 19:58:07 schwarze Exp $ */
/*
* Standard style sheet for mandoc(1) -Thtml and man.cgi(8).
*/
@@ -61,6 +61,41 @@ a.Xr { }
div.Bd { }
div.D1 { margin-left: 5ex; }
+ul.Bl-bullet { list-style-type: disc;
+ padding-left: 1em; }
+li.It-bullet { }
+ul.Bl-dash { list-style-type: none;
+ padding-left: 0em; }
+li.It-dash:before {
+ content: "\2014 "; }
+ul.Bl-item { list-style-type: none;
+ padding-left: 0em; }
+li.It-item { }
+
+ol.Bl-enum { padding-left: 2em; }
+li.It-enum { }
+
+dl.Bl-diag { }
+dt.It-diag { }
+dd.It-diag { }
+b.It-diag { font-style: normal; }
+dl.Bl-hang { }
+dt.It-hang { }
+dd.It-hang { }
+dl.Bl-inset { }
+dt.It-inset { }
+dd.It-inset { }
+dl.Bl-ohang { }
+dt.It-ohang { }
+dd.It-ohang { margin-left: 0ex; }
+dl.Bl-tag { }
+dt.It-tag { }
+dd.It-tag { }
+
+table.Bl-column { }
+tr.It-column { }
+td.It-column { }
+
/* Fonts. */
.Li { font-style: normal;
@@ -78,10 +113,6 @@ b { } /* Bold: SB, BI, IB, BR, RB, B, (implicit). */
.symb { font-style: normal; font-weight: bold; } /* Symbolic: Sy, Ms, Bf -symbolic. */
small { } /* Small: SB, SM. */
-/* Block modes. */
-
-.list { } /* Top of all Bl. */
-
/* Context-specific modes. */
i.addr { font-weight: normal; } /* Address (Ad). */
@@ -91,7 +122,6 @@ b.cmd { font-style: normal; } /* Command (Cm). */
b.config { font-style: normal; } /* Config statement (Cd). */
span.define { } /* Defines (Dv). */
span.desc { } /* Nd. After em-dash. */
-b.diag { font-style: normal; } /* Diagnostic (Bl -diag). */
span.env { } /* Environment variables (Ev). */
span.errno { } /* Error string (Er). */
i.farg { font-weight: normal; } /* Function argument (Fa, Fn). */
@@ -128,47 +158,6 @@ a.link-includes { } /* Include-file link (In). */
a.link-mail { } /* Mailto links (Mt). */
a.link-ref { } /* Reference section links (%Q). */
-/* Formatting for lists. See mdoc(7). */
-
-dl.list-diag { }
-dt.list-diag { }
-dd.list-diag { }
-
-dl.list-hang { }
-dt.list-hang { }
-dd.list-hang { }
-
-dl.list-inset { }
-dt.list-inset { }
-dd.list-inset { }
-
-dl.list-ohang { }
-dt.list-ohang { }
-dd.list-ohang { margin-left: 0ex; }
-
-dl.list-tag { }
-dt.list-tag { }
-dd.list-tag { }
-
-table.list-col { }
-tr.list-col { }
-td.list-col { }
-
-ul.list-bul { list-style-type: disc; padding-left: 1em; }
-li.list-bul { }
-
-ul.list-dash { list-style-type: none; padding-left: 0em; }
-li.list-dash:before { content: "\2014 "; }
-
-ul.list-hyph { list-style-type: none; padding-left: 0em; }
-li.list-hyph:before { content: "\2013 "; }
-
-ul.list-item { list-style-type: none; padding-left: 0em; }
-li.list-item { }
-
-ol.list-enum { padding-left: 2em; }
-li.list-enum { }
-
/* Equation modes. See eqn(7). */
span.eqn { }
diff --git a/mdoc_html.c b/mdoc_html.c
index d8795bb1..d9d09c46 100644
--- a/mdoc_html.c
+++ b/mdoc_html.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_html.c,v 1.255 2017/01/19 16:59:30 schwarze Exp $ */
+/* $Id: mdoc_html.c,v 1.256 2017/01/20 19:58:07 schwarze Exp $ */
/*
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -242,21 +242,6 @@ static const struct htmlmdoc mdocs[MDOC_MAX] = {
{mdoc_skip_pre, NULL}, /* ll */
};
-static const char * const lists[LIST_MAX] = {
- NULL,
- "list-bul",
- "list-col",
- "list-dash",
- "list-diag",
- "list-enum",
- "list-hang",
- "list-hyph",
- "list-inset",
- "list-item",
- "list-ohang",
- "list-tag"
-};
-
/*
* See the same function in mdoc_term.c for documentation.
@@ -683,75 +668,104 @@ mdoc_xx_pre(MDOC_ARGS)
static int
mdoc_it_pre(MDOC_ARGS)
{
- enum mdoc_list type;
- const struct roff_node *bl;
+ const struct roff_node *bl;
+ const char *cattr;
+ enum mdoc_list type;
bl = n->parent;
- while (bl && MDOC_Bl != bl->tok)
+ while (bl != NULL && bl->tok != MDOC_Bl)
bl = bl->parent;
type = bl->norm->Bl.type;
- if (n->type == ROFFT_HEAD) {
- switch (type) {
- case LIST_bullet:
- case LIST_dash:
- case LIST_item:
- case LIST_hyphen:
- case LIST_enum:
+ switch (type) {
+ case LIST_bullet:
+ cattr = "It-bullet";
+ break;
+ case LIST_dash:
+ case LIST_hyphen:
+ cattr = "It-dash";
+ break;
+ case LIST_item:
+ cattr = "It-item";
+ break;
+ case LIST_enum:
+ cattr = "It-enum";
+ break;
+ case LIST_diag:
+ cattr = "It-diag";
+ break;
+ case LIST_hang:
+ cattr = "It-hang";
+ break;
+ case LIST_inset:
+ cattr = "It-inset";
+ break;
+ case LIST_ohang:
+ cattr = "It-ohang";
+ break;
+ case LIST_tag:
+ cattr = "It-tag";
+ break;
+ case LIST_column:
+ cattr = "It-column";
+ break;
+ default:
+ break;
+ }
+
+ switch (type) {
+ case LIST_bullet:
+ case LIST_dash:
+ case LIST_hyphen:
+ case LIST_item:
+ case LIST_enum:
+ switch (n->type) {
+ case ROFFT_HEAD:
return 0;
- case LIST_diag:
- case LIST_hang:
- case LIST_inset:
- case LIST_ohang:
- case LIST_tag:
- print_otag(h, TAG_DT, "csvt", lists[type],
+ case ROFFT_BODY:
+ print_otag(h, TAG_LI, "csvt", cattr,
!bl->norm->Bl.comp);
- if (LIST_diag != type)
- break;
- print_otag(h, TAG_B, "c", "diag");
- break;
- case LIST_column:
break;
default:
break;
}
- } else if (n->type == ROFFT_BODY) {
- switch (type) {
- case LIST_bullet:
- case LIST_hyphen:
- case LIST_dash:
- case LIST_enum:
- case LIST_item:
- print_otag(h, TAG_LI, "csvt", lists[type],
+ break;
+ case LIST_diag:
+ case LIST_hang:
+ case LIST_inset:
+ case LIST_ohang:
+ case LIST_tag:
+ switch (n->type) {
+ case ROFFT_HEAD:
+ print_otag(h, TAG_DT, "csvt", cattr,
!bl->norm->Bl.comp);
+ if (type == LIST_diag)
+ print_otag(h, TAG_B, "c", cattr);
break;
- case LIST_diag:
- case LIST_hang:
- case LIST_inset:
- case LIST_ohang:
- case LIST_tag:
- if (NULL == bl->norm->Bl.width) {
- print_otag(h, TAG_DD, "c", lists[type]);
- break;
- }
- print_otag(h, TAG_DD, "cswl", lists[type],
- bl->norm->Bl.width);
- break;
- case LIST_column:
- print_otag(h, TAG_TD, "csvt", lists[type],
- !bl->norm->Bl.comp);
+ case ROFFT_BODY:
+ if (bl->norm->Bl.width == NULL)
+ print_otag(h, TAG_DD, "c", cattr);
+ else
+ print_otag(h, TAG_DD, "cswl", cattr,
+ bl->norm->Bl.width);
break;
default:
break;
}
- } else {
- switch (type) {
- case LIST_column:
- print_otag(h, TAG_TR, "c", lists[type]);
+ break;
+ case LIST_column:
+ switch (n->type) {
+ case ROFFT_HEAD:
break;
- default:
+ case ROFFT_BODY:
+ print_otag(h, TAG_TD, "csvt", cattr,
+ !bl->norm->Bl.comp);
break;
+ default:
+ print_otag(h, TAG_TR, "c", cattr);
}
+ default:
+ break;
}
return 1;
@@ -760,8 +774,8 @@ mdoc_it_pre(MDOC_ARGS)
static int
mdoc_bl_pre(MDOC_ARGS)
{
+ const char *cattr;
int i;
- char buf[BUFSIZ];
enum htmltag elemtype;
if (n->type == ROFFT_BODY) {
@@ -788,39 +802,57 @@ mdoc_bl_pre(MDOC_ARGS)
return 0;
}
- assert(lists[n->norm->Bl.type]);
- (void)strlcpy(buf, "list ", BUFSIZ);
- (void)strlcat(buf, lists[n->norm->Bl.type], BUFSIZ);
-
switch (n->norm->Bl.type) {
case LIST_bullet:
+ elemtype = TAG_UL;
+ cattr = "Bl-bullet";
+ break;
case LIST_dash:
case LIST_hyphen:
+ elemtype = TAG_UL;
+ cattr = "Bl-dash";
+ break;
case LIST_item:
elemtype = TAG_UL;
+ cattr = "Bl-item";
break;
case LIST_enum:
elemtype = TAG_OL;
+ cattr = "Bl-enum";
break;
case LIST_diag:
+ elemtype = TAG_DL;
+ cattr = "Bl-diag";
+ break;
case LIST_hang:
+ elemtype = TAG_DL;
+ cattr = "Bl-hang";
+ break;
case LIST_inset:
+ elemtype = TAG_DL;
+ cattr = "Bl-inset";
+ break;
case LIST_ohang:
+ elemtype = TAG_DL;
+ cattr = "Bl-ohang";
+ break;
case LIST_tag:
elemtype = TAG_DL;
+ cattr = "Bl-tag";
break;
case LIST_column:
elemtype = TAG_TABLE;
+ cattr = "Bl-column";
break;
default:
abort();
}
if (n->norm->Bl.offs)
- print_otag(h, elemtype, "csvtvbwl", buf, 0, 0,
+ print_otag(h, elemtype, "csvtvbwl", cattr, 0, 0,
n->norm->Bl.offs);
else
- print_otag(h, elemtype, "csvtvb", buf, 0, 0);
+ print_otag(h, elemtype, "csvtvb", cattr, 0, 0);
return 1;
}