summaryrefslogtreecommitdiffstatshomepage
path: root/mdoc_html.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-12-17 00:18:29 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-12-17 00:18:29 +0000
commit6b21ebaff4af30f3415bd32d79d72952f3e89fab (patch)
treec42cf3d42911397bc1622657b09fb284f02732bd /mdoc_html.c
parent66e158326d79558ec465057b7ef8ff86feab5962 (diff)
downloadmandoc-6b21ebaff4af30f3415bd32d79d72952f3e89fab.tar.gz
mandoc-6b21ebaff4af30f3415bd32d79d72952f3e89fab.tar.zst
mandoc-6b21ebaff4af30f3415bd32d79d72952f3e89fab.zip
Significantly clean up Sh, Ss, SH, and SS handling in -Thtml. Now a
top-level DIV is used with only an H1 or H2 as the section header. This makes manuals much more readable in lynx, less complicated, and relegates left-margin widths to example.style.css.
Diffstat (limited to 'mdoc_html.c')
-rw-r--r--mdoc_html.c93
1 files changed, 23 insertions, 70 deletions
diff --git a/mdoc_html.c b/mdoc_html.c
index 05fc6159..177df7f0 100644
--- a/mdoc_html.c
+++ b/mdoc_html.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_html.c,v 1.122 2010/12/16 22:57:20 kristaps Exp $ */
+/* $Id: mdoc_html.c,v 1.123 2010/12/17 00:18:29 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -557,46 +557,25 @@ mdoc_root_pre(MDOC_ARGS)
static int
mdoc_sh_pre(MDOC_ARGS)
{
- struct htmlpair tag[2];
- const struct mdoc_node *nn;
- char buf[BUFSIZ];
- struct roffsu su;
+ struct htmlpair tag;
+ char buf[BUFSIZ];
- if (MDOC_BODY == n->type) {
- SCALE_HS_INIT(&su, INDENT);
- bufcat_su(h, "margin-left", &su);
- PAIR_CLASS_INIT(&tag[0], "sec-body");
- PAIR_STYLE_INIT(&tag[1], h);
- print_otag(h, TAG_DIV, 2, tag);
+ if (MDOC_BLOCK == n->type) {
+ PAIR_CLASS_INIT(&tag, "section");
+ print_otag(h, TAG_DIV, 1, &tag);
return(1);
- } else if (MDOC_BLOCK == n->type) {
- PAIR_CLASS_INIT(&tag[0], "sec-block");
- if (n->prev && NULL == n->prev->body->child) {
- print_otag(h, TAG_DIV, 1, tag);
- return(1);
- }
-
- SCALE_VS_INIT(&su, 1);
- bufcat_su(h, "margin-top", &su);
- if (NULL == n->next)
- bufcat_su(h, "margin-bottom", &su);
-
- PAIR_STYLE_INIT(&tag[1], h);
- print_otag(h, TAG_DIV, 2, tag);
+ } else if (MDOC_BODY == n->type)
return(1);
- }
buf[0] = '\0';
- for (nn = n->child; nn; nn = nn->next) {
- html_idcat(buf, nn->string, BUFSIZ);
- if (nn->next)
+ for (n = n->child; n; n = n->next) {
+ html_idcat(buf, n->string, BUFSIZ);
+ if (n->next)
html_idcat(buf, " ", BUFSIZ);
}
- PAIR_CLASS_INIT(&tag[0], "sec-head");
- PAIR_ID_INIT(&tag[1], buf);
-
- print_otag(h, TAG_DIV, 2, tag);
+ PAIR_ID_INIT(&tag, buf);
+ print_otag(h, TAG_H1, 1, &tag);
return(1);
}
@@ -605,51 +584,25 @@ mdoc_sh_pre(MDOC_ARGS)
static int
mdoc_ss_pre(MDOC_ARGS)
{
- struct htmlpair tag[3];
- const struct mdoc_node *nn;
- char buf[BUFSIZ];
- struct roffsu su;
-
- SCALE_VS_INIT(&su, 1);
+ struct htmlpair tag;
+ char buf[BUFSIZ];
- if (MDOC_BODY == n->type) {
- PAIR_CLASS_INIT(&tag[0], "ssec-body");
- if (n->parent->next && n->child) {
- bufcat_su(h, "margin-bottom", &su);
- PAIR_STYLE_INIT(&tag[1], h);
- print_otag(h, TAG_DIV, 2, tag);
- } else
- print_otag(h, TAG_DIV, 1, tag);
+ if (MDOC_BLOCK == n->type) {
+ PAIR_CLASS_INIT(&tag, "subsection");
+ print_otag(h, TAG_DIV, 1, &tag);
return(1);
- } else if (MDOC_BLOCK == n->type) {
- PAIR_CLASS_INIT(&tag[0], "ssec-block");
- if (n->prev) {
- bufcat_su(h, "margin-top", &su);
- PAIR_STYLE_INIT(&tag[1], h);
- print_otag(h, TAG_DIV, 2, tag);
- } else
- print_otag(h, TAG_DIV, 1, tag);
+ } else if (MDOC_BODY == n->type)
return(1);
- }
-
- /* TODO: see note in mdoc_sh_pre() about duplicates. */
buf[0] = '\0';
- for (nn = n->child; nn; nn = nn->next) {
- html_idcat(buf, nn->string, BUFSIZ);
- if (nn->next)
+ for (n = n->child; n; n = n->next) {
+ html_idcat(buf, n->string, BUFSIZ);
+ if (n->next)
html_idcat(buf, " ", BUFSIZ);
}
- SCALE_HS_INIT(&su, INDENT - HALFINDENT);
- su.scale = -su.scale;
- bufcat_su(h, "margin-left", &su);
-
- PAIR_CLASS_INIT(&tag[0], "ssec-head");
- PAIR_STYLE_INIT(&tag[1], h);
- PAIR_ID_INIT(&tag[2], buf);
-
- print_otag(h, TAG_DIV, 3, tag);
+ PAIR_ID_INIT(&tag, buf);
+ print_otag(h, TAG_H2, 1, &tag);
return(1);
}