shithub: rgbds

Download patch

ref: d1e82e50cbbd6701832e66d70bb7ee3a48db266e
parent: 7955447ca4fd664712404ebdb541f04b24360d3e
author: ISSOtm <[email protected]>
date: Mon Mar 23 10:36:00 EDT 2020

Improve style of man page HTML renders

See individual comments within `rgbds.css` for more info
Not too fond of having to modify `mandoc.css`, but I did my best to
modify as little as possible

--- a/docs/mandoc.css
+++ b/docs/mandoc.css
@@ -5,7 +5,10 @@
 
 /* Global defaults. */
 
-html {		max-width: 100ex; }
+/* This is handled in `rgbds.css` instead
+ *
+ * html {		max-width: 100ex; }
+ */
 body {		font-family: Helvetica,Arial,sans-serif; }
 table {		margin-top: 0em;
 		margin-bottom: 0em; }
--- /dev/null
+++ b/docs/rgbds.css
@@ -1,0 +1,52 @@
+/* Overrides to default mandoc styling for HTML renders of RGBDS man pages */
+
+html {
+	/* Reduce contrast */
+	background-color: #f8f8f8;
+	color: #222;
+}
+
+body {
+	/* Improve readability */
+	font-size: 16px;
+	line-height: 1.4;
+	text-align: justify;
+
+	/* Center body horizontally (requires <html> to span full width) */
+	margin: 10px auto;
+	/* `mandoc.css`'s default, but it's applied to <html> there */
+	max-width: 100ex;
+}
+@media print {
+	body {
+		/* Max width doesn't make sense for print */
+		max-width: none;
+		/* Make font slightly smaller for printing */
+		font-size: 14px;
+	}
+}
+
+code, pre {
+	font-size: smaller;
+}
+
+/* Separate lines in tables */
+table.Bl-column {
+	border-collapse: collapse;
+}
+table.Bl-column tr:not(:first-child) > td,
+table.Bl-column tr:not(:first-child) > th {
+	border-top: 1px solid #aaa;
+}
+
+table.Bl-column th {
+	/* Apply `.Sy` style to table headers */
+	font-style: normal;
+	font-weight: bold;
+}
+
+table.Bl-column td,
+table.Bl-column th {
+	/* Add horizontal spacing between columns */
+	padding: 2px 7px 0;
+}
--- a/src/doc_postproc.awk
+++ b/src/doc_postproc.awk
@@ -1,5 +1,17 @@
 #!/usr/bin/awk -f
 
+/<link/ {
+	# Inject our own style overrides
+	print("  <link rel=\"stylesheet\" href=\"rgbds.css\" type=\"text/css\" media=\"all\"/>")
+}
+
+/^\s+<td><b class="Sy">.+<\/b><\/td>$/ {
+	# Assuming that all cells whose contents are bold are heading cells,
+	# use the HTML tag for those
+	sub(/td><b class="Sy"/, "th");
+	sub(/b><\/td/, "th");
+}
+
 BEGIN {
 	in_synopsis = 0
 }