aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mdoc_html.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2018-10-02 19:44:15 +0000
committerIngo Schwarze <schwarze@openbsd.org>2018-10-02 19:44:15 +0000
commit5774a55f9b44f90dfc4ab652010a0e0282a35c42 (patch)
tree0247306c687c2c968f2370f189ed3b21f587c259 /mdoc_html.c
parent5e258663903335b6f86880b026108c38a3f95c3c (diff)
downloadmandoc-5774a55f9b44f90dfc4ab652010a0e0282a35c42.tar.gz
mandoc-5774a55f9b44f90dfc4ab652010a0e0282a35c42.tar.zst
mandoc-5774a55f9b44f90dfc4ab652010a0e0282a35c42.zip
add DESCRIPTION and .Ss to the toc; suggested by espie@
Diffstat (limited to 'mdoc_html.c')
-rw-r--r--mdoc_html.c30
1 files changed, 23 insertions, 7 deletions
diff --git a/mdoc_html.c b/mdoc_html.c
index 555046be..5be51643 100644
--- a/mdoc_html.c
+++ b/mdoc_html.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_html.c,v 1.313 2018/10/02 14:56:47 schwarze Exp $ */
+/* $Id: mdoc_html.c,v 1.314 2018/10/02 19:44:15 schwarze Exp $ */
/*
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2014,2015,2016,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -507,8 +507,8 @@ cond_id(const struct roff_node *n)
static int
mdoc_sh_pre(MDOC_ARGS)
{
- struct roff_node *sn;
- struct tag *t, *tt;
+ struct roff_node *sn, *subn;
+ struct tag *t, *tsec, *tsub;
char *id;
int sc;
@@ -530,13 +530,29 @@ mdoc_sh_pre(MDOC_ARGS)
print_text(h, "TABLE OF CONTENTS");
print_tagq(h, t);
t = print_otag(h, TAG_UL, "c", "Bl-compact");
- for (sn = n->next; sn != NULL; sn = sn->next) {
+ for (sn = n; sn != NULL; sn = sn->next) {
+ tsec = print_otag(h, TAG_LI, "");
id = html_make_id(sn->head, 0);
- tt = print_otag(h, TAG_LI, "");
print_otag(h, TAG_A, "hR", id);
- print_mdoc_nodelist(meta, sn->head->child, h);
- print_tagq(h, tt);
free(id);
+ print_mdoc_nodelist(meta, sn->head->child, h);
+ tsub = NULL;
+ for (subn = sn->body->child; subn != NULL;
+ subn = subn->next) {
+ if (subn->tok != MDOC_Ss)
+ continue;
+ if (tsub == NULL)
+ print_otag(h, TAG_UL,
+ "c", "Bl-compact");
+ tsub = print_otag(h, TAG_LI, "");
+ id = html_make_id(subn->head, 0);
+ print_otag(h, TAG_A, "hR", id);
+ free(id);
+ print_mdoc_nodelist(meta,
+ subn->head->child, h);
+ print_tagq(h, tsub);
+ }
+ print_tagq(h, tsec);
}
print_tagq(h, t);
break;