Switch to using typesetter.css.
authorethereal <ethereal@ethv.net>
Wed, 22 Jan 2020 04:18:42 +0000 (23:18 -0500)
committerethereal <ethereal@ethv.net>
Wed, 22 Jan 2020 04:18:42 +0000 (23:18 -0500)
local_site.py
src/css/style.css

index 403da19..8f04208 100755 (executable)
@@ -35,10 +35,15 @@ def make_navbar(navinfo):
                 continue
 
             if "title" in fsub[sub]:
-                result += "<li>" + make_link(fsub[sub], "title") + "</li>"
+                if len(subs) == 2 and sub == ssub[".name"]:
+                    result += "<li>&raquo;<span class=\"selected\">" \
+                        + make_link(fsub[sub], "title") + "</span></li>"
+                else:
+                    result += "<li>" + make_link(fsub[sub], "title") + "</li>"
             elif ".isdir" in fsub[sub]:
                 if(fsub[sub] == ssub):
-                    result += "<li>&raquo;<span class=\"selected\">" + make_link(fsub[sub], ".name") + "/</span>"
+                    result += "<li>&raquo;<span class=\"selected\">" \
+                        + make_link(fsub[sub], ".name") + "/</span>"
                     result += helper(subs[1:])
                     result += "</li>"
                 else:
@@ -55,6 +60,7 @@ def make_page(navinfo, content):
 <html xmlns="http://www.w3.org/1999/xhtml">                                     
 <head>
     <title>""" + navinfo["title"] + """ - ethereality</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
     <link rel="stylesheet" type="text/css" href="/css/style.css" />
     <link rel="shortcut icon" href="/img/favicon.png" />
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
@@ -74,21 +80,19 @@ def make_page(navinfo, content):
     </script>
 </head>
 <body>
-    <div id="root">
     <div id="header">
-        <h1>
-            ethereality
-        </h1>
-        <h2>""" + navinfo["title"] + """</h2>
+        <h1>""" + navinfo["title"] + """</h1>
     </div>
-    <div id="navbar">
-        <a href="javascript:void(0)" onclick="javascript:tnav()" id="nav-root-toggle">Hide navbar</a>
+    <nav>
         <div class="naventry" id="nav-root">
-            <span class="selected"><a href="/">ethereality</a>/</span>""" + make_navbar(navinfo) + """
+            <span class="selected"><a href="/">ethereality</a>/</span>""" \
+            + make_navbar(navinfo) \
+            + """
         </div>
-    </div>
+    </nav>
     <div id="main">""" + content + """</div>
     <div id="footer">
+        <hr />
         <p>
         Unless otherwise specified, all written content is released under a
         Creative Commons Attribution 3.0 Unported license, and all original
@@ -101,7 +105,6 @@ def make_page(navinfo, content):
             Page generated at """ + time.asctime(time.gmtime()) + """ UTC.
         </p>
     </div>
-    </div>
 </body>
 </html>
 """
index ff14ebb..795932b 100644 (file)
-body {
-    background: #888;
-}
-
-#root {
-    margin-top: 0px;
-    background: #ddd;
-    /*width: 900px;*/
-    margin-left: auto;
-    margin-right: auto;
-    max-width: 60em;
-
-    -moz-border-radius: 10px;
-    -webkit-border-radius: 10px;
-    border-radius: 10px; /* future proofing */
-}
-
-#root h1 {
-    font-size: 18pt;
-    font-weight: bold;
-}
-
-#root h2 {
-    font-size: 18pt;
-    font-weight: normal;
-}
-
-#root h3 {
-    font-size: 14pt;
-    font-weight: bold;
-}
-
-#root h4 {
-    font-size: 14pt;
-    font-weight: normal;
-}
-
-#root h5 {
-    font-size: 10pt;
-    font-weight: bold;
-}
-
-#root h6 {
-    font-size: 10pt;
-    font-weight: normal;
-}
-
-#root #header {
-    text-align: center;
-    font-size: 24pt;
-    font-weight: normal;
-    font-style: italic;
-
-    -moz-border-radius: 10px;
-    -webkit-border-radius: 10px;
-    border-radius: 10px; /* future proofing */
-}
-
-#root #navbar {
-    background: #aaa;
-    padding-left: 1em;
-    padding-bottom: 1em;
-    /*float: right;*/
-    width: 90%;
-
-    -moz-border-radius: 10px;
-    -webkit-border-radius: 10px;
-    border-radius: 10px; /* future proofing */
-}
-
-#root #navbar #nav-root {
-    /*max-height: 300px;*/
-    overflow: auto;
-}
-
-#root #navbar .naventry {
-    padding-left: 1em;
-    background: #eee;
-}
-
-#root #navbar ul {
-    padding-left: 0em;
-    margin-left: 0em;
-}
-
-#root #navbar li {
-    padding-left: 0em;
-    margin-left: 0em;
-}
-
-#root #navbar .selected {
-    font-weight: bold;
-    font-style: italic;
-}
-
-#root #main {
-    background: #eee;
-    padding-left: 1em;
-    padding-right: 1em;
-    min-height: 200px;
-}
-
-#root #main .footnote {
+#main .footnote {
     font-size: small;
     vertical-align:top;
 }
 
-#root #main .latex-block {
+#main .latex-block {
     text-align: center;
 }
 
-#root #main .centre-p {
+#main .centre-p {
     text-align: center;
 }
 
-#root #main .centre-img {
+#main .centre-img {
     display: block;
     margin-left: auto;
     margin-right: auto;
 }
 
-#root #main pre {
-    margin-left: 2em;
-    margin-right: 2em;
-    text-indent: 0em;
-    background: #fff;
-    border: 1px solid #888;
-    padding-left: .25em;
-    padding-right: .25em;
-}
-
-#root #main code {
+#main code {
     padding: 0em;
     border: none;
 }
 
-#root #main blockquote {
-    border-top: 1px solid #888;
-    border-bottom: 1px solid #888;
+#footer {
+    font-size: small;
+}
+
+.selected {
+    font-weight: bold;
 }
 
 /* Syntax highlighting. */
@@ -200,18 +91,745 @@ body {
     color: #008;
 }
 
-#root #footer {
-    padding-left: 1em;
-    padding-right: 1em;
-    text-align: center;
-    font-size: 10pt;
+/*! normalize.css 2012-01-31T16:06 UTC - http://github.com/necolas/normalize.css */
+
+/* =============================================================================
+   HTML5 display definitions
+   ========================================================================== */
+
+/*
+ * Corrects block display not defined in IE6/7/8/9 & FF3
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+nav,
+section {
+    display: block;
 }
 
-/* Weblog page styles. */
+/*
+ * Corrects inline-block display not defined in IE6/7/8/9 & FF3
+ */
 
-#root #main .post-div {
-    margin-left: auto;
-    margin-right: auto;
-    width: 90%;
-    padding-bottom: 1em;
+audio,
+canvas,
+video {
+    display: inline-block;
+    *display: inline;
+    *zoom: 1;
+}
+
+/*
+ * Prevents modern browsers from displaying 'audio' without controls
+ */
+
+audio:not([controls]) {
+    display: none;
+}
+
+/*
+ * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4
+ * Known issue: no IE6 support
+ */
+
+[hidden] {
+    display: none;
+}
+
+
+/* =============================================================================
+   Base
+   ========================================================================== */
+
+/*
+ * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units
+ *    http://clagnut.com/blog/348/#c790
+ * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom
+ *    www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/
+ */
+
+html {
+    font-size: 100%; /* 1 */
+    -webkit-text-size-adjust: 100%; /* 2 */
+    -ms-text-size-adjust: 100%; /* 2 */
+}
+
+/* 
+ * Addresses font-family inconsistency between 'textarea' and other form elements.
+ */
+
+html,
+button,
+input,
+select,
+textarea {
+    font-family: sans-serif;
+}
+
+/*
+ * Addresses margins handled incorrectly in IE6/7
+ */
+
+body {
+    margin: 0;
+}
+
+
+/* =============================================================================
+   Links
+   ========================================================================== */
+
+/*
+ * Addresses outline displayed oddly in Chrome
+ */
+
+a:focus {
+    outline: thin dotted;
+}
+
+/*
+ * Improves readability when focused and also mouse hovered in all browsers
+ * people.opera.com/patrickl/experiments/keyboard/test
+ */
+
+a:hover,
+a:active {
+    outline: 0;
+}
+
+
+/* =============================================================================
+   Typography
+   ========================================================================== */
+
+/*
+ * Neutralise smaller font-size in 'section' and 'article' in FF4+, Chrome, S5
+ * Fix IE6/7 heading font-size not being relative to the root font-size
+ */
+
+h1 {
+    font-size: 2em;
+    margin: 0.67em 0;
+}
+
+h2 {
+    font-size: 1.5em;
+    margin: 0.83em 0;
+}
+
+h3 {
+    font-size: 1.17em;
+    margin: 1em 0;
+}
+
+h4 {
+    font-size: 1em;
+    margin: 1.33em 0;
+}
+
+h5 {
+    font-size: 0.83em;
+    margin: 1.67em 0;
+}
+
+h6 {
+    font-size: 0.75em;
+    margin: 2.33em 0;
+}
+
+/*
+ * Addresses styling not present in IE7/8/9, S5, Chrome
+ */
+
+abbr[title] {
+    border-bottom: 1px dotted;
+}
+
+/*
+ * Addresses style set to 'bolder' in FF3+, S4/5, Chrome
+*/
+
+b, 
+strong { 
+    font-weight: bold; 
+}
+
+blockquote {
+    margin: 1em 40px;
+}
+
+/*
+ * Addresses styling not present in S5, Chrome
+ */
+
+dfn {
+    font-style: italic;
+}
+
+/*
+ * Addresses styling not present in IE6/7/8/9
+ */
+
+mark {
+    background: #ff0;
+    color: #000;
+}
+
+/*
+ * Corrects font family set oddly in IE6, S4/5, Chrome
+ * en.wikipedia.org/wiki/User:Davidgothberg/Test59
+ */
+
+pre,
+code,
+kbd,
+samp {
+    font-family: monospace, serif;
+    _font-family: 'courier new', monospace;
+    font-size: 1em;
+}
+
+/*
+ * Improves readability of pre-formatted text in all browsers
+ */
+
+pre {
+    white-space: pre;
+    white-space: pre-wrap;
+    word-wrap: break-word;
+}
+
+/*
+ * 1. Addresses CSS quotes not supported in IE6/7
+ * 2. Addresses quote property not supported in S4
+ */
+
+/* 1 */
+
+q {
+    quotes: none;
+}
+
+/* 2 */
+
+q:before,
+q:after {
+    content: '';
+    content: none;
+}
+
+small {
+    font-size: 75%;
+}
+
+/*
+ * Prevents sub and sup affecting line-height in all browsers
+ * gist.github.com/413930
+ */
+
+sub,
+sup {
+    font-size: 75%;
+    line-height: 0;
+    position: relative;
+    vertical-align: baseline;
+}
+
+sup {
+    top: -0.5em;
+}
+
+sub {
+    bottom: -0.25em;
+}
+
+
+/* =============================================================================
+   Lists
+   ========================================================================== */
+
+ul,
+ol {
+    margin-left: 0;
+    padding: 0 0 0 40px;
+}
+
+dd {
+    margin: 0 0 0 40px;
+}
+
+nav ul,
+nav ol {
+    list-style: none;
+    list-style-image: none;
+}
+
+
+/* =============================================================================
+   Embedded content
+   ========================================================================== */
+
+/*
+ * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3
+ * 2. Improves image quality when scaled in IE7
+ *    code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/
+ */
+
+img {
+    border: 0; /* 1 */
+    -ms-interpolation-mode: bicubic; /* 2 */
+}
+
+/*
+ * Corrects overflow displayed oddly in IE9 
+ */
+
+svg:not(:root) {
+    overflow: hidden;
+}
+
+
+/* =============================================================================
+   Figures
+   ========================================================================== */
+
+/*
+ * Addresses margin not present in IE6/7/8/9, S5, O11
+ */
+
+figure {
+    margin: 0;
+}
+
+
+/* =============================================================================
+   Forms
+   ========================================================================== */
+
+/*
+ * Corrects margin displayed oddly in IE6/7
+ */
+
+form {
+    margin: 0;
+}
+
+/*
+ * Define consistent border, margin, and padding
+ */
+
+fieldset {
+    border: 1px solid #c0c0c0;
+    margin: 0 2px;
+    padding: 0.35em 0.625em 0.75em;
+}
+
+/*
+ * 1. Corrects color not being inherited in IE6/7/8/9
+ * 2. Corrects text not wrapping in FF3 
+ * 3. Corrects alignment displayed oddly in IE6/7
+ */
+
+legend {
+    border: 0; /* 1 */
+    padding: 0;
+    white-space: normal; /* 2 */
+    *margin-left: -7px; /* 3 */
+}
+
+/*
+ * 1. Corrects font size not being inherited in all browsers
+ * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome
+ * 3. Improves appearance and consistency in all browsers
+ */
+
+button,
+input,
+select,
+textarea {
+    font-size: 100%; /* 1 */
+    margin: 0; /* 2 */
+    vertical-align: baseline; /* 3 */
+    *vertical-align: middle; /* 3 */
+}
+
+/*
+ * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet
+ */
+
+button,
+input {
+    line-height: normal; /* 1 */
+}
+
+/*
+ * 1. Improves usability and consistency of cursor style between image-type 'input' and others
+ * 2. Corrects inability to style clickable 'input' types in iOS
+ * 3. Removes inner spacing in IE7 without affecting normal text inputs
+ *    Known issue: inner spacing remains in IE6
+ */
+
+button,
+input[type="button"], 
+input[type="reset"], 
+input[type="submit"] {
+    cursor: pointer; /* 1 */
+    -webkit-appearance: button; /* 2 */
+    *overflow: visible;  /* 3 */
+}
+
+/*
+ * Re-set default cursor for disabled elements
+ */
+
+button[disabled],
+input[disabled] {
+    cursor: default;
+}
+
+/*
+ * 1. Addresses box sizing set to content-box in IE8/9
+ * 2. Removes excess padding in IE8/9
+ * 3. Removes excess padding in IE7
+      Known issue: excess padding remains in IE6
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+    box-sizing: border-box; /* 1 */
+    padding: 0; /* 2 */
+    *height: 13px; /* 3 */
+    *width: 13px; /* 3 */
+}
+
+/*
+ * 1. Addresses appearance set to searchfield in S5, Chrome
+ * 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof)
+ */
+
+input[type="search"] {
+    -webkit-appearance: textfield; /* 1 */
+    -moz-box-sizing: content-box;
+    -webkit-box-sizing: content-box; /* 2 */
+    box-sizing: content-box;
+}
+
+/*
+ * Removes inner padding and search cancel button in S5, Chrome on OS X
+ */
+
+input[type="search"]::-webkit-search-decoration,
+input[type="search"]::-webkit-search-cancel-button {
+    -webkit-appearance: none;
+}
+
+/*
+ * Removes inner padding and border in FF3+
+ * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+    border: 0;
+    padding: 0;
+}
+
+/*
+ * 1. Removes default vertical scrollbar in IE6/7/8/9
+ * 2. Improves readability and alignment in all browsers
+ */
+
+textarea {
+    overflow: auto; /* 1 */
+    vertical-align: top; /* 2 */
+}
+
+
+/* =============================================================================
+   Tables
+   ========================================================================== */
+
+/* 
+ * Remove most spacing between table cells
+ */
+
+table {
+    border-collapse: collapse;
+    border-spacing: 0;
+}
+
+/* Typesetter.css Ⓒ2012-2019 Timothy Allen
+ * https://gitlab.com/Screwtapello/typesetter-css/
+ */
+html {
+  font-size: 1em;
+  line-height: 1.25rem;
+  text-align: justify;
+  -moz-hyphens: auto;
+  -webkit-hyphens: auto;
+  -ms-hyphens: auto;
+  hyphens: auto;
+}
+body {
+  max-width: 35rem;
+  margin-left: auto;
+  margin-right: auto;
+  padding: 0 1.25rem;
+  padding-bottom: 3.75rem;
+  position: relative;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+  margin: 1.25rem 0;
+}
+h1 {
+  font-size: 1.5em;
+  line-height: 2.5rem;
+}
+h2,
+h3,
+h4,
+h5,
+h6 {
+  font-size: 1.0em;
+  line-height: 1.25rem;
+}
+h1 {
+  font-weight: bold;
+  text-align: center;
+}
+h2 {
+  font-weight: bold;
+}
+h3 {
+  font-weight: inherit;
+  font-variant: small-caps;
+}
+h4 {
+  font-weight: inherit;
+  font-style: italic;
+}
+h5 {
+  font-weight: inherit;
+  font-size: 0.875em;
+}
+h6 {
+  font-weight: inherit;
+  font-size: 0.750em;
+}
+div,
+ul,
+ol,
+li,
+address,
+table,
+pre,
+nav,
+aside {
+  margin: 1.25rem 0;
+}
+p {
+  margin: 0;
+}
+p + p {
+  text-indent: 1.25rem;
+}
+ul,
+ol {
+  padding-left: 0;
+  margin-left: 2.5rem;
+}
+li ul,
+li ol {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+dt {
+  margin-top: 1.25rem;
+}
+dt + dt {
+  margin-top: 0;
+}
+dd {
+  margin-bottom: 1.25rem;
+  margin-left: 2.5rem;
+}
+blockquote {
+  margin: 1.25rem 2.5rem;
+}
+table {
+  margin-left: auto;
+  margin-right: auto;
+}
+thead {
+  border-bottom: 0.125rem solid currentColor;
+}
+tfoot {
+  border-top: 0.125rem solid currentColor;
+}
+thead th,
+tfoot th,
+thead td,
+tfoot td {
+  line-height: 1.125rem;
+}
+td,
+th {
+  font-size: 0.75rem;
+  padding: 0 0.625rem;
+}
+td:first-child,
+th:first-child {
+  padding-left: 0;
+}
+td:last-child,
+th:last-child {
+  padding-right: 0;
+}
+pre {
+  font-size: 0.75rem;
+}
+code {
+  hyphens: manual;
+}
+hr {
+  color: inherit;
+  margin-top: 1.125rem;
+  margin-bottom: 1.25rem;
+  border: none;
+  border-top: 0.125rem solid;
+}
+aside,
+nav {
+  font-size: 0.75rem;
+  line-height: 1.25rem;
+}
+aside h1,
+nav h1 {
+  font-size: 1.000rem;
+  line-height: 1.25rem;
+}
+aside :first-child,
+nav :first-child {
+  margin-top: 0;
+}
+/* By default, navigation should appear inline */
+nav {
+  text-align: center;
+  /* Flatten the navigation hierarchy */
+  /* Use vertical bars to separate each item. */
+}
+nav ul {
+  margin-left: 0;
+}
+nav ul,
+nav li {
+  display: inline;
+}
+nav li:before {
+  content: ' | ';
+}
+nav li:first-of-type:before {
+  content: '';
+}
+nav li > ul:before {
+  content: ' | ';
+}
+/*
+ * By default, asides should appear inline, but narrower because they have
+ * a smaller font size.
+ */
+aside {
+  max-width: 20rem;
+  margin-left: auto;
+  margin-right: auto;
+}
+/* If we have sufficient width to put stuff on the sides... */
+@media (min-width: 60rem) {
+  aside,
+  nav {
+    margin-top: 0;
+    margin-bottom: 1.25rem;
+    width: 10rem;
+    text-align: left;
+  }
+  aside {
+    clear: right;
+    float: right;
+    margin-right: -11.25rem;
+  }
+  /* If asides aren't inline, they shouldn't disrupt paragraph indents. */
+  aside + p {
+    text-indent: 1.25rem;
+  }
+  nav {
+    text-align: left;
+    clear: left;
+    float: left;
+    margin-left: -11.25rem;
+    /* Now we have room to display the hierarchy */
+  }
+  nav ul,
+  nav li {
+    display: block;
+    margin: 0;
+  }
+  nav ul ul {
+    margin-left: 1.25rem;
+  }
+  nav li > ul:before {
+    content: '';
+  }
+  nav li:before {
+    content: '';
+  }
+}
+/* If we don't even have our minimum width, don't bother justifying. */
+@media (max-width: 35rem) {
+  html {
+    text-align: left;
+  }
+}
+/* Special support for footnotes from Pandoc */
+div.footnotes {
+  font-size: 0.75rem;
+}
+
+/* Typesetter.css Ⓒ2012-2019 Timothy Allen
+ * https://gitlab.com/Screwtapello/typesetter-css/
+ */
+html {
+  background: #fffcf0;
+  color: #333350;
+}
+:link {
+  color: #55C;
+}
+:link:hover {
+  color: #33E;
+  background: rgba(0, 0, 0, 0.1);
+}
+:visited {
+  color: #848;
+}
+:visited:hover {
+  color: #A3A;
+}
+:link:active,
+:visited:active {
+  color: #E33;
+}
+tr:nth-child(even) {
+  background: rgba(0, 0, 0, 0.1);
 }