From 7b51f5de4836454a4e44b7c1e6841342ca59eae7 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Fri, 20 Jan 2017 19:58:07 +0000 Subject: standardize .Bl and .It class attributes --- mandoc.css | 83 +++++++++++++--------------- mdoc_html.c | 176 +++++++++++++++++++++++++++++++++++------------------------- 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 * Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze @@ -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; } -- cgit v1.2.3-56-ge451