From aa754b1834a2cee1227c6d8076c8e8b38b95e7c1 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 14 Jun 2019 00:33:48 -0400 Subject: [PATCH 01/24] chore: update browser-sync; add gulp-embed-svg --- package-lock.json | 237 +++++++++++++++++++++++++++++++++++++++++----- package.json | 3 +- 2 files changed, 217 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 61db9751..6f80a280 100644 --- a/package-lock.json +++ b/package-lock.json @@ -93,13 +93,13 @@ "dev": true }, "accepts": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.6.tgz", - "integrity": "sha512-QsaoUD2dpVpjENy8JFpQnXP9vyzoZPmAoKrE3S6HtSB7qzSebkJNnmdY4p004FQUSSiHXPueENpoeuUW/7a8Ig==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, "requires": { "mime-types": "~2.1.24", - "negotiator": "0.6.1" + "negotiator": "0.6.2" } }, "acorn": { @@ -411,6 +411,24 @@ "postcss-value-parser": "^3.3.1" } }, + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "dev": true, + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "dev": true + } + } + }, "bach": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", @@ -580,12 +598,12 @@ } }, "browser-sync": { - "version": "2.26.5", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.5.tgz", - "integrity": "sha512-zVa6MmadAFgl5Uk53Yy5cw5tGTO7xSGAWK3Yx70GJ1t5jK+r6B4q3xq+1XbYfLt1SbeFg7WoNWneNhMT4B9jFw==", + "version": "2.26.7", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.7.tgz", + "integrity": "sha512-lY3emme0OyvA2ujEMpRmyRy9LY6gHLuTr2/ABxhIm3lADOiRXzP4dgekvnDrQqZ/Ec2Fz19lEjm6kglSG5766w==", "dev": true, "requires": { - "browser-sync-client": "^2.26.4", + "browser-sync-client": "^2.26.6", "browser-sync-ui": "^2.26.4", "bs-recipes": "1.3.4", "bs-snippet-injector": "^2.0.1", @@ -600,6 +618,7 @@ "fs-extra": "3.0.1", "http-proxy": "1.15.2", "immutable": "^3", + "localtunnel": "1.9.2", "micromatch": "^3.1.10", "opn": "5.3.0", "portscanner": "2.1.1", @@ -616,11 +635,6 @@ "yargs": "6.4.0" }, "dependencies": { - "localtunnel": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.9.2.tgz", - "integrity": "sha512-NEKF7bDJE9U3xzJu3kbayF0WTvng6Pww7tzqNb/XtEARYwqw7CKEX7BvOMg98FtE9es2CRizl61gkV3hS8dqYg==" - }, "yargs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", @@ -655,9 +669,9 @@ } }, "browser-sync-client": { - "version": "2.26.4", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.4.tgz", - "integrity": "sha512-mQiDp5/tf79VezDS5j/EExU4Ze6f5DQYuL0Z7VdJgBbNLTHDfkYGi2R620qc6HkY9XZA0m4/UwihT7J42RBIJA==", + "version": "2.26.6", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.6.tgz", + "integrity": "sha512-mGrkZdNzttKdf/16I+y+2dTQxoMCIpKbVIMJ/uP8ZpnKu9f9qa/2CYVtLtbjZG8nsM14EwiCrjuFTGBEnT3Gjw==", "dev": true, "requires": { "etag": "1.8.1", @@ -820,6 +834,44 @@ } } }, + "cheerio": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "dev": true, + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.1", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + }, + "dependencies": { + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + } + } + }, "chokidar": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", @@ -1608,6 +1660,15 @@ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, "domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", @@ -2175,6 +2236,26 @@ "readable-stream": "^2.3.6" } }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -2990,6 +3071,17 @@ } } }, + "gulp-embed-svg": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/gulp-embed-svg/-/gulp-embed-svg-1.1.4.tgz", + "integrity": "sha512-kXck6nTod75r6pYqasRusfxUSFZTvu3tVvDy5GZlKytwfB4zSNS8kmze3fGJtpk3pNivXYMAkjHFi1fSEgmO7g==", + "dev": true, + "requires": { + "cheerio": "^1.0.0-rc.2", + "plugin-error": "^1.0.1", + "through2": "^2.0.3" + } + }, "gulp-plumber": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/gulp-plumber/-/gulp-plumber-1.2.1.tgz", @@ -3258,6 +3350,33 @@ "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", "dev": true }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -3836,6 +3955,65 @@ "strip-bom": "^2.0.0" } }, + "localtunnel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.9.2.tgz", + "integrity": "sha512-NEKF7bDJE9U3xzJu3kbayF0WTvng6Pww7tzqNb/XtEARYwqw7CKEX7BvOMg98FtE9es2CRizl61gkV3hS8dqYg==", + "dev": true, + "requires": { + "axios": "0.19.0", + "debug": "4.1.1", + "openurl": "1.1.1", + "yargs": "6.6.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + } + } + } + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -4166,9 +4344,9 @@ } }, "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true }, "next-tick": { @@ -4421,6 +4599,12 @@ "wrappy": "1" } }, + "openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", + "dev": true + }, "opn": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", @@ -4528,6 +4712,15 @@ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "dev": true }, + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "parseqs": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", @@ -5754,9 +5947,9 @@ "dev": true }, "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true }, "raw-body": { diff --git a/package.json b/package.json index 52da9628..b3b163e4 100644 --- a/package.json +++ b/package.json @@ -17,11 +17,12 @@ }, "homepage": "https://github.com/miklb/jekyll-indieweb#readme", "devDependencies": { - "browser-sync": "^2.26.5", + "browser-sync": "^2.26.7", "css-declaration-sorter": "^4.0.1", "cssnano": "^4.1.10", "del": "^4.1.1", "gulp": "^4.0.1", + "gulp-embed-svg": "^1.1.4", "gulp-plumber": "^1.2.1", "gulp-postcss": "^8.0.0", "gulp-rename": "^1.4.0", From f46baaec91eef7abbb5aa90df0d44902cd9e7b0a Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 14 Jun 2019 00:51:12 -0400 Subject: [PATCH 02/24] chore: add embedSVG to svg task --- gulpfile.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gulpfile.js b/gulpfile.js index 837c5f54..2aecf8ec 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -8,6 +8,7 @@ const cssnano = require("cssnano"); const gulp = require("gulp"); const sourcemaps = require("gulp-sourcemaps"); const del = require("del"); +const embedSvg = require('gulp-embed-svg'); const plumber = require("gulp-plumber"); const postcss = require("gulp-postcss"); const rename = require("gulp-rename"); @@ -41,6 +42,14 @@ function clean() { return del(["./_site/assets/"]); } +// SVG +function svg() { + return gulp + .src('*.html') + .pipe(embedSvg()) + .pipe(gulp.dest('_site')) +} + // CSS task @@ -100,6 +109,7 @@ const watch = gulp.parallel(watchFiles, browserSync); exports.css = css; exports.jekyll = jekyll; exports.clean = clean; +exports.svg = svg; exports.build = build; exports.watch = watch; exports.default = build; \ No newline at end of file From 9d794e7794a7164c1c5f2f742efcc45c2db971a2 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 14 Jun 2019 01:51:41 -0400 Subject: [PATCH 03/24] chore: embedSVG needs to run before Jekyll on templates --- gulpfile.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 2aecf8ec..5fdf1bfd 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -43,11 +43,11 @@ function clean() { } // SVG -function svg() { +function embedSvgs() { return gulp .src('*.html') .pipe(embedSvg()) - .pipe(gulp.dest('_site')) + .pipe(gulp.dest('.')) } @@ -96,12 +96,12 @@ function watchFiles() { "./_posts/**/*" ], - gulp.series(jekyll, css, browserSyncReload) + gulp.series(embedSvgs, jekyll, css, browserSyncReload) ); } // define complex tasks -const build = gulp.series(clean, jekyll, css); +const build = gulp.series(clean, embedSvgs, jekyll, css); const watch = gulp.parallel(watchFiles, browserSync); // export tasks @@ -109,7 +109,7 @@ const watch = gulp.parallel(watchFiles, browserSync); exports.css = css; exports.jekyll = jekyll; exports.clean = clean; -exports.svg = svg; +exports.embedSvgs = embedSvgs; exports.build = build; exports.watch = watch; exports.default = build; \ No newline at end of file From c24e260050db9146260da8018d3ab11b85038743 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 14 Jun 2019 01:52:30 -0400 Subject: [PATCH 04/24] refact: use embedSVG instead of including templates --- _includes/hcard.html | 61 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 11 deletions(-) diff --git a/_includes/hcard.html b/_includes/hcard.html index e313ed0b..bbac79c6 100644 --- a/_includes/hcard.html +++ b/_includes/hcard.html @@ -10,34 +10,73 @@

Welcome to the website of {{ site.author

{{ site.bio }}

    {% if site.twitter_username %} - {% include icon-twitter.html %} +
  • + +
  • {% endif %} {% if site.github_username %} - {% include icon-github.html %} +
  • + + + +
  • {% endif %} {% if site.instagram_username %} - {% include icon-instagram.html %} +
  • + + + +
  • {% endif %} {% if site.facebook_url %} - {% include icon-facebook.html %} +
  • + +
  • {% endif %} {% if site.linkedin_url %} - {% include icon-linkedin.html %} +
  • + + + +
  • {% endif %} {% if site.tumblr_url %} - {% include icon-tumblr.html %} +
  • + + + +
  • {% endif %} {% if site.flickr_username %} - {% include icon-flickr.html %} +
  • + + + +
  • {% endif %} {% if site.foursquare_username %} - {% include icon-foursquare.html %} +
  • + + + +
  • {% endif %} {% if site.email %} - {% include icon-email.html %} +
  • + +
  • {% endif %} -
  • - +
  • + + + +
From 1b267837efa10b99a630b1a30bc8a81932ab23dc Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 14 Jun 2019 01:53:08 -0400 Subject: [PATCH 05/24] refact: use svg icons --- assets/images/icons/facebook.svg | 1 + assets/images/icons/flickr.svg | 1 + assets/images/icons/foursquare.svg | 1 + assets/images/icons/github.svg | 1 + assets/images/icons/instagram.svg | 1 + assets/images/icons/linkedin.svg | 1 + assets/images/icons/mail.svg | 1 + assets/images/icons/rss.svg | 1 + assets/images/icons/tumblr.svg | 1 + assets/images/icons/twitter.svg | 1 + 10 files changed, 10 insertions(+) create mode 100755 assets/images/icons/facebook.svg create mode 100755 assets/images/icons/flickr.svg create mode 100755 assets/images/icons/foursquare.svg create mode 100755 assets/images/icons/github.svg create mode 100755 assets/images/icons/instagram.svg create mode 100755 assets/images/icons/linkedin.svg create mode 100644 assets/images/icons/mail.svg create mode 100644 assets/images/icons/rss.svg create mode 100755 assets/images/icons/tumblr.svg create mode 100755 assets/images/icons/twitter.svg diff --git a/assets/images/icons/facebook.svg b/assets/images/icons/facebook.svg new file mode 100755 index 00000000..d775b289 --- /dev/null +++ b/assets/images/icons/facebook.svg @@ -0,0 +1 @@ +Facebook icon \ No newline at end of file diff --git a/assets/images/icons/flickr.svg b/assets/images/icons/flickr.svg new file mode 100755 index 00000000..9ff16905 --- /dev/null +++ b/assets/images/icons/flickr.svg @@ -0,0 +1 @@ +Flickr icon \ No newline at end of file diff --git a/assets/images/icons/foursquare.svg b/assets/images/icons/foursquare.svg new file mode 100755 index 00000000..40f52ba2 --- /dev/null +++ b/assets/images/icons/foursquare.svg @@ -0,0 +1 @@ +Foursquare icon \ No newline at end of file diff --git a/assets/images/icons/github.svg b/assets/images/icons/github.svg new file mode 100755 index 00000000..38997125 --- /dev/null +++ b/assets/images/icons/github.svg @@ -0,0 +1 @@ +GitHub icon \ No newline at end of file diff --git a/assets/images/icons/instagram.svg b/assets/images/icons/instagram.svg new file mode 100755 index 00000000..e0b8ffd7 --- /dev/null +++ b/assets/images/icons/instagram.svg @@ -0,0 +1 @@ +Instagram icon \ No newline at end of file diff --git a/assets/images/icons/linkedin.svg b/assets/images/icons/linkedin.svg new file mode 100755 index 00000000..3dc9f68a --- /dev/null +++ b/assets/images/icons/linkedin.svg @@ -0,0 +1 @@ +LinkedIn icon \ No newline at end of file diff --git a/assets/images/icons/mail.svg b/assets/images/icons/mail.svg new file mode 100644 index 00000000..9fca68be --- /dev/null +++ b/assets/images/icons/mail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/icons/rss.svg b/assets/images/icons/rss.svg new file mode 100644 index 00000000..3b2705d2 --- /dev/null +++ b/assets/images/icons/rss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/icons/tumblr.svg b/assets/images/icons/tumblr.svg new file mode 100755 index 00000000..46811dde --- /dev/null +++ b/assets/images/icons/tumblr.svg @@ -0,0 +1 @@ +Tumblr icon \ No newline at end of file diff --git a/assets/images/icons/twitter.svg b/assets/images/icons/twitter.svg new file mode 100755 index 00000000..af5b7c34 --- /dev/null +++ b/assets/images/icons/twitter.svg @@ -0,0 +1 @@ +Twitter icon \ No newline at end of file From 0a7f78136ed4e566dd743ff1e523bbf0dfb350bd Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 14 Jun 2019 13:12:00 -0400 Subject: [PATCH 06/24] chore: fix paths in embedsvg --- gulpfile.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 5fdf1bfd..d10ccb64 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -45,9 +45,11 @@ function clean() { // SVG function embedSvgs() { return gulp - .src('*.html') - .pipe(embedSvg()) - .pipe(gulp.dest('.')) + .src('_includes/hcard.html') + .pipe(embedSvg({ + root: './assets/images/icons' + })) + .pipe(gulp.dest('_includes/.')) } From 40e7b5bd849f0e84934307e35a698df6dec8d864 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 14 Jun 2019 13:12:54 -0400 Subject: [PATCH 07/24] fix: use correct path for svg icon related to path set in config --- _includes/hcard.html | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/_includes/hcard.html b/_includes/hcard.html index bbac79c6..e081cf4e 100644 --- a/_includes/hcard.html +++ b/_includes/hcard.html @@ -12,69 +12,69 @@

Welcome to the website of {{ site.author {% if site.twitter_username %}
  • {% endif %} {% if site.github_username %}
  • - + GitHub icon
  • {% endif %} {% if site.instagram_username %}
  • - + Instagram icon
  • {% endif %} {% if site.facebook_url %}
  • {% endif %} {% if site.linkedin_url %}
  • - + LinkedIn icon
  • {% endif %} {% if site.tumblr_url %}
  • - + Tumblr icon
  • {% endif %} {% if site.flickr_username %}
  • - + Flickr icon
  • {% endif %} {% if site.foursquare_username %}
  • - + Foursquare icon
  • {% endif %} {% if site.email %}
  • {% endif %}
  • - - + +
  • From c85f880285a17ea52783debd6fd749d6c414382f Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 14 Jun 2019 13:13:11 -0400 Subject: [PATCH 08/24] chore: removed unused include files and svgs --- _includes/icon-email.html | 5 ----- _includes/icon-flickr.html | 5 ----- _includes/icon-foursquare.html | 5 ----- _includes/icon-github.html | 5 ----- _includes/icon-github.svg | 1 - _includes/icon-instagram.html | 5 ----- _includes/icon-linkedin.html | 5 ----- _includes/icon-tumblr.html | 5 ----- _includes/icon-twitter.html | 5 ----- _includes/icon-twitter.svg | 1 - 10 files changed, 42 deletions(-) delete mode 100644 _includes/icon-email.html delete mode 100644 _includes/icon-flickr.html delete mode 100644 _includes/icon-foursquare.html delete mode 100644 _includes/icon-github.html delete mode 100644 _includes/icon-github.svg delete mode 100644 _includes/icon-instagram.html delete mode 100644 _includes/icon-linkedin.html delete mode 100644 _includes/icon-tumblr.html delete mode 100644 _includes/icon-twitter.html delete mode 100644 _includes/icon-twitter.svg diff --git a/_includes/icon-email.html b/_includes/icon-email.html deleted file mode 100644 index 7ea6e7c4..00000000 --- a/_includes/icon-email.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - -
  • diff --git a/_includes/icon-flickr.html b/_includes/icon-flickr.html deleted file mode 100644 index 288b1179..00000000 --- a/_includes/icon-flickr.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - - - -
  • diff --git a/_includes/icon-foursquare.html b/_includes/icon-foursquare.html deleted file mode 100644 index c45075c3..00000000 --- a/_includes/icon-foursquare.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - - - -
  • diff --git a/_includes/icon-github.html b/_includes/icon-github.html deleted file mode 100644 index b206d019..00000000 --- a/_includes/icon-github.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - - - -
  • diff --git a/_includes/icon-github.svg b/_includes/icon-github.svg deleted file mode 100644 index 4422c4f5..00000000 --- a/_includes/icon-github.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_includes/icon-instagram.html b/_includes/icon-instagram.html deleted file mode 100644 index a7e6f143..00000000 --- a/_includes/icon-instagram.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - - - -
  • diff --git a/_includes/icon-linkedin.html b/_includes/icon-linkedin.html deleted file mode 100644 index 0135cfb3..00000000 --- a/_includes/icon-linkedin.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - - - -
  • diff --git a/_includes/icon-tumblr.html b/_includes/icon-tumblr.html deleted file mode 100644 index 7d9f0d60..00000000 --- a/_includes/icon-tumblr.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - - - -
  • diff --git a/_includes/icon-twitter.html b/_includes/icon-twitter.html deleted file mode 100644 index 809e1a20..00000000 --- a/_includes/icon-twitter.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - -
  • diff --git a/_includes/icon-twitter.svg b/_includes/icon-twitter.svg deleted file mode 100644 index dcf660e7..00000000 --- a/_includes/icon-twitter.svg +++ /dev/null @@ -1 +0,0 @@ - From 321f85985177c77e8e062a7f8ef6c791bff6fd53 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 14 Jun 2019 20:03:29 -0400 Subject: [PATCH 09/24] chore: cleanup stray old include --- _includes/icon-facebook.html | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 _includes/icon-facebook.html diff --git a/_includes/icon-facebook.html b/_includes/icon-facebook.html deleted file mode 100644 index bd6d20fa..00000000 --- a/_includes/icon-facebook.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - -
  • From 4ffa6a74bf2821961c2cb4a1793ca6788439af1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=A7=89=20infominer?= Date: Sat, 22 Jun 2019 21:05:13 -0400 Subject: [PATCH 10/24] prepend base-url However, I'm not sure how to use external links there... Right now I'm looking at this, from the [masthead of minimal mistakes](https://github.com/mmistakes/minimal-mistakes/blob/master/_includes/masthead.html): ``` {%- for link in site.data.navigation.main -%} {%- if link.url contains '://' -%} {%- assign url = link.url -%} {%- else -%} {%- assign url = link.url | relative_url -%} {%- endif -%} ``` I can see how it might work applied to this theme, and will try to do something about it (no promises tho :) --- _layouts/default.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_layouts/default.html b/_layouts/default.html index ab8f321a..4a41b50e 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -36,7 +36,7 @@

    {{ site.title }}

    {% if page.url == item.url %} {% else %} - + {% endif %} {% endfor %} From 2f14649873c2850d0d19ed40203bd22e22ee650d Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Mon, 24 Jun 2019 22:35:39 -0400 Subject: [PATCH 11/24] temp file for builds --- _includes/hcard_base.html | 85 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 _includes/hcard_base.html diff --git a/_includes/hcard_base.html b/_includes/hcard_base.html new file mode 100644 index 00000000..777daf85 --- /dev/null +++ b/_includes/hcard_base.html @@ -0,0 +1,85 @@ +
    +
    +
    +
    +
    + {{site.author}} +
    +
    +

    Welcome to the website of {{ site.author }}

    +

    {{ site.bio }}

    +
      + {% if site.twitter_username %} +
    • + +
    • + {% endif %} + {% if site.github_username %} +
    • + + + +
    • + {% endif %} + {% if site.instagram_username %} +
    • + + + +
    • + {% endif %} + {% if site.facebook_url %} +
    • + +
    • + {% endif %} + {% if site.linkedin_url %} +
    • + + + +
    • + {% endif %} + {% if site.tumblr_url %} +
    • + + + +
    • + {% endif %} + {% if site.flickr_username %} +
    • + + + +
    • + {% endif %} + {% if site.foursquare_username %} +
    • + + + +
    • + {% endif %} + {% if site.email %} +
    • + +
    • + {% endif %} +
    • + + + +
    • +
    +
    +
    +
    +
    +
    From c5b26460bca5493b856a6e1af0a7ffce1a915c67 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 28 Jun 2019 23:49:16 -0400 Subject: [PATCH 12/24] chore: bump ruby version --- .ruby-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ruby-version b/.ruby-version index 6a6a3d8e..ec1cf33c 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.6.1 +2.6.3 From 38f734a2f48c785b7377f2ef3fdc3c6c59749014 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Thu, 4 Jul 2019 21:54:37 -0400 Subject: [PATCH 13/24] chore: remove old svg includes --- _includes/icon-email.html | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 _includes/icon-email.html diff --git a/_includes/icon-email.html b/_includes/icon-email.html deleted file mode 100644 index 7ea6e7c4..00000000 --- a/_includes/icon-email.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - -
  • From 1fb45ec416cd2db88a552eaf4c7b220b9e519a9d Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Thu, 4 Jul 2019 21:59:14 -0400 Subject: [PATCH 14/24] chore: remove old svg includes --- _includes/icon-facebook.html | 5 ----- _includes/icon-flickr.html | 5 ----- _includes/icon-foursquare.html | 5 ----- _includes/icon-github.html | 5 ----- _includes/icon-github.svg | 1 - _includes/icon-instagram.html | 5 ----- _includes/icon-linkedin.html | 5 ----- _includes/icon-tumblr.html | 5 ----- _includes/icon-twitter.html | 5 ----- _includes/icon-twitter.svg | 1 - 10 files changed, 42 deletions(-) delete mode 100644 _includes/icon-facebook.html delete mode 100644 _includes/icon-flickr.html delete mode 100644 _includes/icon-foursquare.html delete mode 100644 _includes/icon-github.html delete mode 100644 _includes/icon-github.svg delete mode 100644 _includes/icon-instagram.html delete mode 100644 _includes/icon-linkedin.html delete mode 100644 _includes/icon-tumblr.html delete mode 100644 _includes/icon-twitter.html delete mode 100644 _includes/icon-twitter.svg diff --git a/_includes/icon-facebook.html b/_includes/icon-facebook.html deleted file mode 100644 index bd6d20fa..00000000 --- a/_includes/icon-facebook.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - -
  • diff --git a/_includes/icon-flickr.html b/_includes/icon-flickr.html deleted file mode 100644 index 288b1179..00000000 --- a/_includes/icon-flickr.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - - - -
  • diff --git a/_includes/icon-foursquare.html b/_includes/icon-foursquare.html deleted file mode 100644 index c45075c3..00000000 --- a/_includes/icon-foursquare.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - - - -
  • diff --git a/_includes/icon-github.html b/_includes/icon-github.html deleted file mode 100644 index b206d019..00000000 --- a/_includes/icon-github.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - - - -
  • diff --git a/_includes/icon-github.svg b/_includes/icon-github.svg deleted file mode 100644 index 4422c4f5..00000000 --- a/_includes/icon-github.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_includes/icon-instagram.html b/_includes/icon-instagram.html deleted file mode 100644 index a7e6f143..00000000 --- a/_includes/icon-instagram.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - - - -
  • diff --git a/_includes/icon-linkedin.html b/_includes/icon-linkedin.html deleted file mode 100644 index 0135cfb3..00000000 --- a/_includes/icon-linkedin.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - - - -
  • diff --git a/_includes/icon-tumblr.html b/_includes/icon-tumblr.html deleted file mode 100644 index 7d9f0d60..00000000 --- a/_includes/icon-tumblr.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - - - -
  • diff --git a/_includes/icon-twitter.html b/_includes/icon-twitter.html deleted file mode 100644 index 809e1a20..00000000 --- a/_includes/icon-twitter.html +++ /dev/null @@ -1,5 +0,0 @@ -
  • - -
  • diff --git a/_includes/icon-twitter.svg b/_includes/icon-twitter.svg deleted file mode 100644 index dcf660e7..00000000 --- a/_includes/icon-twitter.svg +++ /dev/null @@ -1 +0,0 @@ - From a7f31dc41c601238f2766057de7a95546d68aa14 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Thu, 4 Jul 2019 21:59:33 -0400 Subject: [PATCH 15/24] fix: use an include for head element --- _includes/head.html | 16 ++++++++++++++++ _layouts/default.html | 18 ++---------------- 2 files changed, 18 insertions(+), 16 deletions(-) create mode 100644 _includes/head.html diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 00000000..20bc5353 --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,16 @@ + + + + {% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %} + + + + + {% if site.webmentions %} + + {% endif %} + {% seo %} + + \ No newline at end of file diff --git a/_layouts/default.html b/_layouts/default.html index 4a41b50e..3b87f8c6 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -1,22 +1,8 @@ - - - - {% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %} - - - - - {% if site.webmentions %} - - {% endif %} - {% seo %} - - +{% include head.html %} + Date: Thu, 4 Jul 2019 22:01:29 -0400 Subject: [PATCH 16/24] fix: use include for header/nav --- _layouts/default.html | 18 +----------------- _layouts/header.html | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 17 deletions(-) create mode 100644 _layouts/header.html diff --git a/_layouts/default.html b/_layouts/default.html index 3b87f8c6..b70f9bf8 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -11,23 +11,7 @@ {% endif %} >
    -
    -
    -

    {{ site.title }}

    -

    {{ site.description }}

    -
    - -
    + {% include header.html %} {% if page.url == '/' %} {% include hcard.html %} {% endif %} diff --git a/_layouts/header.html b/_layouts/header.html new file mode 100644 index 00000000..28c4a31c --- /dev/null +++ b/_layouts/header.html @@ -0,0 +1,17 @@ +
    +
    + +

    {{ site.title }}

    +
    + +
    \ No newline at end of file From 2ee32f17033cdd936f074143d22cf489b230ff95 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Thu, 4 Jul 2019 22:06:19 -0400 Subject: [PATCH 17/24] fix: update header style for better responsiveness --- assets/css/_inc/header.css | 58 ++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/assets/css/_inc/header.css b/assets/css/_inc/header.css index b6b52070..8faa098e 100644 --- a/assets/css/_inc/header.css +++ b/assets/css/_inc/header.css @@ -3,43 +3,47 @@ */ .mainheader { - display: grid; - grid-template-columns: 2fr 2fr; + display: flex; + flex-direction: column; + align-items: center; + background-color: var(--very-dark-gray); + color: #fff; } -.site-branding { - justify-self: start; - margin: 2rem; +.mainheader h1 { + font-size: 1.3rem; } -.mainnav { - margin-top: 2rem; +.site-branding { + display: flex; + justify-content: space-around; } -.mainnav ul { - display: inline; -/* align-items: baseline; */ - list-style-type: none; +.site-branding img { + height: 3em; + width: 3em; + margin-right: 1em; } -.navbar-item { - margin-right: 1.5rem; - font-size: 1.6rem; - font-family: serif; + +.mainnav { + width: auto; + display: flex; + flex-direction: row; + align-items: center; } -.navbar-item a { - color: var(--dark); +.mainnav a { + padding: .5em; } -@media (min-width: 550px) { - .mainnav ul { - display: flex; - /* align-items: baseline; */ - list-style-type: none; - flex-flow: row wrap; - /* This aligns items to the end line on main-axis */ - justify-content: flex-end; - margin: 0; - } +@media (min-width: 900px) { + .mainheader { + flex-direction: row; + justify-content: space-around; + } + + .mainnav a { + padding: .5em .8em; + } } From 63888c901a579a70ed9de13e23d1a5445071335b Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 5 Jul 2019 19:57:23 -0400 Subject: [PATCH 18/24] Revert "fix: use correct path for svg icon related to path set in config" This reverts commit 40e7b5bd849f0e84934307e35a698df6dec8d864. --- _includes/hcard.html | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/_includes/hcard.html b/_includes/hcard.html index e081cf4e..bbac79c6 100644 --- a/_includes/hcard.html +++ b/_includes/hcard.html @@ -12,69 +12,69 @@

    Welcome to the website of {{ site.author {% if site.twitter_username %}
  • {% endif %} {% if site.github_username %}
  • - GitHub icon +
  • {% endif %} {% if site.instagram_username %}
  • - Instagram icon +
  • {% endif %} {% if site.facebook_url %}
  • {% endif %} {% if site.linkedin_url %}
  • - LinkedIn icon +
  • {% endif %} {% if site.tumblr_url %}
  • - Tumblr icon +
  • {% endif %} {% if site.flickr_username %}
  • - Flickr icon +
  • {% endif %} {% if site.foursquare_username %}
  • - Foursquare icon +
  • {% endif %} {% if site.email %}
  • {% endif %}
  • - - + +
  • From c320886a78fcb362ff2567e3c9646e6c3cc606a4 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 5 Jul 2019 21:03:51 -0400 Subject: [PATCH 19/24] fix: use an include file for svg icons & preprocess another file --- gulpfile.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index d10ccb64..5565ab26 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -45,10 +45,11 @@ function clean() { // SVG function embedSvgs() { return gulp - .src('_includes/hcard.html') + .src('_includes/icons_base.html') .pipe(embedSvg({ root: './assets/images/icons' })) + .pipe(rename('icons.html')) .pipe(gulp.dest('_includes/.')) } From d26262fa23eab867698de462116fefe0efd85f1f Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 5 Jul 2019 21:04:35 -0400 Subject: [PATCH 20/24] fix: use include for svgs & preprocess different template to generate inline svg --- _includes/hcard.html | 71 +------------------ _includes/icons.html | 70 ++++++++++++++++++ .../{hcard_base.html => icons_base.html} | 41 ++++------- _includes/post-hcard.html | 32 +-------- 4 files changed, 85 insertions(+), 129 deletions(-) create mode 100644 _includes/icons.html rename _includes/{hcard_base.html => icons_base.html} (73%) diff --git a/_includes/hcard.html b/_includes/hcard.html index bbac79c6..fc004fdb 100644 --- a/_includes/hcard.html +++ b/_includes/hcard.html @@ -8,76 +8,7 @@

    Welcome to the website of {{ site.author }}

    {{ site.bio }}

    -
      - {% if site.twitter_username %} -
    • - -
    • - {% endif %} - {% if site.github_username %} -
    • - - - -
    • - {% endif %} - {% if site.instagram_username %} -
    • - - - -
    • - {% endif %} - {% if site.facebook_url %} -
    • - -
    • - {% endif %} - {% if site.linkedin_url %} -
    • - - - -
    • - {% endif %} - {% if site.tumblr_url %} -
    • - - - -
    • - {% endif %} - {% if site.flickr_username %} -
    • - - - -
    • - {% endif %} - {% if site.foursquare_username %} -
    • - - - -
    • - {% endif %} - {% if site.email %} -
    • - -
    • - {% endif %} -
    • - - - -
    • -
    + {% include icons.html %}

    diff --git a/_includes/icons.html b/_includes/icons.html new file mode 100644 index 00000000..8ce846f5 --- /dev/null +++ b/_includes/icons.html @@ -0,0 +1,70 @@ + \ No newline at end of file diff --git a/_includes/hcard_base.html b/_includes/icons_base.html similarity index 73% rename from _includes/hcard_base.html rename to _includes/icons_base.html index 777daf85..604067c1 100644 --- a/_includes/hcard_base.html +++ b/_includes/icons_base.html @@ -1,85 +1,70 @@ -
    -
    -
    -
    -
    - {{site.author}} -
    -
    -

    Welcome to the website of {{ site.author }}

    -

    {{ site.bio }}

    -
      +
        {% if site.twitter_username %}
      • {% endif %} {% if site.github_username %}
      • - +
      • {% endif %} {% if site.instagram_username %}
      • - +
      • {% endif %} {% if site.facebook_url %}
      • {% endif %} {% if site.linkedin_url %}
      • - +
      • {% endif %} {% if site.tumblr_url %}
      • - +
      • {% endif %} {% if site.flickr_username %}
      • - +
      • {% endif %} {% if site.foursquare_username %}
      • - +
      • {% endif %} {% if site.email %}
      • {% endif %}
      • - - + +
      • -
      -
    -
    -
    -
    -
    + \ No newline at end of file diff --git a/_includes/post-hcard.html b/_includes/post-hcard.html index 083294b4..21a6378a 100644 --- a/_includes/post-hcard.html +++ b/_includes/post-hcard.html @@ -26,37 +26,7 @@

    {% endfor %} \ No newline at end of file From 102403b3eb192fc4cfeca81545894e7b3e171c38 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 5 Jul 2019 23:03:05 -0400 Subject: [PATCH 21/24] chore: add social preview image for repo --- assets/images/social_preview.png | Bin 0 -> 58022 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/images/social_preview.png diff --git a/assets/images/social_preview.png b/assets/images/social_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..da9ba8f5389bba7e96689d3db6a4191e558f00af GIT binary patch literal 58022 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�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Ƈ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 MuOatQ#v=0n0GOdV-2eap literal 0 HcmV?d00001 From a66d462ea325cabd6f547ced0c2c5ffa73cb53c0 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 5 Jul 2019 23:03:43 -0400 Subject: [PATCH 22/24] feat: favicon image --- _includes/head.html | 3 ++ _includes/header.html | 17 +++++++++++ assets/css/main.css | 58 ++++++++++++++++++++------------------ assets/css/main.css.map | 2 +- assets/images/favicon.png | Bin 0 -> 30721 bytes favicon.png | Bin 0 -> 30583 bytes 6 files changed, 52 insertions(+), 28 deletions(-) create mode 100644 _includes/header.html create mode 100644 assets/images/favicon.png create mode 100644 favicon.png diff --git a/_includes/head.html b/_includes/head.html index 20bc5353..a82c6e85 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -1,6 +1,9 @@ + {% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}