Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/whitemagicsoftware.com.git
build.sh
+#!/bin/bash
+
+# Static website build script
+
+DIR="$(cd "$(dirname "${BASH_SRC_DIR[0]}")" >/dev/null 2>&1 && pwd)"
+TPL_DIR="$DIR/template"
+INC_DIR="$TPL_DIR/includes"
+
+# Build artefacts
+pandoc index.md -f markdown-auto_identifiers -o $INC_DIR/html/body.html
+
+closure.sh css/*.css > $INC_DIR/css/main.min.css
+
+# Combine into a single page
+fmpp -Q -S $TPL_DIR -O . index.html
+
+# Optimise the web page
+tidy -m -q \
+ --wrap 0 \
+ --tidy-mark no \
+ --vertical-space auto \
+ --doctype html5 \
+ index.html
css/homepage.css
+article {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ min-height: 100%;
+}
+
+/**
+ * Use a single column for all images and headers on the homepage.
+ */
+div.homepage {
+ display: flex;
+ flex-direction: row;
+
+ align-items: center;
+ justify-content: center;
+}
+
+/**
+ * Change the logo size.
+ */
+div.homepage img[alt="logo"] {
+ height: 120px;
+}
+
+/**
+ * Make the page content columnar.
+ */
+div.homepage div.content {
+ display: flex;
+ flex-direction: column;
+}
+
+/**
+ * Make the headings flush.
+ */
+div.homepage h1, div.homepage h2 {
+ margin: 0;
+}
+
+/**
+ * Center the contact link on the homepage.
+ */
+div.homepage a {
+ display: flex;
+ justify-content: center;
+}
+
css/main.css
+html {
+ height: 100%;
+}
+
+body {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ height: 100%;
+
+ font-family: Helvetica, sans-serif;
+ color: rgb( 4, 28, 38 );
+}
+
+header, footer {
+ flex-shrink: 0;
+}
+
+main {
+ display: flex;
+ flex-grow: 1;
+ flex-direction: column;
+ justify-content: center;
+ align-items: stretch;
+}
+
+h1, h2, h3 {
+ font-family: Palatino, serif;
+}
+
+a {
+ text-decoration: none;
+ color: rgb( 81, 169, 207 );
+}
+
+a:visited {
+ text-decoration: none;
+ color: rgb( 18, 109, 149 );
+}
+
+footer {
+ font-size: 0.75em;
+}
+
css/normalize.css
+/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
+
+/* Document
+ ========================================================================== */
+
+/**
+ * 1. Correct the line height in all browsers.
+ * 2. Prevent adjustments of font size after orientation changes in iOS.
+ */
+
+html {
+ line-height: 1.15; /* 1 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/* Sections
+ ========================================================================== */
+
+/**
+ * Remove the margin in all browsers.
+ */
+
+body {
+ margin: 0;
+}
+
+/**
+ * Render the `main` element consistently in IE.
+ */
+
+main {
+ display: block;
+}
+
+/**
+ * Correct the font size and margin on `h1` elements within `section` and
+ * `article` contexts in Chrome, Firefox, and Safari.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+/* Grouping content
+ ========================================================================== */
+
+/**
+ * 1. Add the correct box sizing in Firefox.
+ * 2. Show the overflow in Edge and IE.
+ */
+
+hr {
+ box-sizing: content-box; /* 1 */
+ height: 0; /* 1 */
+ overflow: visible; /* 2 */
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+pre {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+
+/* Text-level semantics
+ ========================================================================== */
+
+/**
+ * Remove the gray background on active links in IE 10.
+ */
+
+a {
+ background-color: transparent;
+}
+
+/**
+ * 1. Remove the bottom border in Chrome 57-
+ * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+ */
+abbr[title] {
+ border-bottom: none; /* 1 */
+ text-decoration: underline; /* 2 */
+ /* @alternate */
+ text-decoration: underline dotted; /* 2 */
+}
+
+/**
+ * Add the correct font weight in Chrome, Edge, and Safari.
+ */
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+code,
+kbd,
+samp {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+
+/**
+ * Add the correct font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` elements from affecting the line height in
+ * all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+/* Embedded content
+ ========================================================================== */
+
+/**
+ * Remove the border on images inside links in IE 10.
+ */
+
+img {
+ border-style: none;
+}
+
+/* Forms
+ ========================================================================== */
+
+/**
+ * 1. Change the font styles in all browsers.
+ * 2. Remove the margin in Firefox and Safari.
+ */
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-family: inherit; /* 1 */
+ font-size: 100%; /* 1 */
+ line-height: 1.15; /* 1 */
+ margin: 0; /* 2 */
+}
+
+/**
+ * Show the overflow in IE.
+ * 1. Show the overflow in Edge.
+ */
+
+button,
+input { /* 1 */
+ overflow: visible;
+}
+
+/**
+ * Remove the inheritance of text transform in Edge, Firefox, and IE.
+ * 1. Remove the inheritance of text transform in Firefox.
+ */
+
+button,
+select { /* 1 */
+ text-transform: none;
+}
+
+/**
+ * Correct the inability to style clickable types in iOS and Safari.
+ */
+
+button,
+[type="button"],
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button;
+}
+
+/**
+ * Remove the inner border and padding in Firefox.
+ */
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+ border-style: none;
+ padding: 0;
+}
+
+/**
+ * Restore the focus styles unset by the previous rule.
+ */
+
+button:-moz-focusring,
+[type="button"]:-moz-focusring,
+[type="reset"]:-moz-focusring,
+[type="submit"]:-moz-focusring {
+ outline: 1px dotted ButtonText;
+}
+
+/**
+ * Correct the padding in Firefox.
+ */
+
+fieldset {
+ padding: 0.35em 0.75em 0.625em;
+}
+
+/**
+ * 1. Correct the text wrapping in Edge and IE.
+ * 2. Correct the color inheritance from `fieldset` elements in IE.
+ * 3. Remove the padding so developers are not caught out when they zero out
+ * `fieldset` elements in all browsers.
+ */
+
+legend {
+ box-sizing: border-box; /* 1 */
+ color: inherit; /* 2 */
+ display: table; /* 1 */
+ max-width: 100%; /* 1 */
+ padding: 0; /* 3 */
+ white-space: normal; /* 1 */
+}
+
+/**
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ */
+
+progress {
+ vertical-align: baseline;
+}
+
+/**
+ * Remove the default vertical scrollbar in IE 10+.
+ */
+
+textarea {
+ overflow: auto;
+}
+
+/**
+ * 1. Add the correct box sizing in IE 10.
+ * 2. Remove the padding in IE 10.
+ */
+
+[type="checkbox"],
+[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Correct the cursor style of increment and decrement buttons in Chrome.
+ */
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/**
+ * 1. Correct the odd appearance in Chrome and Safari.
+ * 2. Correct the outline style in Safari.
+ */
+
+[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ outline-offset: -2px; /* 2 */
+}
+
+/**
+ * Remove the inner padding in Chrome and Safari on macOS.
+ */
+
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * 1. Correct the inability to style clickable types in iOS and Safari.
+ * 2. Change font properties to `inherit` in Safari.
+ */
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button; /* 1 */
+ font: inherit; /* 2 */
+}
+
+/* Interactive
+ ========================================================================== */
+
+/*
+ * Add the correct display in Edge, IE 10+, and Firefox.
+ */
+
+details {
+ display: block;
+}
+
+/*
+ * Add the correct display in all browsers.
+ */
+
+summary {
+ display: list-item;
+}
+
+/* Misc
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 10+.
+ */
+
+template {
+ display: none;
+}
+
+/**
+ * Add the correct display in IE 10.
+ */
+
+[hidden] {
+ display: none;
+}
images/logo.svg
-
+<svg height="20" viewBox="0 0 24 20" width="24" xmlns="http://www.w3.org/2000/svg"><path d="m22 1.2c0-.663-.537-1.2-1.2-1.2h-17.6c-.663 0-1.2.537-1.2 1.2v11.8h20zm-2 9.8h-16v-9h16zm2 3h-20c-.197.372-2 4.582-2 4.998 0 .522.418 1.002 1.002 1.002h21.996c.584 0 1.002-.48 1.002-1.002 0-.416-1.803-4.626-2-4.998zm-12.229 5 .467-1h3.523l.467 1z" fill="#126d95"/></svg>
index.html
+<!DOCTYPE html><html lang="en"><head><title>White Magic Software, Ltd.</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description" content="White Magic Software, Ltd."><meta name="author" content="White Magic Software, Ltd."><style type="text/css">article{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%}div.homepage{display:flex;flex-direction:row;align-items:center;justify-content:center}div.homepage img[alt="logo"]{height:120px}div.homepage div.content{display:flex;flex-direction:column}div.homepage h1,div.homepage h2{margin:0}div.homepage a{display:flex;justify-content:center}html{height:100%}body{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;font-family:Helvetica,sans-serif;color:#041c26}header,footer{flex-shrink:0}main{display:flex;flex-grow:1;flex-direction:column;justify-content:center;align-items:stretch}h1,h2,h3{font-family:Palatino,serif}a{text-decoration:none;color:#51a9cf}a:visited{text-decoration:none;color:#126d95}footer{font-size:.75em}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type="button"]::-moz-focus-inner{border-style:none;padding:0}[type="reset"]::-moz-focus-inner{border-style:none;padding:0}[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button{height:auto}[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template,[hidden]{display:none} </style><link rel="icon" type="image/png" sizes="16x16" href="images/favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="images/favicon-32x32.png"><link rel="apple-touch-icon" sizes="180x180" href="images/apple-touch-icon.png"><link rel="manifest" href="images/site.webmanifest"><meta name="msapplication-TileColor" content="#da532c"><meta name="theme-color" content="#ffffff"></head><body><main><article><div class="homepage"><p><img src="images/logo.svg" alt="logo"><br></p><div class="content"><h1>White Magic Software</h1><h2>Robust. Elegant. Maintainable.</h2><p><a href="mailto:Dave.Jarvis@gmail.com">Contact</a></p></div></div></article></main><footer><p>© Copyright 2019 by White Magic Software, Ltd.</p></footer></body></html>
index.md
+::: homepage
+![logo](images/logo.svg) \
+
+::: content
+# White Magic Software
+## Robust. Elegant. Maintainable.
+
+[Contact](mailto:Dave.Jarvis@gmail.com)
+:::
+
+:::
+
template/includes/css/main.min.css
-
+article{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%}div.homepage{display:flex;flex-direction:row;align-items:center;justify-content:center}div.homepage img[alt="logo"]{height:120px}div.homepage div.content{display:flex;flex-direction:column}div.homepage h1,div.homepage h2{margin:0}div.homepage a{display:flex;justify-content:center}html{height:100%}body{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;font-family:Helvetica,sans-serif;color:#041c26}header,footer{flex-shrink:0}main{display:flex;flex-grow:1;flex-direction:column;justify-content:center;align-items:stretch}h1,h2,h3{font-family:Palatino,serif}a{text-decoration:none;color:#51a9cf}a:visited{text-decoration:none;color:#126d95}footer{font-size:.75em}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type="button"]::-moz-focus-inner{border-style:none;padding:0}[type="reset"]::-moz-focus-inner{border-style:none;padding:0}[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button{height:auto}[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template,[hidden]{display:none}
template/includes/html/body.html
+<div class="homepage">
+<p><img src="images/logo.svg" alt="logo" /><br />
+</p>
+<div class="content">
+<h1>White Magic Software</h1>
+<h2>Robust. Elegant. Maintainable.</h2>
+<p><a href="mailto:Dave.Jarvis@gmail.com">Contact</a></p>
+</div>
+</div>
template/includes/html/icon.html
+<link rel="icon" type="image/png" sizes="16x16" href="images/favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="images/favicon-32x32.png">
+<link rel="apple-touch-icon" sizes="180x180" href="images/apple-touch-icon.png"/>
+<link rel="manifest" href="images/site.webmanifest"/>
+<meta name="msapplication-TileColor" content="#da532c"/>
+<meta name="theme-color" content="#ffffff"/>
template/index.html
+<#assign updated = .now>
+<#assign owner = "White Magic Software, Ltd.">
+<!doctype html>
+<html lang="en">
+<head>
+ <title>${owner}</title>
+
+ <meta charset="utf-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
+ <meta name="description" content="${owner}"/>
+ <meta name="author" content="${owner}"/>
+
+ <style type="text/css">
+ <#include "includes/css/main.min.css">
+ </style>
+
+ <#include "includes/html/icon.html">
+</head>
+<body>
+ <main>
+ <article>
+ <#include "includes/html/body.html">
+ </article>
+ </main>
+ <footer>
+ <p>&copy; Copyright ${updated?string.yyyy} by ${owner}</p>
+ </footer>
+</body>
+</html>
+

First draft

Author Dave Jarvis <email>
Date 2019-03-14 14:31:53 GMT-0700
Commit 1673d4f806b5120daa7426b4905b624397206c51
Delta 525 lines added, 2 lines removed, 523-line increase