]> git.cameronkatri.com Git - mandoc.git/commitdiff
Significantly clean up Sh, Ss, SH, and SS handling in -Thtml. Now a
authorKristaps Dzonsons <kristaps@bsd.lv>
Fri, 17 Dec 2010 00:18:29 +0000 (00:18 +0000)
committerKristaps Dzonsons <kristaps@bsd.lv>
Fri, 17 Dec 2010 00:18:29 +0000 (00:18 +0000)
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.

example.style.css
man_html.c
mdoc_html.c

index 8fbfa1e7c25dc5bdd6751917f877eac364fe2bab..5545c554893523ac26ade4059896d793fac60fcb 100644 (file)
@@ -1,18 +1,14 @@
-/* $Id: example.style.css,v 1.27 2010/12/16 23:23:34 kristaps Exp $ */
+/* $Id: example.style.css,v 1.28 2010/12/17 00:18:29 kristaps Exp $ */
 
 html           { min-width: 580px; width: 580px; }
-
 body           { font-family: monospace; }
 
 /* Sections. */
 
-div.sec-head   { font-style: normal; font-weight: bold; } /* Sections (Sh). */
-div.sec-body   { }
-div.sec-block  { }
-
-div.ssec-head  { font-style: normal; font-weight: bold; } /* Sub-sections (Ss). */
-div.ssec-body  { }
-div.ssec-block { }
+h1             { font-size: medium; margin-left: -4ex; } /* Section header (Sh, SH). */
+h2             { font-size: medium; margin-left: -2ex; } /* Sub-section header (Ss, SS). */
+div.section    { margin-bottom: 3ex; margin-left: 4ex; } /* Sections (Sh, SH). */
+div.subsection { } /* Sub-sections (Ss, SS). */
 
 /* Vertical spacing. */
 
index e314bc935a7e99e61578d5be26502dd4f8c7cb3a..bd2aa00d186dee15682b70eecb5f657927c1c0a8 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: man_html.c,v 1.53 2010/12/15 17:19:41 kristaps Exp $ */
+/*     $Id: man_html.c,v 1.54 2010/12/17 00:18:29 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -375,35 +375,16 @@ man_br_pre(MAN_ARGS)
 static int
 man_SH_pre(MAN_ARGS)
 {
-       struct htmlpair  tag[2];
-       struct roffsu    su;
+       struct htmlpair  tag;
 
-       if (MAN_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 (MAN_BLOCK == n->type) {
+               PAIR_CLASS_INIT(&tag, "section");
+               print_otag(h, TAG_DIV, 1, &tag);
                return(1);
-       } else if (MAN_BLOCK == n->type) {
-               PAIR_CLASS_INIT(&tag[0], "sec-block");
-               if (n->prev && MAN_SH == n->prev->tok)
-                       if (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 (MAN_BODY == n->type)
                return(1);
-       }
 
-       PAIR_CLASS_INIT(&tag[0], "sec-head");
-       print_otag(h, TAG_DIV, 1, tag);
+       print_otag(h, TAG_H1, 0, NULL);
        return(1);
 }
 
@@ -488,41 +469,16 @@ man_SM_pre(MAN_ARGS)
 static int
 man_SS_pre(MAN_ARGS)
 {
-       struct htmlpair  tag[3];
-       struct roffsu    su;
-
-       SCALE_VS_INIT(&su, 1);
-
-       if (MAN_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);
-                       return(1);
-               }
+       struct htmlpair  tag;
 
-               print_otag(h, TAG_DIV, 1, tag);
+       if (MAN_BLOCK == n->type) {
+               PAIR_CLASS_INIT(&tag, "subsection");
+               print_otag(h, TAG_DIV, 1, &tag);
                return(1);
-       } else if (MAN_BLOCK == n->type) {
-               PAIR_CLASS_INIT(&tag[0], "ssec-block");
-               if (n->prev && MAN_SS == n->prev->tok) 
-                       if (n->prev->body->child) {
-                               bufcat_su(h, "margin-top", &su);
-                               PAIR_STYLE_INIT(&tag[1], h);
-                               print_otag(h, TAG_DIV, 2, tag);
-                               return(1);
-                       }
-
-               print_otag(h, TAG_DIV, 1, tag);
+       } else if (MAN_BODY == n->type)
                return(1);
-       }
 
-       SCALE_HS_INIT(&su, INDENT - HALFINDENT);
-       bufcat_su(h, "margin-left", &su);
-       PAIR_CLASS_INIT(&tag[0], "ssec-head");
-       PAIR_STYLE_INIT(&tag[1], h);
-       print_otag(h, TAG_DIV, 2, tag);
+       print_otag(h, TAG_H2, 0, NULL);
        return(1);
 }
 
index 05fc61595dee60cc9277a5df73cb3d3080297328..177df7f0e205d426c93eddfd2dfc4e074433cb48 100644 (file)
@@ -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);
 }