diff options
-rw-r--r-- | html.c | 3 | ||||
-rw-r--r-- | html.h | 1 | ||||
-rw-r--r-- | mandoc.css | 5 | ||||
-rw-r--r-- | mdoc_html.c | 24 |
4 files changed, 17 insertions, 16 deletions
@@ -59,6 +59,7 @@ static const struct htmldata htmltags[TAG_MAX] = { {"meta", HTML_NOSTACK | HTML_AUTOCLOSE | HTML_NLALL}, {"title", HTML_NLAROUND}, {"div", HTML_NLAROUND}, + {"div", 0}, {"h1", HTML_NLAROUND}, {"h2", HTML_NLAROUND}, {"span", 0}, @@ -187,6 +188,8 @@ print_gen_head(struct html *h) print_endline(h); print_text(h, "div.Pp { margin: 1ex 0ex; }"); print_endline(h); + print_text(h, "div.Nd, div.Bf, div.Op { display: inline; }"); + print_endline(h); print_text(h, "dl.Bl-diag "); print_byte(h, '>'); print_text(h, " dt { font-weight: bold; }"); @@ -23,6 +23,7 @@ enum htmltag { TAG_META, TAG_TITLE, TAG_DIV, + TAG_IDIV, TAG_H1, TAG_H2, TAG_SPAN, @@ -41,7 +41,7 @@ table.head { width: 100%; td.head-vol { text-align: center; } td.head-rtitle { text-align: right; } -span.Nd { } +div.Nd { display: inline; } table.foot { width: 100%; border-top: 1px dotted #808080; @@ -164,7 +164,7 @@ code.Cm { font-style: normal; font-family: inherit; } var.Ar { font-style: italic; font-weight: normal; } -span.Op { } +div.Op { display: inline; } code.Ic { font-style: normal; font-weight: bold; font-family: inherit; } @@ -216,6 +216,7 @@ a.Ux { } /* Physical markup. */ +.Bf { display: inline; } .No { font-style: normal; font-weight: normal; } .Em { font-style: italic; diff --git a/mdoc_html.c b/mdoc_html.c index e0cf7416..3a78913e 100644 --- a/mdoc_html.c +++ b/mdoc_html.c @@ -583,10 +583,9 @@ mdoc_nd_pre(MDOC_ARGS) if (n->type != ROFFT_BODY) return 1; - /* XXX: this tag in theory can contain block elements. */ - print_text(h, "\\(em"); - print_otag(h, TAG_SPAN, "cT", "Nd"); + /* Cannot use TAG_SPAN because it may contain blocks. */ + print_otag(h, TAG_DIV, "cT", "Nd"); return 1; } @@ -1444,20 +1443,16 @@ mdoc_bf_pre(MDOC_ARGS) return 1; if (FONT_Em == n->norm->Bf.font) - cattr = "Em"; + cattr = "Bf Em"; else if (FONT_Sy == n->norm->Bf.font) - cattr = "Sy"; + cattr = "Bf Sy"; else if (FONT_Li == n->norm->Bf.font) - cattr = "Li"; + cattr = "Bf Li"; else - cattr = "No"; - - /* - * We want this to be inline-formatted, but needs to be div to - * accept block children. - */ + cattr = "Bf No"; - print_otag(h, TAG_DIV, "css?hl", cattr, "display", "inline", 1); + /* Cannot use TAG_SPAN because it may contain blocks. */ + print_otag(h, TAG_DIV, "cshl", cattr, 1); return 1; } @@ -1678,7 +1673,8 @@ mdoc_quote_pre(MDOC_ARGS) case MDOC_Op: print_text(h, "\\(lB"); h->flags |= HTML_NOSPACE; - print_otag(h, TAG_SPAN, "c", "Op"); + /* Cannot use TAG_SPAN because it may contain blocks. */ + print_otag(h, TAG_IDIV, "c", "Op"); break; case MDOC_En: if (NULL == n->norm->Es || |