source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: Significantly clean up Sh, Ss, SH, and SS handling in -Thtml.
@ 2010-12-17  0:18 kristaps
  0 siblings, 0 replies; only message in thread
From: kristaps @ 2010-12-17  0:18 UTC (permalink / raw)
  To: source

Log Message:
-----------
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.

Modified Files:
--------------
    mdocml:
        example.style.css
        man_html.c
        mdoc_html.c

Revision Data
-------------
Index: man_html.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/man_html.c,v
retrieving revision 1.53
retrieving revision 1.54
diff -Lman_html.c -Lman_html.c -u -p -r1.53 -r1.54
--- man_html.c
+++ man_html.c
@@ -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: mdoc_html.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mdoc_html.c,v
retrieving revision 1.122
retrieving revision 1.123
diff -Lmdoc_html.c -Lmdoc_html.c -u -p -r1.122 -r1.123
--- mdoc_html.c
+++ mdoc_html.c
@@ -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;
-
-	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);
-		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);
+	struct htmlpair	 tag;
+	char		 buf[BUFSIZ];
 
-		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_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);
-
-	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);
+	struct htmlpair	 tag;
+	char		 buf[BUFSIZ];
+
+	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);
 }
 
Index: example.style.css
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/example.style.css,v
retrieving revision 1.27
retrieving revision 1.28
diff -Lexample.style.css -Lexample.style.css -u -p -r1.27 -r1.28
--- example.style.css
+++ example.style.css
@@ -1,18 +1,14 @@
 /* $Id$ */
 
 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. */
 
--
 To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-12-17  0:18 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-12-17  0:18 mdocml: Significantly clean up Sh, Ss, SH, and SS handling in -Thtml kristaps

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).