source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: Some presentation polish in man.cgi:    - include search bar
@ 2011-12-15 12:05 kristaps
  0 siblings, 0 replies; only message in thread
From: kristaps @ 2011-12-15 12:05 UTC (permalink / raw)
  To: source

Log Message:
-----------
Some presentation polish in man.cgi: 

 - include search bar above result page (I relent: it's annoying to
   follow three links then press back three times to get a search page);
 - make man.cgi.css into man-cgi.css so Apache isn't confused by two
   handlers (css, cgi); 
 - finally consolidate example.style.css to be under the div.mandoc css
   selector;
 - put catman pages under div.catman;
 - put search bar under div#mancgi;
 - reflect this properly in the bundled CSS files.

Modified Files:
--------------
    mdocml:
        Makefile
        cgi.c
        example.style.css

Added Files:
-----------
    mdocml:
        man-cgi.css

Removed Files:
-------------
    mdocml:
        man.cgi.css

Revision Data
-------------
--- /dev/null
+++ man-cgi.css
@@ -0,0 +1,6 @@
+body				{ font-family: Helvetica,Arial, sans-serif;
+		 	  	  font-size: small; }
+#mancgi fieldset		{ text-align: center; }
+#mancgi input[name=expr] 	{ width: 25%; }
+#mancgi td.title		{ padding-right: 1em; 
+			  	  text-align: right; }
--- man.cgi.css
+++ /dev/null
@@ -1,6 +0,0 @@
-body		{ font-family: Helvetica,Arial, sans-serif;
-		  font-size: small; }
-fieldset	{ text-align: center; }
-input[name=expr] { width: 25%; }
-td.title	{ padding-right: 1em; 
-		  text-align: right; }
Index: cgi.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/cgi.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -Lcgi.c -Lcgi.c -u -p -r1.31 -r1.32
--- cgi.c
+++ cgi.c
@@ -80,9 +80,9 @@ struct	req {
 };
 
 static	int		 atou(const char *, unsigned *);
-static	void		 catman(const char *);
+static	void		 catman(const struct req *, const char *);
 static	int	 	 cmp(const void *, const void *);
-static	void		 format(const char *);
+static	void		 format(const struct req *, const char *);
 static	void		 html_print(const char *);
 static	void		 html_putchar(char);
 static	int 		 http_decode(char *);
@@ -346,12 +346,14 @@ resp_begin_html(int code, const char *ms
 	       "<HEAD>\n"
 	       "<META HTTP-EQUIV=\"Content-Type\""
 	       " CONTENT=\"text/html; charset=utf-8\">\n"
-	       "<LINK REL=\"stylesheet\" HREF=\"%s/man.cgi.css\""
+	       "<LINK REL=\"stylesheet\" HREF=\"%s/man-cgi.css\""
+	       " TYPE=\"text/css\" media=\"all\">\n"
+	       "<LINK REL=\"stylesheet\" HREF=\"%s/man.css\""
 	       " TYPE=\"text/css\" media=\"all\">\n"
 	       "<TITLE>System Manpage Reference</TITLE>\n"
 	       "</HEAD>\n"
 	       "<BODY>\n"
-	       "<!-- Begin page content. //-->\n", css);
+	       "<!-- Begin page content. //-->\n", css, css);
 }
 
 static void
@@ -368,7 +370,8 @@ resp_searchform(const struct req *req)
 	int		 i;
 
 	puts("<!-- Begin search form. //-->");
-	printf("<FORM ACTION=\"%s/search.html\" METHOD=\"get\">\n"
+	printf("<DIV ID=\"mancgi\">\n"
+	       "<FORM ACTION=\"%s/search.html\" METHOD=\"get\">\n"
 	       "<FIELDSET>\n"
 	       "<LEGEND>Search Parameters</LEGEND>\n"
 	       "<INPUT TYPE=\"submit\" NAME=\"op\""
@@ -404,7 +407,8 @@ resp_searchform(const struct req *req)
 	puts(".\n"
 	     "<INPUT TYPE=\"reset\" VALUE=\"Reset\">\n"
 	     "</FIELDSET>\n"
-	     "</FORM>");
+	     "</FORM>\n"
+	     "</DIV>");
 	puts("<!-- End search form. //-->");
 }
 
@@ -549,7 +553,7 @@ pg_index(const struct req *req, char *pa
 }
 
 static void
-catman(const char *file)
+catman(const struct req *req, const char *file)
 {
 	FILE		*f;
 	size_t		 len;
@@ -562,21 +566,10 @@ catman(const char *file)
 		return;
 	}
 
-	resp_begin_http(200, NULL);
-	printf("<!DOCTYPE HTML PUBLIC "
-	       " \"-//W3C//DTD HTML 4.01//EN\""
-	       " \"http://www.w3.org/TR/html4/strict.dtd\">\n"
-	       "<HTML>\n"
-	       "<HEAD>\n"
-	       "<META HTTP-EQUIV=\"Content-Type\""
-	       " CONTENT=\"text/html; charset=utf-8\">\n"
-	       "<LINK REL=\"stylesheet\" HREF=\"%s/catman.css\""
-	       " TYPE=\"text/css\" media=\"all\">\n"
-	       "<TITLE>System Manpage Reference</TITLE>\n"
-	       "</HEAD>\n"
-	       "<BODY>\n"
-	       "<!-- Begin page content. //-->\n"
-	       "<PRE>\n", css);
+	resp_begin_html(200, NULL);
+	resp_searchform(req);
+	puts("<DIV CLASS=\"catman\">\n"
+	     "<PRE>");
 
 	while (NULL != (p = fgetln(f, &len))) {
 		bold = italic = 0;
@@ -688,6 +681,7 @@ catman(const char *file)
 	}
 
 	puts("</PRE>\n"
+	     "</DIV>\n"
 	     "</BODY>\n"
 	     "</HTML>");
 
@@ -695,7 +689,7 @@ catman(const char *file)
 }
 
 static void
-format(const char *file)
+format(const struct req *req, const char *file)
 {
 	struct mparse	*mp;
 	int		 fd;
@@ -719,22 +713,30 @@ format(const char *file)
 		return;
 	}
 
-	snprintf(opts, sizeof(opts), "style=%s/man.css,"
+	snprintf(opts, sizeof(opts), "fragment,"
 			"man=%s/search.html?sec=%%S&expr=%%N,"
 			/*"includes=/cgi-bin/man.cgi/usr/include/%%I"*/,
-			css, progname);
+			progname);
 
 	mparse_result(mp, &mdoc, &man);
+	if (NULL == man && NULL == mdoc) {
+		resp_baddb();
+		mparse_free(mp);
+		return;
+	}
+
+	resp_begin_html(200, NULL);
+	resp_searchform(req);
+
 	vp = html_alloc(opts);
 
-	if (NULL != mdoc) {
-		resp_begin_http(200, NULL);
+	if (NULL != mdoc)
 		html_mdoc(vp, mdoc);
-	} else if (NULL != man) {
-		resp_begin_http(200, NULL);
+	else
 		html_man(vp, man);
-	} else
-		resp_baddb();
+
+	puts("</BODY>\n"
+	     "</HTML>");
 
 	html_free(vp);
 	mparse_free(mp);
@@ -829,9 +831,9 @@ pg_show(const struct req *req, char *pat
 		resp_baddb();
 	else {
 		if (0 == strcmp(cp, "cat"))
-			catman(fn + 1);
+			catman(req, fn + 1);
 		else
-			format(fn + 1);
+			format(req, fn + 1);
 	}
 out:
 	if (idx)
Index: Makefile
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/Makefile,v
retrieving revision 1.390
retrieving revision 1.391
diff -LMakefile -LMakefile -u -p -r1.390 -r1.391
--- Makefile
+++ Makefile
@@ -107,7 +107,7 @@ SRCS		 = Makefile \
 		   man.7 \
 		   man.c \
 		   man.cgi.7 \
-		   man.cgi.css \
+		   man-cgi.css \
 		   man.h \
 		   man_hash.c \
 		   man_html.c \
@@ -482,7 +482,7 @@ installcgi: all
 	mkdir -p $(DESTDIR)$(HTDOCDIR)
 	$(INSTALL_PROGRAM) man.cgi $(DESTDIR)$(CGIBINDIR)
 	$(INSTALL_DATA) example.style.css $(DESTDIR)$(HTDOCDIR)/man.css
-	$(INSTALL_DATA) man.cgi.css $(DESTDIR)$(HTDOCDIR)
+	$(INSTALL_DATA) man-cgi.css $(DESTDIR)$(HTDOCDIR)
 
 installwww: www
 	mkdir -p $(PREFIX)/snapshots
Index: example.style.css
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/example.style.css,v
retrieving revision 1.47
retrieving revision 1.48
diff -Lexample.style.css -Lexample.style.css -u -p -r1.47 -r1.48
--- example.style.css
+++ example.style.css
@@ -1,146 +1,110 @@
 /* $Id$ */
-
 /*
  * This is an example style-sheet provided for mandoc(1) and the -Thtml
  * or -Txhtml output mode.
- *
- * It mimics the appearance of the traditional cvsweb output.
- *
+ * It mimics the appearance of the legacy man.cgi output.
  * See mdoc(7) and man(7) for macro explanations.
  */
 
-div.mandoc	{ min-width: 78ex; 
-		  width: 78ex; 
-	  	  font-family: monospace; } /* This is the outer node of all mandoc -T[x]html documents. */
-
-h1		{ margin-bottom: 0ex; font-size: inherit; margin-left: -4ex; } /* Section header (Sh, SH). */
-h2		{ margin-bottom: 0ex; font-size: inherit; margin-left: -2ex; } /* Sub-section header (Ss, SS). */
-table		{ width: 100%; margin-top: 0ex; margin-bottom: 0ex; } /* All tables. */
-td		{ vertical-align: top; } /* All table cells. */
-p		{ } /* Paragraph: Pp, Lp. */
-blockquote	{ margin-left: 5ex; margin-top: 0ex; margin-bottom: 0ex; } /* D1. */
-div.section	{ margin-bottom: 2ex; margin-left: 5ex; } /* Sections (Sh, SH). */
-div.subsection	{ } /* Sub-sections (Ss, SS). */
-table.synopsis	{ } /* SYNOPSIS section table. */
-
-/* Preamble structure. */
-
-table.foot	{ } /* Document footer. */
-td.foot-date	{ width: 50%; } /* Document footer: date. */
-td.foot-os	{ width: 50%; text-align: right; } /* Document footer: OS/source. */
-table.head	{ } /* Document header. */
-td.head-ltitle	{ width: 10%; } /* Document header: left-title. */
-td.head-vol	{ width: 80%; text-align: center; } /* Document header: volume. */
-td.head-rtitle	{ width: 10%; text-align: right; } /* Document header: right-title. */
-
-/* General font modes. */
-
-i		{ } /* Italic: BI, IB, I, (implicit). */
-.emph		{ font-style: italic; font-weight: normal; } /* Emphasis: Em, Bl -emphasis. */
-b		{ } /* Bold: SB, BI, IB, BR, RB, B, (implicit). */
-.symb		{ font-style: normal; font-weight: bold; } /* Symbolic: Sy, Ms, Bf -symbolic. */
-small		{ } /* Small: SB, SM. */
-.lit		{ font-style: normal; font-weight: normal; font-family: monospace; } /* Literal: Dl, Li, Ql, Bf -literal, Bl -literal, Bl -unfilled. */
-
-/* Block modes. */
-
-.display	{ } /* Top of all Bd, D1, Dl. */
-.list		{ } /* Top of all Bl. */
-
-/* Context-specific modes. */
-
-i.addr		{ font-weight: normal; } /* Address (Ad). */
-i.arg		{ font-weight: normal; } /* Command argument (Ar). */
-span.author	{ } /* Author name (An). */
-b.cmd		{ font-style: normal; } /* Command (Cm). */ 
-b.config	{ font-style: normal; } /* Config statement (Cd). */
-span.define	{ } /* Defines (Dv). */
-span.desc	{ } /* Nd.  After em-dash. */
-b.diag		{ font-style: normal; } /* Diagnostic (Bl -diag). */
-span.env	{ } /* Environment variables (Ev). */
-span.errno	{ } /* Error string (Er). */
-i.farg		{ font-weight: normal; } /* Function argument (Fa, Fn). */
-i.file		{ font-weight: normal; } /* File (Pa). */
-b.flag		{ font-style: normal; } /* Flag (Fl, Cm). */
-b.fname		{ font-style: normal; } /* Function name (Fa, Fn, Rv). */
-i.ftype		{ font-weight: normal; } /* Function types (Ft, Fn). */
-b.includes	{ font-style: normal; } /* Header includes (In). */
-span.lib	{ } /* Library (Lb). */
-i.link-sec	{ font-weight: normal; } /* Section links (Sx). */
-b.macro		{ font-style: normal; } /* Macro-ish thing (Fd). */
-b.name		{ font-style: normal; } /* Name of utility (Nm). */
-span.opt	{ } /* Options (Op, Oo/Oc). */
-span.ref	{ } /* Citations (Rs). */
-span.ref-auth	{ } /* Reference author (%A). */
-i.ref-book	{ font-weight: normal; } /* Reference book (%B). */
-span.ref-city	{ } /* Reference city (%C). */
-span.ref-date	{ } /* Reference date (%D). */
-i.ref-issue	{ font-weight: normal; } /* Reference issuer/publisher (%I). */
-i.ref-jrnl	{ font-weight: normal; } /* Reference journal (%J). */
-span.ref-num	{ } /* Reference number (%N). */
-span.ref-opt	{ } /* Reference optionals (%O). */
-span.ref-page	{ } /* Reference page (%P). */
-span.ref-corp	{ } /* Reference corporate/foreign author (%Q). */
-span.ref-rep	{ } /* Reference report (%R). */
-span.ref-title	{ text-decoration: underline; } /* Reference title (%T). */
-span.ref-vol	{ } /* Reference volume (%V). */
-span.type	{ font-style: italic; font-weight: normal; } /* Variable types (Vt). */
-span.unix	{ } /* Unices (Ux, Ox, Nx, Fx, Bx, Bsx, Dx). */
-b.utility	{ font-style: normal; } /* Name of utility (Ex). */
-b.var		{ font-style: normal; } /* Variables (Rv). */
-
-a.link-ext	{ } /* Off-site link (Lk). */
-a.link-includes	{ } /* Include-file link (In). */
-a.link-mail	{ } /* Mailto links (Mt). */
-a.link-man	{ } /* Manual links (Xr). */
-a.link-ref	{ } /* Reference section links (%Q). */
-a.link-sec	{ } /* Section links (Sx). */
-
-/* Formatting for lists.  See mdoc(7). */
-
-dl.list-diag	{ }
-dt.list-diag	{ }
-dd.list-diag	{ }
-
-dl.list-hang	{ }
-dt.list-hang	{ }
-dd.list-hang	{ }
-
-dl.list-inset	{ }
-dt.list-inset	{ }
-dd.list-inset	{ }
-
-dl.list-ohang	{ }
-dt.list-ohang	{ }
-dd.list-ohang	{ margin-left: 0ex; }
-
-dl.list-tag	{ }
-dt.list-tag	{ }
-dd.list-tag	{ }
-
-table.list-col	{ }
-tr.list-col	{ }
-td.list-col	{ }
-
-ul.list-bul	{ list-style-type: disc; padding-left: 1em; }
-li.list-bul	{ }
-
-ul.list-dash	{ list-style-type: none; padding-left: 0em; }
-li.list-dash:before { content: "\2014  "; }
-
-ul.list-hyph	{ list-style-type: none; padding-left: 0em; }
-li.list-hyph:before { content: "\2013  "; }
-
-ul.list-item	{ list-style-type: none; padding-left: 0em; }
-li.list-item	{ }
-
-ol.list-enum	{ padding-left: 2em; }
-li.list-enum	{ }
-
-/* Equation modes.  See eqn(7). */
-
-span.eqn	{ }
-
-/* Table modes.  See tbl(7). */
-
-table.tbl	{ }
+div.mandoc			{ min-width: 100ex; 
+				  width: 100ex; 
+				  font-family: monospace; } /* This is the outer node of all mandoc -T[x]html documents. */
+div.mandoc h1			{ margin-bottom: 0ex; font-size: inherit; margin-left: -4ex; } /* Section header (Sh, SH). */
+div.mandoc h2			{ margin-bottom: 0ex; font-size: inherit; margin-left: -2ex; } /* Sub-section header (Ss, SS). */
+div.mandoc table		{ width: 100%; margin-top: 0ex; margin-bottom: 0ex; } /* All tables. */
+div.mandoc td			{ vertical-align: top; } /* All table cells. */
+div.mandoc p			{ } /* Paragraph: Pp, Lp. */
+div.mandoc blockquote		{ margin-left: 5ex; margin-top: 0ex; margin-bottom: 0ex; } /* D1, Dl. */
+div.mandoc div.section		{ margin-bottom: 2ex; margin-left: 5ex; } /* Sections (Sh, SH). */
+div.mandoc div.subsection	{ } /* Sub-sections (Ss, SS). */
+div.mandoc table.synopsis	{ } /* SYNOPSIS section table. */
+div.mandoc table.foot		{ } /* Document footer. */
+div.mandoc td.foot-date		{ width: 50%; } /* Document footer: date. */
+div.mandoc td.foot-os		{ width: 50%; text-align: right; } /* Document footer: OS/source. */
+div.mandoc table.head		{ } /* Document header. */
+div.mandoc td.head-ltitle	{ width: 10%; } /* Document header: left-title. */
+div.mandoc td.head-vol		{ width: 80%; text-align: center; } /* Document header: volume. */
+div.mandoc td.head-rtitle	{ width: 10%; text-align: right; } /* Document header: right-title. */
+div.mandoc .display		{ } /* All Bd, D1, Dl. */
+div.mandoc .list		{ } /* All Bl. */
+div.mandoc i			{ } /* Italic: BI, IB, I, (implicit). */
+div.mandoc b			{ } /* Bold: SB, BI, IB, BR, RB, B, (implicit). */
+div.mandoc small		{ } /* Small: SB, SM. */
+div.mandoc .emph		{ font-style: italic; font-weight: normal; } /* Emphasis: Em, Bl -emphasis. */
+div.mandoc .symb		{ font-style: normal; font-weight: bold; } /* Symbolic: Sy, Ms, Bf -symbolic. */
+div.mandoc .lit			{ font-style: normal; font-weight: normal; font-family: monospace; } /* Literal: Dl, Li, Ql, Bf -literal, Bl -literal, Bl -unfilled. */
+div.mandoc i.addr		{ font-weight: normal; } /* Address (Ad). */
+div.mandoc i.arg		{ font-weight: normal; } /* Command argument (Ar). */
+div.mandoc span.author		{ } /* Author name (An). */
+div.mandoc b.cmd		{ font-style: normal; } /* Command (Cm). */ 
+div.mandoc b.config		{ font-style: normal; } /* Config statement (Cd). */
+div.mandoc span.define		{ } /* Defines (Dv). */
+div.mandoc span.desc		{ } /* Nd.  After em-dash. */
+div.mandoc b.diag		{ font-style: normal; } /* Diagnostic (Bl -diag). */
+div.mandoc span.env		{ } /* Environment variables (Ev). */
+div.mandoc span.errno		{ } /* Error string (Er). */
+div.mandoc i.farg		{ font-weight: normal; } /* Function argument (Fa, Fn). */
+div.mandoc i.file		{ font-weight: normal; } /* File (Pa). */
+div.mandoc b.flag		{ font-style: normal; } /* Flag (Fl, Cm). */
+div.mandoc b.fname		{ font-style: normal; } /* Function name (Fa, Fn, Rv). */
+div.mandoc i.ftype		{ font-weight: normal; } /* Function types (Ft, Fn). */
+div.mandoc b.includes		{ font-style: normal; } /* Header includes (In). */
+div.mandoc span.lib		{ } /* Library (Lb). */
+div.mandoc i.link-sec		{ font-weight: normal; } /* Section links (Sx). */
+div.mandoc b.macro		{ font-style: normal; } /* Macro-ish thing (Fd). */
+div.mandoc b.name		{ font-style: normal; } /* Name of utility (Nm). */
+div.mandoc span.opt		{ } /* Options (Op, Oo/Oc). */
+div.mandoc span.ref		{ } /* Citations (Rs). */
+div.mandoc span.ref-auth	{ } /* Reference author (%A). */
+div.mandoc i.ref-book		{ font-weight: normal; } /* Reference book (%B). */
+div.mandoc span.ref-city	{ } /* Reference city (%C). */
+div.mandoc span.ref-date	{ } /* Reference date (%D). */
+div.mandoc i.ref-issue		{ font-weight: normal; } /* Reference issuer/publisher (%I). */
+div.mandoc i.ref-jrnl		{ font-weight: normal; } /* Reference journal (%J). */
+div.mandoc span.ref-num		{ } /* Reference number (%N). */
+div.mandoc span.ref-opt		{ } /* Reference optionals (%O). */
+div.mandoc span.ref-page	{ } /* Reference page (%P). */
+div.mandoc span.ref-corp	{ } /* Reference corporate/foreign author (%Q). */
+div.mandoc span.ref-rep		{ } /* Reference report (%R). */
+div.mandoc span.ref-title	{ text-decoration: underline; } /* Reference title (%T). */
+div.mandoc span.ref-vol		{ } /* Reference volume (%V). */
+div.mandoc span.type		{ font-style: italic; font-weight: normal; } /* Variable types (Vt). */
+div.mandoc span.unix		{ } /* Unices (Ux, Ox, Nx, Fx, Bx, Bsx, Dx). */
+div.mandoc b.utility		{ font-style: normal; } /* Name of utility (Ex). */
+div.mandoc b.var		{ font-style: normal; } /* Variables (Rv). */
+div.mandoc a.link-ext		{ } /* Off-site link (Lk). */
+div.mandoc a.link-includes	{ } /* Include-file link (In). */
+div.mandoc a.link-mail		{ } /* Mailto links (Mt). */
+div.mandoc a.link-man		{ } /* Manual links (Xr). */
+div.mandoc a.link-ref		{ } /* Reference section links (%Q). */
+div.mandoc a.link-sec		{ } /* Section links (Sx). */
+div.mandoc dl.list-diag		{ } /* Formatting for lists.  See mdoc(7). */
+div.mandoc dt.list-diag		{ }
+div.mandoc dd.list-diag		{ }
+div.mandoc dl.list-hang		{ }
+div.mandoc dt.list-hang		{ }
+div.mandoc dd.list-hang		{ }
+div.mandoc dl.list-inset	{ }
+div.mandoc dt.list-inset	{ }
+div.mandoc dd.list-inset	{ }
+div.mandoc dl.list-ohang	{ }
+div.mandoc dt.list-ohang	{ }
+div.mandoc dd.list-ohang	{ margin-left: 0ex; }
+div.mandoc dl.list-tag		{ }
+div.mandoc dt.list-tag		{ }
+div.mandoc dd.list-tag		{ }
+div.mandoc table.list-col	{ }
+div.mandoc tr.list-col		{ }
+div.mandoc td.list-col		{ }
+div.mandoc ul.list-bul		{ list-style-type: disc; padding-left: 1em; }
+div.mandoc li.list-bul		{ }
+div.mandoc ul.list-dash		{ list-style-type: none; padding-left: 0em; }
+div.mandoc li.list-dash:before	{ content: "\2014  "; }
+div.mandoc ul.list-hyph		{ list-style-type: none; padding-left: 0em; }
+div.mandoc li.list-hyph:before	{ content: "\2013  "; }
+div.mandoc ul.list-item		{ list-style-type: none; padding-left: 0em; }
+div.mandoc li.list-item		{ }
+div.mandoc ol.list-enum		{ padding-left: 2em; }
+div.mandoc li.list-enum		{ }
+div.mandoc span.eqn		{ } /* Equation modes.  See eqn(7). */
+div.mandoc table.tbl		{ } /* Table modes.  See tbl(7). */
--
 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:[~2011-12-15 12:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-15 12:05 mdocml: Some presentation polish in man.cgi: - include search bar 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).