diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-09-26 18:31:36 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-09-26 18:31:36 +0000 |
commit | 1506a0b5d201b7838d6c4bfc1f15a18ad5750684 (patch) | |
tree | a05679f4ba28159e401d05d5cb703c6fb6ea7af7 | |
parent | 4520a31ae912502e6f8202ffddcf19aa750f264d (diff) | |
download | mandoc-1506a0b5d201b7838d6c4bfc1f15a18ad5750684.tar.gz |
SYNOPSIS functions in -Thtml text-indent and group paramters (as nroff does).
-rw-r--r-- | mdoc_html.c | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/mdoc_html.c b/mdoc_html.c index 90bc2f26..2fbf2da9 100644 --- a/mdoc_html.c +++ b/mdoc_html.c @@ -1603,26 +1603,27 @@ static int mdoc_fn_pre(MDOC_ARGS) { struct tag *t; - struct htmlpair tag; + struct htmlpair tag[2]; const struct mdoc_node *nn; char nbuf[BUFSIZ]; const char *sp, *ep; - int sz; + int sz, i; if (SEC_SYNOPSIS == n->sec) { - if (n->next) { - tag.key = ATTR_STYLE; - tag.val = "margin-bottom: 1em"; - print_otag(h, TAG_DIV, 1, &tag); - } else - print_otag(h, TAG_DIV, 0, NULL); + bufcat("margin-left: 6em;"); + bufcat("text-indent: -6em;"); + if (n->next) + bufcat("margin-bottom: 1em;"); + tag[0].key = ATTR_STYLE; + tag[0].val = buf; + print_otag(h, TAG_DIV, 1, tag); } /* Split apart into type and name. */ - tag.key = ATTR_CLASS; - tag.val = "ftype"; - t = print_otag(h, TAG_SPAN, 1, &tag); + tag[0].key = ATTR_CLASS; + tag[0].val = "ftype"; + t = print_otag(h, TAG_SPAN, 1, tag); assert(n->child->string); sp = n->child->string; @@ -1636,9 +1637,9 @@ mdoc_fn_pre(MDOC_ARGS) print_tagq(h, t); - tag.key = ATTR_CLASS; - tag.val = "fname"; - t = print_otag(h, TAG_SPAN, 1, &tag); + tag[0].key = ATTR_CLASS; + tag[0].val = "fname"; + t = print_otag(h, TAG_SPAN, 1, tag); if (sp) { (void)strlcpy(nbuf, sp, BUFSIZ); @@ -1651,9 +1652,15 @@ mdoc_fn_pre(MDOC_ARGS) print_text(h, "("); for (nn = n->child->next; nn; nn = nn->next) { - tag.key = ATTR_CLASS; - tag.val = "farg"; - t = print_otag(h, TAG_SPAN, 1, &tag); + i = 0; + tag[i].key = ATTR_CLASS; + tag[i++].val = "farg"; + if (SEC_SYNOPSIS == n->sec) { + tag[i].key = ATTR_STYLE; + tag[i++].val = "white-space: nowrap;"; + } + + t = print_otag(h, TAG_SPAN, i, tag); print_text(h, nn->string); print_tagq(h, t); if (nn->next) |