diff --git a/.gitignore b/.gitignore index cfdf36e..d8d6855 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,20 @@ +# node project +node_modules/ -# move this somewhere else, probably at top level so it can be excluded +# images that get run through image magick src/assets/images-to-process/ -node_modules/ +# generated data +data/ + +# output directories out/ -stash/ -trash/ +public/ + +# plans, thoughts, notes IDEAS.md TODO.md + +# old directories kept locally +stash/ +trash/ \ No newline at end of file diff --git a/site.config.json5 b/site.config.json5 index 33f82f5..900454c 100644 --- a/site.config.json5 +++ b/site.config.json5 @@ -6,6 +6,11 @@ email: "hey@itsericwoodward.com", // not used photo: "/images/eric-8bit.gif", site: "https://itsericwoodward.com", + geo: { + position: "35.4, -80.5", + placename: "Concord", + region: "US-NC", + }, }, base_uri: "", @@ -14,6 +19,28 @@ copyright: "Copyright 2014-2023 Eric Woodward, licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.", basePath: "", uri: "https://www.itsericwoodward.com", + comment_insert: "\n\ + ___________________________.\n\ + |;;| |;;||\n\ + |[]|---------------------|[]||\n\ + |;;| |;;||\n\ + |;;| |;;||\n\ + |;;| ItsEricWoodward.com |;;||\n\ + |;;| |;;||\n\ + |;;| |;;||\n\ + |;;| |;;||\n\ + |;;|_____________________|;;||\n\ + |;;;;;;;;;;;;;;;;;;;;;;;;;;;||\n\ + |;;;;;;_______________ ;;;;;||\n\ + |;;;;;| ___ |;;;;;||\n\ + |;;;;;| |;;;| |;;;;;||\n\ + |;;;;;| |;;;| |;;;;;||\n\ + |;;;;;| |;;;| |;;;;;||\n\ + |;;;;;| |;;;| |;;;;;||\n\ + |;;;;;| |___| |;;;;;||\n\ + \\_____|_______________|_____||\n\ + ~~~~~^^^^^^^^^^^^^^^^^~~~~~~\n\ + ", }, build: { journalsPerPage: 5, @@ -22,5 +49,7 @@ }, serve: { port: 4997, + shortCodeLink: "/q/", + static404: "./public/errors/404.html", }, } diff --git a/src/assets/images/magic/commanders/arcades-the-strategist.jpg b/src/assets/images/magic/commanders/arcades-the-strategist.jpg new file mode 100644 index 0000000..c8fd461 Binary files /dev/null and b/src/assets/images/magic/commanders/arcades-the-strategist.jpg differ diff --git a/src/assets/images/magic/commanders/chatterfang-squirrel-general.jpg b/src/assets/images/magic/commanders/chatterfang-squirrel-general.jpg new file mode 100644 index 0000000..b6522fe Binary files /dev/null and b/src/assets/images/magic/commanders/chatterfang-squirrel-general.jpg differ diff --git a/src/assets/images/magic/commanders/colfenor-the-last-yew.jpg b/src/assets/images/magic/commanders/colfenor-the-last-yew.jpg new file mode 100644 index 0000000..86e484e Binary files /dev/null and b/src/assets/images/magic/commanders/colfenor-the-last-yew.jpg differ diff --git a/src/assets/images/magic/commanders/edgar-markov-viktor.jpg b/src/assets/images/magic/commanders/edgar-markov-viktor.jpg new file mode 100644 index 0000000..3440cf8 Binary files /dev/null and b/src/assets/images/magic/commanders/edgar-markov-viktor.jpg differ diff --git a/src/assets/images/magic/commanders/edgar-markov.jpg b/src/assets/images/magic/commanders/edgar-markov.jpg new file mode 100644 index 0000000..3fdb437 Binary files /dev/null and b/src/assets/images/magic/commanders/edgar-markov.jpg differ diff --git a/src/assets/images/magic/commanders/edgar-markov.png b/src/assets/images/magic/commanders/edgar-markov.png deleted file mode 100644 index 71318b9..0000000 Binary files a/src/assets/images/magic/commanders/edgar-markov.png and /dev/null differ diff --git a/src/assets/images/magic/commanders/estrid-the-masked.jpg b/src/assets/images/magic/commanders/estrid-the-masked.jpg new file mode 100644 index 0000000..39dbfdc Binary files /dev/null and b/src/assets/images/magic/commanders/estrid-the-masked.jpg differ diff --git a/src/assets/images/magic/commanders/estrid-the-masked.png b/src/assets/images/magic/commanders/estrid-the-masked.png deleted file mode 100644 index 204518d..0000000 Binary files a/src/assets/images/magic/commanders/estrid-the-masked.png and /dev/null differ diff --git a/src/assets/images/magic/commanders/heartless-hidetsugu.jpg b/src/assets/images/magic/commanders/heartless-hidetsugu.jpg index cd72429..96f4ffa 100644 Binary files a/src/assets/images/magic/commanders/heartless-hidetsugu.jpg and b/src/assets/images/magic/commanders/heartless-hidetsugu.jpg differ diff --git a/src/assets/images/magic/commanders/jodah-dr-who.jpg b/src/assets/images/magic/commanders/jodah-dr-who.jpg new file mode 100644 index 0000000..431fb2b Binary files /dev/null and b/src/assets/images/magic/commanders/jodah-dr-who.jpg differ diff --git a/src/assets/images/magic/commanders/jodah-the-unifier.jpg b/src/assets/images/magic/commanders/jodah-the-unifier.jpg new file mode 100644 index 0000000..32ee373 Binary files /dev/null and b/src/assets/images/magic/commanders/jodah-the-unifier.jpg differ diff --git a/src/assets/images/magic/commanders/keleth-sunmane-familiar.jpg b/src/assets/images/magic/commanders/keleth-sunmane-familiar.jpg new file mode 100644 index 0000000..26eee68 Binary files /dev/null and b/src/assets/images/magic/commanders/keleth-sunmane-familiar.jpg differ diff --git a/src/assets/images/magic/commanders/omnath.jpg b/src/assets/images/magic/commanders/omnath.jpg new file mode 100644 index 0000000..7be369f Binary files /dev/null and b/src/assets/images/magic/commanders/omnath.jpg differ diff --git a/src/assets/images/magic/commanders/raised-by-giants.jpg b/src/assets/images/magic/commanders/raised-by-giants.jpg new file mode 100644 index 0000000..b5c9de6 Binary files /dev/null and b/src/assets/images/magic/commanders/raised-by-giants.jpg differ diff --git a/src/assets/images/magic/commanders/saheeli-the-gifted.jpg b/src/assets/images/magic/commanders/saheeli-the-gifted.jpg new file mode 100644 index 0000000..f3ed09c Binary files /dev/null and b/src/assets/images/magic/commanders/saheeli-the-gifted.jpg differ diff --git a/src/assets/images/magic/commanders/saheeli-the-gifted.png b/src/assets/images/magic/commanders/saheeli-the-gifted.png deleted file mode 100644 index 8b4d83d..0000000 Binary files a/src/assets/images/magic/commanders/saheeli-the-gifted.png and /dev/null differ diff --git a/src/assets/images/magic/commanders/slimefoot-the-stowaway.jpg b/src/assets/images/magic/commanders/slimefoot-the-stowaway.jpg new file mode 100644 index 0000000..df78f5e Binary files /dev/null and b/src/assets/images/magic/commanders/slimefoot-the-stowaway.jpg differ diff --git a/src/assets/images/magic/commanders/slimefoot-the-stowaway.png b/src/assets/images/magic/commanders/slimefoot-the-stowaway.png deleted file mode 100644 index 8c623ba..0000000 Binary files a/src/assets/images/magic/commanders/slimefoot-the-stowaway.png and /dev/null differ diff --git a/src/assets/images/magic/commanders/syr-gwyn-ash-williams.jpg b/src/assets/images/magic/commanders/syr-gwyn-ash-williams.jpg new file mode 100644 index 0000000..fa89e82 Binary files /dev/null and b/src/assets/images/magic/commanders/syr-gwyn-ash-williams.jpg differ diff --git a/src/assets/images/magic/commanders/syr-gwyn-hero-of-ashvale.jpg b/src/assets/images/magic/commanders/syr-gwyn-hero-of-ashvale.jpg new file mode 100644 index 0000000..0345662 Binary files /dev/null and b/src/assets/images/magic/commanders/syr-gwyn-hero-of-ashvale.jpg differ diff --git a/src/assets/images/magic/commanders/syr-gwyn-hero-of-ashvale.png b/src/assets/images/magic/commanders/syr-gwyn-hero-of-ashvale.png deleted file mode 100644 index 4cdbb21..0000000 Binary files a/src/assets/images/magic/commanders/syr-gwyn-hero-of-ashvale.png and /dev/null differ diff --git a/src/assets/images/magic/commanders/temmet-vizier-of-naktamun.jpg b/src/assets/images/magic/commanders/temmet-vizier-of-naktamun.jpg new file mode 100644 index 0000000..b4ec367 Binary files /dev/null and b/src/assets/images/magic/commanders/temmet-vizier-of-naktamun.jpg differ diff --git a/src/assets/images/magic/commanders/temmet-vizier-of-naktamun.png b/src/assets/images/magic/commanders/temmet-vizier-of-naktamun.png deleted file mode 100644 index 8895d7b..0000000 Binary files a/src/assets/images/magic/commanders/temmet-vizier-of-naktamun.png and /dev/null differ diff --git a/src/assets/images/magic/commanders/toralf-god-of-fury.jpg b/src/assets/images/magic/commanders/toralf-god-of-fury.jpg new file mode 100644 index 0000000..23418ab Binary files /dev/null and b/src/assets/images/magic/commanders/toralf-god-of-fury.jpg differ diff --git a/src/assets/images/magic/commanders/toralfs-hammer.jpg b/src/assets/images/magic/commanders/toralfs-hammer.jpg new file mode 100644 index 0000000..0c945e9 Binary files /dev/null and b/src/assets/images/magic/commanders/toralfs-hammer.jpg differ diff --git a/src/assets/images/magic/commanders/ur-dragon.jpg b/src/assets/images/magic/commanders/ur-dragon.jpg new file mode 100644 index 0000000..332e8c8 Binary files /dev/null and b/src/assets/images/magic/commanders/ur-dragon.jpg differ diff --git a/src/assets/images/magic/commanders/ur-dragon.png b/src/assets/images/magic/commanders/ur-dragon.png deleted file mode 100644 index 2437029..0000000 Binary files a/src/assets/images/magic/commanders/ur-dragon.png and /dev/null differ diff --git a/src/assets/images/magic/commanders/wrexial-the-risen-deep.jpg b/src/assets/images/magic/commanders/wrexial-the-risen-deep.jpg new file mode 100644 index 0000000..bb3ba70 Binary files /dev/null and b/src/assets/images/magic/commanders/wrexial-the-risen-deep.jpg differ diff --git a/src/assets/images/magic/commanders/wrexial-the-risen-deep.png b/src/assets/images/magic/commanders/wrexial-the-risen-deep.png deleted file mode 100644 index 6c95a2e..0000000 Binary files a/src/assets/images/magic/commanders/wrexial-the-risen-deep.png and /dev/null differ diff --git a/src/assets/images/magic/doctor-who/dr-who-jodah-card-1.jpg b/src/assets/images/magic/doctor-who/dr-who-jodah-card-1.jpg index dd97025..9d256b6 100644 Binary files a/src/assets/images/magic/doctor-who/dr-who-jodah-card-1.jpg and b/src/assets/images/magic/doctor-who/dr-who-jodah-card-1.jpg differ diff --git a/src/assets/images/magic/doctor-who/dr-who-jodah-card-2.jpg b/src/assets/images/magic/doctor-who/dr-who-jodah-card-2.jpg index 79584a5..897db58 100644 Binary files a/src/assets/images/magic/doctor-who/dr-who-jodah-card-2.jpg and b/src/assets/images/magic/doctor-who/dr-who-jodah-card-2.jpg differ diff --git a/src/assets/images/magic/doctor-who/dr-who-jodah-card-3.jpg b/src/assets/images/magic/doctor-who/dr-who-jodah-card-3.jpg index ff315a9..5c711e4 100644 Binary files a/src/assets/images/magic/doctor-who/dr-who-jodah-card-3.jpg and b/src/assets/images/magic/doctor-who/dr-who-jodah-card-3.jpg differ diff --git a/src/assets/images/magic/doctor-who/dr-who-jodah-card-4.jpg b/src/assets/images/magic/doctor-who/dr-who-jodah-card-4.jpg index 2b05794..419f2d3 100644 Binary files a/src/assets/images/magic/doctor-who/dr-who-jodah-card-4.jpg and b/src/assets/images/magic/doctor-who/dr-who-jodah-card-4.jpg differ diff --git a/src/assets/images/magic/doctor-who/jack-harkness-tajic-1.jpg b/src/assets/images/magic/doctor-who/jack-harkness-tajic-1.jpg index a129a84..23f4888 100644 Binary files a/src/assets/images/magic/doctor-who/jack-harkness-tajic-1.jpg and b/src/assets/images/magic/doctor-who/jack-harkness-tajic-1.jpg differ diff --git a/src/assets/images/magic/proxies/edgar-markov-viktor.jpg b/src/assets/images/magic/proxies/edgar-markov-viktor.jpg new file mode 100644 index 0000000..ebae8fd Binary files /dev/null and b/src/assets/images/magic/proxies/edgar-markov-viktor.jpg differ diff --git a/src/assets/images/magic/proxies/syr-gwyn-ash-williams.jpg b/src/assets/images/magic/proxies/syr-gwyn-ash-williams.jpg new file mode 100644 index 0000000..fe5d4c2 Binary files /dev/null and b/src/assets/images/magic/proxies/syr-gwyn-ash-williams.jpg differ diff --git a/src/assets/scripts/1-docready.min.js b/src/assets/scripts/1-docready.min.js deleted file mode 100644 index 7225311..0000000 --- a/src/assets/scripts/1-docready.min.js +++ /dev/null @@ -1,9 +0,0 @@ -// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT -/* - docready.js - https://github.com/jfriend00/docReady - The MIT License (MIT) - Copyright (c) 2014 John Friend -*/ -!(function(t,e){"use strict";function n(){if(!a){a=!0;for(var t=0;tparseInt(a[1],10))):(F=!1));return F}function M(a){null===H&&(H=!!a.document.fonts);return H}function N(a,c){var b=a.style,g=a.weight;if(null===G){var e=document.createElement("div");try{e.style.font="condensed 100px sans-serif"}catch(q){}G=""!==e.style.font}return[b,g,G?a.stretch:"","100px",c].join(" ")}D.prototype.load=function(a,c){var b=this,g=a||"BESbswy",e=0,q=c||3e3,J=new Date().getTime();return new Promise(function(K,L){if(M(b.context)&&!I(b.context)){var O=new Promise(function(r,t){function h(){new Date().getTime()-J>=q?t(Error(""+q+"ms timeout exceeded")):b.context.document.fonts.load(N(b,'"'+b.family+'"'),g).then(function(n){1<=n.length?r():setTimeout(h,25)},t)}h()}),P=new Promise(function(r,t){e=setTimeout(function(){t(Error(""+q+"ms timeout exceeded"))},q)});Promise.race([P,O]).then(function(){clearTimeout(e);K(b)},L)}else{u(function(){function r(){var d;if((d=(-1!=k&&-1!=l)||(-1!=k&&-1!=m)||(-1!=l&&-1!=m))){(d=k!=l&&k!=m&&l!=m)||(null===E&&((d=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent)),(E=!!d&&(536>parseInt(d[1],10)||(536===parseInt(d[1],10)&&11>=parseInt(d[2],10))))),(d=E&&((k==y&&l==y&&m==y)||(k==z&&l==z&&m==z)||(k==A&&l==A&&m==A)))),(d=!d)}d&&(null!==f.parentNode&&f.parentNode.removeChild(f),clearTimeout(e),K(b))}function t(){if(new Date().getTime()-J>=q){null!==f.parentNode&&f.parentNode.removeChild(f),L(Error(""+q+"ms timeout exceeded"))}else{var d=b.context.document.hidden;if(!0===d||void 0===d){(k=h.g.offsetWidth),(l=n.g.offsetWidth),(m=v.g.offsetWidth),r()}e=setTimeout(t,50)}}var h=new w(g),n=new w(g),v=new w(g),k=-1,l=-1,m=-1,y=-1,z=-1,A=-1,f=document.createElement("div");f.dir="ltr";x(h,N(b,"sans-serif"));x(n,N(b,"serif"));x(v,N(b,"monospace"));f.appendChild(h.g);f.appendChild(n.g);f.appendChild(v.g);b.context.document.body.appendChild(f);y=h.g.offsetWidth;z=n.g.offsetWidth;A=v.g.offsetWidth;t();C(h,function(d){k=d;r()});x(h,N(b,'"'+b.family+'",sans-serif'));C(n,function(d){l=d;r()});x(n,N(b,'"'+b.family+'",serif'));C(v,function(d){m=d;r()});x(v,N(b,'"'+b.family+'",monospace'))})}})};"object"===typeof module?(module.exports=D):((window.FontFaceObserver=D),(window.FontFaceObserver.prototype.load=D.prototype.load))})(); -// @license-end diff --git a/src/assets/scripts/6-dayjs.min.js b/src/assets/scripts/6-dayjs.min.js deleted file mode 100644 index b9935bc..0000000 --- a/src/assets/scripts/6-dayjs.min.js +++ /dev/null @@ -1,10 +0,0 @@ -// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT -/* - dayjs v1.11.5 - https://github.com/iamkun/dayjs - The MIT License (MIT) - Copyright (c) 2018-present, iamkun -*/ -!(function(t,e){"object"==typeof exports&&"undefined"!=typeof module?(module.exports=e()):"function"==typeof define&&define.amd?define(e):((t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e())})(this,function(){"use strict";var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",f="month",h="quarter",c="year",d="date",$="Invalid Date",l=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e= -t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()1){return t(u[0])}}else{var a=e.name;(D[a]=e),(i=a)}return!r&&i&&(v=i),i||(!r&&v)},w=function(t,e){if(p(t)){return t.clone()}var n="object"==typeof e?e:{};return(n.date=t),(n.args=arguments),new _(n)},O=g;(O.l=S),(O.i=p),(O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})});var _=(function(){function M(t){(this.$L=S(t.locale,null,!0)),this.parse(t)}var m=M.prototype;return((m.parse=function(t){(this.$d=(function(t){var e=t.date,n=t.utc;if(null===e){return new Date(NaN)}if(O.u(e)){return new Date()}if(e instanceof Date){return new Date(e)}if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)})(t)),(this.$x=t.x||{}),this.init()}),(m.init=function(){var t=this.$d;(this.$y=t.getFullYear()),(this.$M=t.getMonth()),(this.$D=t.getDate()),(this.$W=t.getDay()),(this.$H=t.getHours()),(this.$m=t.getMinutes()),(this.$s=t.getSeconds()),(this.$ms=t.getMilliseconds())}),(m.$utils=function(){return O}),(m.isValid=function(){return!(this.$d.toString()===$)}),(m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)}),(m.isAfter=function(t,e){return w(t)0),p<=y.r||!y.r)){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(""+p)),(a="string"==typeof v?v.replace("%d",p):v(p,n,y.l,s));break}}if(n){return a}var M=s?l.future:l.past;return "function"==typeof M?M(a):M.replace("%s",a)}),(n.to=function(r,e){return i(r,e,this,!0)}),(n.from=function(r,e){return i(r,e,this)});var d=function(r){return r.$u?t.utc():t()};(n.toNow=function(r){return this.to(d(this),r)}),(n.fromNow=function(r){return this.from(d(this),r)})}}); -// @license-end diff --git a/src/assets/scripts/lib/dayjs-v1.11.9.min.js b/src/assets/scripts/lib/dayjs-v1.11.9.min.js new file mode 100644 index 0000000..a7ded95 --- /dev/null +++ b/src/assets/scripts/lib/dayjs-v1.11.9.min.js @@ -0,0 +1,10 @@ +// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT +/* + dayjs v1.11.9 (with RelativeTime plugin) + https://github.com/iamkun/dayjs + The MIT License (MIT) + Copyright (c) 2018-present, iamkun +*/ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){"use strict";var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new b(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var b=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(""+p)),a="string"==typeof v?v.replace("%d",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return"function"==typeof M?M(a):M.replace("%s",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}})); +// @license-end diff --git a/src/assets/scripts/4-js.cookie.min.js b/src/assets/scripts/lib/js-cookie-v3.0.1.min.js similarity index 100% rename from src/assets/scripts/4-js.cookie.min.js rename to src/assets/scripts/lib/js-cookie-v3.0.1.min.js diff --git a/src/assets/scripts/3-lazy-progressive-enhancement.min.js b/src/assets/scripts/lib/lazy-progressive-enhancement-v1.0.0.min.js similarity index 100% rename from src/assets/scripts/3-lazy-progressive-enhancement.min.js rename to src/assets/scripts/lib/lazy-progressive-enhancement-v1.0.0.min.js diff --git a/src/assets/scripts/scripts.js b/src/assets/scripts/scripts.js index 837162a..0a40fd2 100644 --- a/src/assets/scripts/scripts.js +++ b/src/assets/scripts/scripts.js @@ -2,16 +2,16 @@ /**************************************************************************** * It's Eric Woodward's Site * - * Copyright 2014-2023 Eric Woodward + * Copyright 2014-2024 Eric Woodward * Source released under CC0 Public Domain License v1.0 * https://www.itsericwoodward.com/licenses/cc0/ * http://creativecommons.org/publicdomain/zero/1.0/ ****************************************************************************/ -(function () { - "use strict"; +export default (() => { + // we load this library via "module" to guarantee baseline ES6 functionality - // Checking if browser "cuts the mustard" - https://gomakethings.com/ditching-jquery/ - if (!(!!document.querySelector && !!window.addEventListener)) return; + // check for loaded libraries + if (!window.Cookies) return; if (window.dayjs) dayjs.extend(window.dayjs_plugin_relativeTime); @@ -19,27 +19,9 @@ document.documentElement.className = document.documentElement.className.replace("no-js", "js"); - // Enable cached fonts ASAP - if (window.Cookies && !!Cookies.get("fonts_loaded")) { - document.documentElement.className += " js-hasFontsLoaded"; - } - - docReady(function () { - setTimeout(function () { - if (!window.Cookies || !window.FontFaceObserver) return; - - // Handle Fonts - const fontExo2 = new FontFaceObserver("exo_2"); - fontExo2.load().then(function () { - if ( - document.documentElement.className.indexOf( - "js-hasFontsLoaded" - ) == -1 - ) { - document.documentElement.className += " js-hasFontsLoaded"; - } - Cookies.set("fonts_loaded", true); - }); + document.addEventListener("DOMContentLoaded", () => { + setTimeout(() => { + if (!window.Cookies) return; // Lazy-Load Media if (typeof loadMedia === "function") { @@ -61,9 +43,13 @@ }); } - // TODO: maybe put toggle behind collapsable "settings" menu that - // lives on bottom left of screen on mobile? - const actionBox = document.querySelector("#footer .actionBox"); + const actionBoxDiv = document.querySelector("#bio .actionBox"); + + const actionBox = document.createElement("details"); + + actionBoxDiv.append(actionBox); + + actionBox.setAttribute("open", "true"); /** THEME SWITCHER */ @@ -154,6 +140,11 @@ actionBox.append(scrollToggle); actionBox.classList.add("js-actionBox"); + const actionBoxTitle = document.createElement("summary"); + actionBoxTitle.innerHTML = + "

Settings

"; + actionBox.append(actionBoxTitle); + // add toggle event document .getElementById("scrollingToggle") diff --git a/src/assets/styles/styles.css b/src/assets/styles/styles.css index 8f5c178..acd888f 100644 --- a/src/assets/styles/styles.css +++ b/src/assets/styles/styles.css @@ -31,7 +31,7 @@ body { background: #040308; color: #9aa8bc; color: var(--color-main); - font-family: sans-serif; + font-family: "exo_2", sans-serif; font-size: 100%; line-height: 1.5em; } @@ -366,7 +366,11 @@ samp { display: flex; flex-direction: row; justify-content: space-evenly; - margin: 1rem 0; + margin: 2rem 0 1rem; +} + +.actionBox-title { + display: inline-block; } .actionBox.js-actionBox > .topLink { @@ -825,10 +829,48 @@ samp { padding: 0.25em 0.5em; } -.magic-commander-img { - border-radius: 0.75em; - max-width: 100%; - width: 15em; +.magicDeck { + display: grid; + grid-template-columns: 1fr; +} + +.magicDeck-content { + grid-column: 1; + grid-row: 1; +} + +.magicDeck-images { + align-items: center; + align-self: top; + display: flex; + flex-direction: row; + flex-wrap: wrap; + grid-column: 1; + grid-row: 2; + justify-content: center; +} + +.magicDeck-images-list { + margin-top: -1em; +} + +.magicDeck--saheeli .magicCard-img { + border-radius: 1em; +} + +.magicCard-img { + border-radius:.75em; + display: block; + margin: 0 auto; + max-width: 15em; +} + +.magicCard-link { + border: 1px dashed transparent; + display: block; + margin: 0 auto; + max-width: 18em; + padding: 0.5em; } .magnetLink { @@ -1515,10 +1557,6 @@ samp { max-width: 90%; } -.js-hasFontsLoaded body { - font-family: "exo_2", sans-serif; -} - .pageMenu-link.isCurrent .pageMenu-text { background-color: #049c74; background-color: rgba(4, 156, 116, 0.8); @@ -1576,9 +1614,24 @@ samp { ****************************************************************************/ @media all and (min-width: 34em) { - .magic-commander-img { - float: right; + .magicDeck { + display: block; } + + .magicDeck-images { + align-items: center; + align-self: top; + display: flex; + flex-direction: column; + float: right; + grid-column: 2; + justify-content: start; + } + + .magicCard-img { + width: 15em; + } + } @media all and (min-width: 38em) { @@ -1608,6 +1661,11 @@ samp { } @media all and (min-width: 70em) { + .actionBox { + border-top: 1px dashed white; + flex-direction: column-reverse; + } + .asideContent { background: #040308; background: rgba(4, 3, 8, 0.9); @@ -1647,6 +1705,10 @@ samp { max-height: none; } + .scrollToggle { + margin-top: 1rem; + } + .socialList-item { display: inherit; } diff --git a/src/layouts/functions.ejs b/src/layouts/functions.ejs index f488750..2fce479 100644 --- a/src/layouts/functions.ejs +++ b/src/layouts/functions.ejs @@ -99,5 +99,4 @@ return 0; } }; - -%> diff --git a/src/layouts/functions/menusub-functions.ejs b/src/layouts/functions/menusub-functions.ejs new file mode 100644 index 0000000..3b26c7e --- /dev/null +++ b/src/layouts/functions/menusub-functions.ejs @@ -0,0 +1,21 @@ +<% + makeSubMenuItem = (menuText, subDir, pageName) => (` +
  • + + ${menuText} + +
  • + `); + + makeSubMenuTitle = (title, subDir) => (` +

    + + ${title} + +

    + `); + +-%> diff --git a/src/layouts/partials/bio.ejs b/src/layouts/partials/bio.ejs index ebb86c3..2a6441a 100644 --- a/src/layouts/partials/bio.ejs +++ b/src/layouts/partials/bio.ejs @@ -69,6 +69,8 @@ + +
    <% } %> diff --git a/src/layouts/partials/bottom.ejs b/src/layouts/partials/bottom.ejs index 48b0704..22e04d9 100644 --- a/src/layouts/partials/bottom.ejs +++ b/src/layouts/partials/bottom.ejs @@ -3,13 +3,32 @@
    - - - - - - - + + + + + + + + + + diff --git a/src/layouts/partials/content_types/magic-deck.ejs b/src/layouts/partials/content_types/magic-deck.ejs index 2bfc678..540bce9 100644 --- a/src/layouts/partials/content_types/magic-deck.ejs +++ b/src/layouts/partials/content_types/magic-deck.ejs @@ -1,10 +1,10 @@ <%- include('../../functions') -%> <% - var + const card_url = "http://gatherer.wizards.com/Pages/Search/Default.aspx?name=+[%22CARD-NAME%22]", detail_url = "http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=", - image_url = "/images/magic/commanders/", + image_base_url = "/images/magic/commanders/", deck = page.deck || {}, info = deck.info || {}, cards = deck.cards || [], @@ -12,14 +12,63 @@ changes = deck.changes || [], starting_lands = info.starting_lands || [], - commander = info.commander && info.commander_id ? - "
  • " + info.commander + - " (Commander)
  • " : - "", - commander_img = info.commander && info.commander_img ? - "" + info.commander + " card": - "" - ; + com_text = info.commander || '', + com_id = info.commander_id || '', + com_name = com_text.split('//')[0].trim(), + back_name = com_text && com_text.includes('//') ? com_text.split('//')[1].trim() : '', + + getCardItem = (name, link_url, image_url) => { + if (!name || !image_url) return ''; + return (` + + `); + }, + + getListItem = (name, url, description, back_name, back_url) => { + if (!name || !url) return ''; + return (` +
  • + ${name} + ${back_name && back_url ? `// ${back_name}` : ''} + ${description} +
  • + `); + }, + + getCardImg = (name, link_url, image_url) => { + if (!name || !image_url) return ''; + return [ + "", + "",
+        name,
+        " card", + ].join(''); + }, + + com_li = getListItem(com_name, detail_url + com_id, (info.commander_proxy ? "Original " : "") + "Commander", back_name, detail_url + info.commander_back_id), + com_img = getCardItem(com_name, detail_url + com_id, image_base_url + info.commander_img), + + com_back_img = getCardItem(back_name, detail_url + info.commander_back_id, image_base_url + info.commander_back_img), + + proxy_li = getListItem(info.commander_proxy, info.commander_proxy_lg_url, "Proxy Commander"), + proxy_img = getCardItem(info.commander_proxy, info.commander_proxy_lg_url, image_base_url + info.commander_proxy_img), + + alt_li = getListItem(info.alt_commander, detail_url + info.alt_commander_id, "Alternate Commander"), + alt_img = getCardItem(info.alt_commander, detail_url + info.alt_commander_id, image_base_url + info.alt_commander_img), + + back_li = getListItem(info.background, detail_url + info.background_id, "Background"), + back_img = getCardItem(info.background, detail_url + info.background_id, image_base_url + info.background_img), + + partner_li = getListItem(info.partner, detail_url + info.partner_id, "Partner"), + partner_img = getCardItem(info.partner, detail_url + info.partner_id, image_base_url + info.partner_img); -%>

    @@ -31,69 +80,97 @@

    Below is my <%= info.name %> deck for Magic: the Gathering (<%= info.format %> format). - It was last updated on <%= info.date_upd %>. + + <% if (!!info.date_upd) { -%> + It was last updated on <%= info.date_upd %>. + <% } -%>

    Each card listed below is linked to its entry on The Gatherer - (the official MtG card database) and should open in a new window or tab in + (the official MtG card database) and should open in a new window or tab in your browser.

    Decklist

    -<%- commander_img %> - -
      - <%- commander %> - <% cards.forEach(function(card) { %> -
    • <%= card %>
    • - <% }) %> - <% lands.forEach(function(land) { %> -
    • <%= land.type %> (x<%=land.count%>)
    • - <% }) %> -
    - -<% if (starting_lands && starting_lands.length > 0) { %> -

    Starting Lands

    -

    - In order to speed our games along, my gaming group allows everyone to start with 3 basic lands. - The lands listed below are included in the counts above.

    -
      - <% starting_lands.forEach(function(land) { %> - <% if (typeof land === 'string') { %> -
    • <%= land %>
    • - <% } else {%> -
    • - <%= land.type %> (x<%=land.count%>) -
    • - <% } %> - <% }) %> -
    -<% } %> - -<% if (changes && changes.length > 0) { %> -

    Changes from Previous Versions

    - -
      - <% changes.forEach(function(change) { %> -
    • - Implemented <%= change.date_upd %>: -
        - <% if (change.adds) { %> - <% change.adds.forEach(function(add) { %> -
      • <%= add %> (added)
      • - <% }) %> +
        +
        +
          + <%- proxy_img %> + <%- com_img %> + <%- com_back_img %> + <%- partner_img %> + <%- back_img %> + <%- alt_img %> +
        +
        +
        +
          + <%- proxy_li %> + <%- com_li %> + <%- partner_li %> + <%- back_li %> + <%- alt_li %> + <% cards.forEach(function(card) { %> + <% if (card.includes(' // ')) { %> + <% var splitCard = card.split(' // '); %> +
        • <%= splitCard[0] %> // + <%= splitCard[1] %>
        • + <% } else { %> +
        • <%= card %>
        • <% } %> - <% if (change.dels) { %> - <% change.dels.forEach(function(del) { %> -
        • <%= del %> (removed)
        • - <% }) %> + + <% }) %> + <% lands.forEach(function(land) { %> +
        • <%= land.type %> (x<%=land.count%>)
        • + <% }) %> +
        + + <% if (starting_lands && starting_lands.length > 0) { %> +

        Starting Lands

        +

        + In order to speed our games along, my gaming group allows everyone to start with 3 basic lands. + The lands listed below are included in the counts above.

        +
          + <% starting_lands.forEach(function(land) { %> + <% if (typeof land === 'string') { %> +
        • <%= land %>
        • + <% } else {%> +
        • + <%= land.type %> (x<%=land.count%>) +
        • <% } %> -
        - - <% }) %> -
      -<% } %> + <% }) %> +
    + <% } %> + + <% if (changes && changes.length > 0) { %> +

    Changes from Previous Versions

    + +
      + <% changes.forEach(function(change) { %> +
    • + Implemented <%= change.date_upd %>: +
        + <% if (change.adds) { %> + <% change.adds.forEach(function(add) { %> +
      • <%= add %> (added)
      • + <% }) %> + <% } %> + <% if (change.dels) { %> + <% change.dels.forEach(function(del) { %> +
      • <%= del %> (removed)
      • + <% }) %> + <% } %> +
      +
    • + <% }) %> +
    + <% } %> + + + <%- content %> + diff --git a/src/layouts/partials/magic-decks/menusub.ejs b/src/layouts/partials/magic-decks/menusub.ejs index 644bbfe..d8085d0 100644 --- a/src/layouts/partials/magic-decks/menusub.ejs +++ b/src/layouts/partials/magic-decks/menusub.ejs @@ -1,62 +1,23 @@ +<%- include('../../functions/menusub-functions') -%> +<% const subDir = 'magic-decks'; -%> + diff --git a/src/layouts/partials/top.ejs b/src/layouts/partials/top.ejs index 63b2d8d..d3c8082 100644 --- a/src/layouts/partials/top.ejs +++ b/src/layouts/partials/top.ejs @@ -2,24 +2,32 @@ <% const - getPageField = (field_name) => { - return page[field_name] || site[field_name] || ''; - }, - getUrl = () => site.base_uri + (site.base_uri.endsWith('/') ? '' : '/') + page.path; + getPageField = (field_name) => page[field_name] || site[field_name] || '', + baseUrl = site.base_uri + (site.base_uri.endsWith('/') ? '' : '/') + page.path, + author = Object.assign({}, site.author ?? {}, page.author ?? {}); -%> - - - - - - + - - + - - <%= page.title ? page.title + ' | ' : ''%><%= page.sub_title ? page.sub_title + ' | ' : ''%><%= site.title %> + + + + + + + + <%= page.title ? page.title + ' | ' : ''%> + <%= page.sub_title ? page.sub_title + ' | ' : ''%> + <%= site.title %> + + + + <%_ if (author.geo.region) { _%> + + <%_ } _%> + <%_ if (author.geo.placename) { _%> + + <%_ } _%> + <%_ if (author.geo.position) { _%> + + + <%_ } _%> +<%_ } -%> + <% if (page.image) { %> -<% } %> -<% if (page.description) { %> +<% } _%> +<%_ if (page.description) { _%> -<% } %> +<% } _%> -<% if (page.image) { %> +<%_ if (page.image) { _%> -<% } else { %> +<%_ } else { _%> -<% } %> +<%_ } _%> - + <% if (page.author && page.author.twitter) { %> <% } else if (site.author && site.author.twitter) { %> -<% } %> +<% } _%> + + + + - - - + + + diff --git a/src/pages/games/index.md b/src/pages/games/index.md index e1896bc..0224dc5 100644 --- a/src/pages/games/index.md +++ b/src/pages/games/index.md @@ -11,7 +11,7 @@ One of my biggest hobbies / time-sinks over the last 30+ years of my life has be ### My Games -- [The Planar Vagabond's Guide to the Multiverse](https://www.planarvagabond.com/) **NEW** - A free role-playing game that I'm developing as part of an ongoing campaign, and which doubles as a nifty pocket guide to the wild and weird multiverse of interplanar travel. +- [The Planar Vagabond's Guide to the Multiverse](https://www.planarvagabond.com/) **NEW** - A free role-playing game that I'm developing as part of a series of ongoing campaigns, and which doubles as a nifty pocket guide to the wild and weird multiverse of interplanar travel. - [Camp Happy Island Massacre](/chim) - My first (and only) computer game, a comedy-horror text game for the DOS operating system that you can now play online. - [Mythic Wars](https://mythicwarsgame.com/) - My tabletop (card and dice) game, where the gods and goddesses themselves battle for ultimate supremacy! Published by [Excalibre Games](http://excalibregames.com/). diff --git a/src/pages/magic-decks/arcades.md b/src/pages/magic-decks/arcades.md index 6d2caec..41211b9 100644 --- a/src/pages/magic-decks/arcades.md +++ b/src/pages/magic-decks/arcades.md @@ -1,44 +1,109 @@ --- { - "title": "Defenders of the Mirth (Commander)", - "sub_title": "Magic Decks", - "description": "", - "date_pub": "2020-04-02T00:07:00-04:00", - "license": "CC0", - "section": "games", - "subsection": "magic-decks", - "content_type": "magic-deck", - "deck": { - "info": { - "name": "Defenders of the Mirth", - "format": "Commander", - "based_on": "", - "commander": "Arcades, the Strategist", - "commander_id": 447348, - "starting_lands": [ - "Forest", - "Island", - "Plain" - ], - "date_upd": "2020-04-02" - }, - "cards": [ - ], - "lands" : [ - { - "type": "Forest", - "count": 10 - }, - { - "type": "Island", - "count": 10 - }, - { - "type": "Plain", - "count": 10 - } - ], - "changes" : [] - } + "title": "Defenders of the Mirth (Commander)", + "sub_title": "Magic Decks", + "description": "", + "date_pub": "2024-06-08T10:39:50.000-04:00", + "license": "CC0", + "section": "games", + "subsection": "magic-decks", + "content_type": "magic-deck", + "deck": + { + "info": + { + "name": "Defenders of the Mirth", + "format": "Commander", + "based_on": "", + "commander": "Arcades, the Strategist", + "commander_id": 447348, + "commander_img": "arcades-the-strategist.jpg", + "starting_lands": ["Forest", "Island", "Plain"], + }, + "cards": + [ + "Adamant Will", + "Blessed Light", + "Blossoming Sands", + "Bounty of the Luxa", + "Broken Concentration", + "Cancel", + "Capture Sphere", + "Claustrophobia", + "Cloak of Mists", + "Consulate Skygate", + "Crafty Pathmage", + "Curse of Vitality", + "Darksteel Ingot", + "Dusk // Dawn", + "Evolving Wilds", + "Fell the Mighty", + "Fertile Ground", + "Fleetfeather Sandals", + "Flumph", + "Fog Bank", + "Fortified Area", + "Gatecreeper Vine", + "Geist of the Archives", + "Guard Duty", + "Guard Gomazoa", + "Guardians of Meletis", + "Huatli, the Sun's Heart", + "Jiang Yanggu", + "Journey for the Elixir", + "Larger than Life", + "Llanowar Scout", + "Loyal Unicorn", + "Luminous Bonds", + "Meandering River", + "Militia Bugler", + "Mnemonic Wall", + "Mu Yangling", + "Narset, Parter of Veils", + "Overrule", + "Primal Plasma", + "Pristine Talisman", + "Protective Bubble", + "Reason // Believe", + "Respite", + "Restore the Peace", + "Rhythmic Water Vortex", + "Riptide Turtle", + "Roc Egg", + "Rolling Stones", + "Root Snare", + "Saruli Caretaker", + "Shield-Wall Sentinel", + "Silence", + "Slagwurm Armor", + "Spring // Mind", + "Steel of the Godhead", + "Suspicious Bookcase", + "Syncopate", + "Talons of Wildwood", + "Tetsuko Umezawa, Fugitive", + "Thornwood Falls", + "Tower Defense", + "Train of Thought", + "Tranquil Cove", + "Wall of Air", + "Wall of Denial", + "Wall of Frost", + "Wall of Spears", + "Wall of Stolen Identity", + "Wall of Vines", + "Wild-Field Scarecrow", + "Wildwood Rebirth", + "Wings of Hope", + "Woodland Stream", + ], + "lands": + [ + { "type": "Forest", "count": 7 }, + { "type": "Island", "count": 9 }, + { "type": "Plains", "count": 8 }, + ], + "changes": [], + }, } --- diff --git a/src/pages/magic-decks/chatterfang.md b/src/pages/magic-decks/chatterfang.md new file mode 100644 index 0000000..f35b8a4 --- /dev/null +++ b/src/pages/magic-decks/chatterfang.md @@ -0,0 +1,111 @@ +--- +{ + "title": "The Night of 1000 Squirrels (Commander Deck)", + "sub_title": "Magic Decks", + "description": "", + "date_pub": "2024-06-01T11:50:26.000-04:00", + "license": "CC0", + "section": "games", + "subsection": "magic-decks", + "content_type": "magic-deck", + "deck": + { + "info": + { + "name": "The Night of 1000 Squirrels", + "format": "Commander", + "based_on": "", + "commander": "Chatterfang, Squirrel General", + "commander_id": 522227, + "commander_img": "chatterfang-squirrel-general.jpg", + "partner": "Keleth, Sunmane Familiar", + "partner_id": 622641, + "partner_img": "keleth-sunmane-familiar.jpg", + "background": "Raised by Giants", + "background_id": 563133, + "background_img": "raised-by-giants.jpg", + "alt_commander": "Colfenor, the Last Yew", + "alt_commander_id": 502744, + "alt_commander_img": "colfenor-the-last-yew.jpg", + "starting_lands": ["Forest", "Island", "Swamp"], + }, + "cards": + [ + "Adeline, Resplendant Cathar", + "Aeve, Progenitor Ooze", + "Alpha Status", + "Anointer Priest", + "Biorhythm", + "Blanchwood Armor", + "Bolas's Citadel", + "Cadira, Caller of the Small", + "Chatterstorm", + "Chitterspitter", + "Cloakwood Hermit", + "Cultist of the Absolute", + "Diabolic Tutor", + "Diregraf Rebirth", + "Dramatic Finale", + "Dread Return", + "Drey Keeper", + "Dina, Soul Steeper", + "Druid's Call", + "Emmara Tandris", + "Fertile Ground", + "Field of Ruin", + "Fog", + "Growing Ranks", + "Hanweir Militia Captain // Westvale Cult Leader", + "Inspiring Leader", + "Intangible Virtue", + "Ivy League Denizen", + "Kaya, Geist Hunter", + "Make a Stand", + "Martial Coup", + "Master Chef", + "Might of the Masses", + "Mirkwood bats", + "Moldervine Reclamation", + "Moonsilver SPear", + "Mycoloth", + "Ogre Slumlord", + "Piper of the Swarm", + "Pollenbright Wings", + "Prairie Dog", + "Primal Vigor", + "Primeval Bounty", + "Rally the Ranks", + "Requiem Angel", + "Rogue's Passage", + "Rupture Spire", + "Scurry Oak", + "Scute Swarm", + "Selesnya Signet", + "Shadowheart, Dark Justicar", + "Shamanic Revelation", + "Song of Freyalise", + "Spirit Mantle", + "Squirrel Mob", + "Squirrel Sovereign", + "Squirrel Wrangler", + "Stoneforge Masterwork", + "Storm Herd", + "Sylvan Offering", + "Terramorphic Expanse", + "Thalisse, Reverent Medium", + "Verdant Embrace", + "Verdant Force", + "White Sun's Zenith", + "Wild Growth", + "Yeva, Nature's Herald", + ], + "lands": + [ + { "type": "Forest", "count": 11 }, + { "type": "Plain", "count": 9 }, + { "type": "Swamp", "count": 9 }, + ], + "changes": [], + }, +} +--- diff --git a/src/pages/magic-decks/doctors-who.md b/src/pages/magic-decks/doctors-who.md new file mode 100644 index 0000000..c0350a0 --- /dev/null +++ b/src/pages/magic-decks/doctors-who.md @@ -0,0 +1,129 @@ +--- +{ + "title": "The Doctors Who (Commander Deck)", + "sub_title": "Magic Decks", + "description": "", + "date_pub": "2024-06-01T11:50:12.000-04:00", + "license": "CC0", + "section": "games", + "subsection": "magic-decks", + "content_type": "magic-deck", + "deck": + { + "info": + { + "name": "The Doctors Who", + "format": "Commander", + "based_on": "", + "commander": "Jodah, the Unifier", + "commander_id": 578055, + "commander_img": "jodah-the-unifier.jpg", + "commander_proxy": "Doctor Who, Eccentric Scientist", + "commander_proxy_img": "jodah-dr-who.jpg", + "commander_proxy_lg_url": "/images/magic/doctor-who/dr-who-jodah-card-4.jpg", + "starting_lands": ["Forest", "Island", "Plain"], + }, + "cards": + [ + "Alistair the Brigadier", + "Auton Soldier", + "Become the Pilot", + "Bessie, the Doctor's Roadster", + "Canopy Vista", + "Caves of Androzani", + "Cinder Glade", + "Command Tower", + "Crumbling Necropolis", + "Danny Pink", + "Day of Destiny", + "Death in Heaven", + "Deserted BEach", + "Displaced Dinosaurs", + "Dreamroot Cascade", + "The Eighth Doctor", + "The Eleventh Doctor", + "Exotic Orchard", + "The Fifth Doctor", + "The First Doctor", + "The Five Doctors", + "Flatline", + "The Fourth Doctor", + "Frontier Bivouac", + "The Fugitive Doctor", + "Fugitive of the Judoon", + "Gallifrey Council Chamber", + "Gallifrey Falls // No More", + "Gallifrey Stands", + "The Girl in the Fireplace", + "Haunted Bridge", + "Heroes' Podium", + "Hero's Blade", + "Heroic Intervention", + "Jamie McCrimmon", + "Jenny, Generated Anomaly", + "Judoon Enforcers", + "K-9, Mark I", + "Kate Stewart", + "Laser Screwdriver", + "Last Night Together", + "The Master, Mesmerist", + "Missy", + "Mox Amber", + "Myriad Landscape", + "The Night of the Doctor", + "The Ninth Doctor", + "Overgrown Farmland", + "Path of Ancestry", + "Prairie Stream", + "Psychic Paper", + "The Rani", + "Rassilon, the War President", + "Reliquary Tower", + "Reverse the Polarity", + "River Song", + "River Song's Diary", + "Rockfall Vale", + "Rogue's Passage", + "Run for Your Life", + "Seaside Citadel", + "The Second Doctor", + "The Seventh Doctor", + "Shanid, Sleepers' Scourge", + "Sisay, Waetherlight Captain", + "Sisterhood of Karn", + "The Sixth Doctor", + "Smoldering Marsh", + "Sol Ring", + "Sonic Screwdriver", + "Stormcarved Coast", + "Sunken Hollow", + "Susan Foreman", + "Swords to Plowshares", + "Tajic, Blade of the Legion", + "TARDIS", + "Tegan Jovanka", + "Temple of the False God", + "The Tenth Doctor", + "The Third Doctor", + "The Thirteenth Doctor", + "Thought Vessel", + "The Twelfth Doctor", + "Time Wipe", + "Trenzalore Clock Tower", + "Twice Upon a Time", + "An Unearthly Child", + "The War Doctor", + "Wilfred Mott", + ], + "lands": + [ + { "type": "Forest", "count": 2 }, + { "type": "Island", "count": 2 }, + { "type": "Mountain", "count": 2 }, + { "type": "Plain", "count": 2 }, + { "type": "Swamp", "count": 2 }, + ], + "changes": [], + }, +} +--- diff --git a/src/pages/magic-decks/edgar.md b/src/pages/magic-decks/edgar.md index 24b80b6..ff85fca 100644 --- a/src/pages/magic-decks/edgar.md +++ b/src/pages/magic-decks/edgar.md @@ -17,7 +17,10 @@ "based_on": "Commander 2017 Vampires Deck", "commander": "Edgar Markov", "commander_id": 433277, - "commander_img": "edgar-markov.png", + "commander_img": "edgar-markov.jpg", + "commander_proxy": "Viktor, Vampire Elder", + "commander_proxy_img": "edgar-markov-viktor.jpg", + "commander_proxy_lg_url": "/images/magic/proxies/edgar-markov-viktor.jpg", "starting_lands": ["Mountain", "Plains", "Swamp"], "date_upd": "2018-08-16", }, diff --git a/src/pages/magic-decks/estrid.md b/src/pages/magic-decks/estrid.md index bcf67bf..12b7052 100644 --- a/src/pages/magic-decks/estrid.md +++ b/src/pages/magic-decks/estrid.md @@ -17,7 +17,7 @@ "based_on": "", "commander": "Estrid, the Masked", "commander_id": 450641, - "commander_img": "estrid-the-masked.png", + "commander_img": "estrid-the-masked.jpg", "starting_lands": ["Forest", "island", "Plains"], }, "cards": diff --git a/src/pages/magic-decks/index.md b/src/pages/magic-decks/index.md index 53b99db..ac77353 100644 --- a/src/pages/magic-decks/index.md +++ b/src/pages/magic-decks/index.md @@ -6,19 +6,27 @@ content_type: feature section: games subsection: magic-decks --- + I'm a huge fan of [Magic: the Gathering](https://magic.wizards.com/), personally believing it to be one of the greatest tabletop games ever designed. I've been playing it for the past 18 years or so, and frequently join my friends in their weekly casual games (which have been running for over a decade). Initially, we played regular, 60-card Magic (aka [Legacy format](https://magic.wizards.com/en/game-info/gameplay/formats/legacy)), but have shifted over the last few years to playing EDH (aka [Commander format](https://magic.wizards.com/en/content/commander-format)) fairly exclusively. As I've been rebuilding my decks to work with the new format, I decided to start documenting them (or, at least, the ones that actually win work). +Due to the house rules that my friends and I play with, most of these decks are liable to be illegal (or, at best, ill-advised) in CEDH. Still, they've brought me great joy. + Click on a deck name below to see its full list of cards. -+ [Edgar-World](edgar.html) - A red-white-black vampire-tribal deck headed by [Edgar Markov](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=433277) (because I ♥ Eminence). -+ [Estrid's Masks of Fate](estrid.html) - A green-white-blue deck with a heavy focus on enchantments (especially Totem Armor) commanded by the Planeswalker [Estrid, the Masked](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=450641). -+ [The Fight of Dragons](ur-dragon.html) - A five-color dragon-tribal deck headed by [The Ur-Dragon](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=433289) (because I *really* ♥ Eminence). -+ [A Hard Day's Knight](knights.html) - A red-white-black knight-tribal deck with lots of equipment, commanded [by Syr Gwyn, Hero of Ashvale](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=476048). -+ [Saheeli-Thopters](saheeli.html) - A blue-red deck based around (and commanded by) the Planeswalker [Saheeli, the Gifted](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=450645). -+ [Slimefoot's Sapsuckers](slimefoot.html) - A black-green deck designed to generate and then sacrifice Saprolings, all to trigger Commander [Slimefoot, the Stoweaway](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=443093)'s damage-inflicting ability. -+ [Tap-Bomb](hidetsugu.html) - A mono-red deck built solely to enable the ability of its Commander, the tap-bomb himself, [Heartless Hidetsugu](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=382282). Stupidly evil. -+ [Temmet's Invisi-Tokens](temmet.html) - A white-blue deck full of token-creature-generating spells, just so Commander [Temmet, Vizier of Naktamun](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=426909) can make them unblockable. -+ [Wrexial Rising](wrexial.html) - My first commander deck, a blue-black horror-themed deck headed by the Cthulhu-esque [Wrexial, the Risen Deep](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=446907). +- [Defenders of the Mirth](./arcades.html) **NEW** - A green-white-blue tribal Defender deck, headed by the dragon [Arcades, the Strategist](https://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=447348). +- [The Doctors Who](./doctors-who.html) **NEW** - A five-color tribal Legendary deck consisting almost completely of cards from the various [Doctor Who Commander decks](https://magic.wizards.com/en/products/doctor-who) (including _16_ versions of the Doctor), and commanded by [Jodah, the Unifier](https://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=578055) (or one of my [Who-themed proxy versions of him](/journal/2024/01-26-doctor-who-cards)). +- [Edgar-World](./edgar.html) - A red-white-black vampire-tribal deck headed by [Edgar Markov](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=433277) (because I ♥ Eminence). +- [Estrid's Masks of Fate](./estrid.html) - A green-white-blue deck with a heavy focus on enchantments (especially Totem Armor) commanded by the Planeswalker [Estrid, the Masked](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=450641). +- [The Fight of Dragons](./ur-dragon.html) - A five-color dragon-tribal deck headed by [The Ur-Dragon](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=433289) (because I _really_ ♥ Eminence). +- [Hammer of Heaven](./toralf.html) **NEW** - A mono-red deck lead by the Thor stand-in [Toralf, God of Fury](https://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=503766) (and [his hammer](https://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=503767)), laser-focused on one thing: killing everyone (and everything) else. +- [A Hard Day's Knight](./knights.html) - A red-white-black knight-tribal deck with lots of equipment, commanded by [Syr Gwyn, Hero of Ashvale](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=476048). +- [The Night of 1000 Squirrels](./chatterfang.html) **NEW** - A green-white-black squirrel (and creature token) tribal headed by [Chatterfang, Squirrel General](https://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=522227) and his partner, [Keleth, Sunmane Familiar](https://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=622641). +- [The Phyrexian Invasion](./omnath.html) **NEW** - A five-color Phyrexian-tribal deck that's heavy on battles and Praetors, lead by the corrupted elemental [Omnath, Locus of All](https://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=607320). +- [Saheeli-Thopters](./saheeli.html) - A blue-red deck based around (and commanded by) the Planeswalker [Saheeli, the Gifted](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=450645). +- [Slimefoot's Sapsuckers](./slimefoot.html) - A black-green deck designed to generate and then sacrifice Saprolings, all to trigger Commander [Slimefoot, the Stoweaway](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=443093)'s damage-inflicting ability. +- [Tap-Bomb](./hidetsugu.html) - A mono-red deck built solely to enable the ability of its Commander, the tap-bomb himself, [Heartless Hidetsugu](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=382282). Stupidly evil. +- [Temmet's Invisi-Tokens](./temmet.html) - A white-blue deck full of token-creature-generating spells, just so Commander [Temmet, Vizier of Naktamun](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=426909) can make them unblockable. +- [Wrexial Rising](./wrexial.html) - My first commander deck, a blue-black horror-themed deck headed by the Cthulhu-esque [Wrexial, the Risen Deep](http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=446907). diff --git a/src/pages/magic-decks/knights.md b/src/pages/magic-decks/knights.md index 0ff923e..a9cfbb3 100644 --- a/src/pages/magic-decks/knights.md +++ b/src/pages/magic-decks/knights.md @@ -17,7 +17,10 @@ "based_on": "", "commander": "Syr Gwyn, Hero of Ashvale", "commander_id": 476048, - "commander_img": "syr-gwyn-hero-of-ashvale.png", + "commander_img": "syr-gwyn-hero-of-ashvale.jpg", + "commander_proxy": "Ash Williams, Chosen One", + "commander_proxy_img": "syr-gwyn-ash-williams.jpg", + "commander_proxy_lg_url": "/images/magic/proxies/syr-gwyn-ash-williams.jpg", "starting_lands": ["Mountain", "Plains", "Swamp"], "date_upd": "2019-02-23", }, diff --git a/src/pages/magic-decks/omnath.md b/src/pages/magic-decks/omnath.md new file mode 100644 index 0000000..54301eb --- /dev/null +++ b/src/pages/magic-decks/omnath.md @@ -0,0 +1,122 @@ +--- +{ + "title": "The Phyrxeian Invasion (Commander Deck)", + "sub_title": "Magic Decks", + "description": "", + "date_pub": "2024-06-01T11:50:26.000-04:00", + "license": "CC0", + "section": "games", + "subsection": "magic-decks", + "content_type": "magic-deck", + "deck": + { + "info": + { + "name": "The Phyrxeian Invasion", + "format": "Commander", + "based_on": "", + "commander": "Omnath, Locus of All", + "commander_id": 607320, + "commander_img": "omnath.jpg", + "starting_lands": ["Forest", "Island", "Plain"], + }, + "cards": + [ + "Aetherblade Agent // Gitaxian Mindstinger", + "Ancient Stone Idol", + "Arcane Signet", + "Atraxa, Praetors' Voice", + "Begin the Invasion", + "Blade Splicer", + "Blighted Burgeoning", + "Bloodfell Caves", + "Blossoming Sands", + "Breach the Multiverse", + "Brimaz, Blight of Oreskos", + "Brudiclad, Telchor Engineer", + "Chrome Host Seedshark", + "Command Tower", + "Commander's Sphere", + "Corruption of Towashi", + "Darksteel Splicer", + "Defiler of FLesh", + "Diabolic Tutor", + "Dismal Backwater", + "Elesh Norn, Grand Cenobite", + "Elesh Norn, Mother of Machines", + "Elvish Vatkeeper", + "Evolving Wilds", + "Exotic Orchard", + "Filigree Vector", + "Fractured Powerstone", + "Gateway Plaza", + "Glissa, Herald of Predation", + "Glistening Dawn", + "Gix, Yawgmoth Praetor", + "Harried Artisan // Phyrexian Skyflayer", + "Ichor Elixir", + "Invasion of Arcavios // Invocation of the Founders", + "Invasion of Fiora // Marchesa, Resolute Monarch", + "Invasion of Ikoria // Zilortha, Apex of Ikoria", + "Invasion of Karsus // Refraction Elemental", + "Invasion of Moag // Bloomwielder Dryads", + "Invasion of New Capenna // Holy Frazzle-Cannon", + "Invasion of Pyrulea // Gargantuan Slabhorn", + "Invasion of Tolvada // The Broken Sky", + "Invasion of Zendikar // Awakened Skyclave", + "Jin-Gitaxias // The Great Synthesis", + "Jin Gitaxias, Core Augur", + "Jungle Hollow", + "Karn's Bastion", + "Lukka, Bound to Ruin", + "Luxury Suite", + "Massacre Wurm", + "Master Splicer", + "Mirkwood Bats", + "Morphic Pool", + "Ozolith, the Shattered Spire", + "Path of Ancestry", + "Phyrexian Awakening", + "Phyrexian Censor", + "Phyrexian Rebirth", + "Phyrexian Triniform", + "Progenitor Exarch", + "Realmbreaker, the Invasion Tree", + "Reflecting Pool", + "Rugged Highlands", + "Rupture Spire", + "Scoured Barrens", + "Scrap Trawler", + "Scytheclaw", + "Sculpted Perfection", + "Sheoldred, the Apocalypse", + "Sheoldred, the Whispering One", + "Sol Ring", + "Spire Garden", + "Sunfall", + "Swiftfoot Boots", + "Tamiyo, Compleated Sage", + "Tangled Skyline", + "Terramorphic Expanse", + "Terror of Towashi", + "Thornwood Falls", + "Tranquil Cove", + "Urabrask the Hidden", + "Utter End", + "Vorinclex // The Grand Evolution", + "Vorinclex, Voice of Hunger", + "Vulpine Harvester", + "Yawgmoth's Vile Offering", + ], + "lands": + [ + { "type": "Forest", "count": 3 }, + { "type": "Island", "count": 3 }, + { "type": "Mountain", "count": 2 }, + { "type": "Plains", "count": 3 }, + { "type": "Swamp", "count": 3 }, + ], + "changes": [], + }, +} +--- diff --git a/src/pages/magic-decks/saheeli.md b/src/pages/magic-decks/saheeli.md index 3a47d7d..f0ecdde 100644 --- a/src/pages/magic-decks/saheeli.md +++ b/src/pages/magic-decks/saheeli.md @@ -18,7 +18,7 @@ "based_on": "Commander 2018 Artifacts Deck", "commander": "Saheeli, the Gifted", "commander_id": 450645, - "commander_img": "saheeli-the-gifted.png", + "commander_img": "saheeli-the-gifted.jpg", "starting_lands": [{ "type": "Island", "count": 2 }, "Mountain"], "date_upd": "2019-02-16", diff --git a/src/pages/magic-decks/slimefoot.md b/src/pages/magic-decks/slimefoot.md index 3226b36..7ce2577 100644 --- a/src/pages/magic-decks/slimefoot.md +++ b/src/pages/magic-decks/slimefoot.md @@ -17,7 +17,7 @@ "based_on": "", "commander": "Slimefoot, the Stoweaway", "commander_id": 443093, - "commander_img": "slimefoot-the-stowaway.png", + "commander_img": "slimefoot-the-stowaway.jpg", "starting_lands": [{ "type": "Forest", "count": 2 }, "Swamp"], "date_upd": "2018-07-28", diff --git a/src/pages/magic-decks/temmet.md b/src/pages/magic-decks/temmet.md index 43a6285..2f7fb0e 100644 --- a/src/pages/magic-decks/temmet.md +++ b/src/pages/magic-decks/temmet.md @@ -17,7 +17,7 @@ "based_on": "", "commander": "Temmet, Vizier of Naktamun", "commander_id": 426909, - "commander_img": "temmet-vizier-of-naktamun.png", + "commander_img": "temmet-vizier-of-naktamun.jpg", "starting_lands": [{ "type": "Island", "count": 2 }, "Plains"], "date_upd": "2018-07-28", diff --git a/src/pages/magic-decks/toralf.md b/src/pages/magic-decks/toralf.md new file mode 100644 index 0000000..d77510a --- /dev/null +++ b/src/pages/magic-decks/toralf.md @@ -0,0 +1,100 @@ +--- +{ + "title": "Hammer of Heaven (Commander)", + "sub_title": "Magic Decks", + "description": "", + "date_pub": "2024-06-08T10:06:03.000-04:00", + "license": "CC0", + "section": "games", + "subsection": "magic-decks", + "content_type": "magic-deck", + "deck": + { + "info": + { + "name": "Hammer of Heaven", + "format": "Commander", + "based_on": "", + "commander": "Toralf, God of Fury // Toralf's Hammer", + "commander_id": 503766, + "commander_img": "toralf-god-of-fury.jpg", + "commander_back_id": 503767, + "commander_back_img": "toralfs-hammer.jpg", + "starting_lands": [{ "type": "Mountain", "count": 3 }], + }, + "cards": + [ + "Angrath's Marauders", + "Anger", + "Archetype of Aggression", + "Banefire", + "Blasphemous Act", + "Chain Reaction", + "Chandra, Bold Pyromancer", + "Chandra's Ignition", + "Chandra's Incinerator", + "Claws of Valakut", + "Comet Storm", + "Court of Ire", + "Devil's Play", + "Disintegrate", + "Dualcaster Mage", + "Encroaching Wastes", + "Etali, Primal Storm", + "Falkenrath Exterminator", + "Fast // Furious", + "Fiery Hellhound", + "Firebreathing", + "Fling", + "Gratuitous Violence", + "Heartless Hidetsugu", + "Increasing Vengeance", + "Inner-Flame Igniter", + "Inferno of the Star Mounts", + "Into the Maw of Hell", + "Jaws of Stone", + "Jaya, Venerated Firemage", + "Jaya's Immolating Inferno", + "Lightning Greaves", + "Magmaquake", + "Mana Geyser", + "Mark for Death", + "Meteor Swarm", + "Mizzium Mortars", + "Paragon of Fierce Defiance", + "Reckless Endeavor", + "Rowan, Fearless Sparkmage", + "Ryusei, the Falling Star", + "Sarkhan, the Dragonspeaker", + "Sarkhan's Dragonfire", + "Scourge of Geier Reach", + "Seismic Strike", + "Shivan Hellkite", + "Shivan Meteor", + "Shiv's Embrace", + "Silverclad Ferocidons", + "Skyship Stalker", + "Slagstorm", + "Soulbright Flamekin", + "Soulfire Eruption", + "Spitting Earth", + "Spreading Insurrection", + "Storm's Wrath", + "Sudden Demise", + "Sundering Stroke", + "Temur Battle Rage", + "Thrill of Possibility", + "Throes of Chaos", + "Torbran, Thane of Red Fell", + "Urza's Rage", + "Varchild, Betrayer of Kjeldor", + "Volcanic Fallout", + "Volcanic Salvo", + "Wall of Fire", + "Word of Seizing", + ], + "lands": [{ "type": "Mountain", "count": 31 }], + "changes": [], + }, +} +--- diff --git a/src/pages/magic-decks/ur-dragon.md b/src/pages/magic-decks/ur-dragon.md index dfd59e9..c161456 100644 --- a/src/pages/magic-decks/ur-dragon.md +++ b/src/pages/magic-decks/ur-dragon.md @@ -17,7 +17,7 @@ "based_on": "Commander 2017 Dragons Deck", "commander": "The Ur-Dragon", "commander_id": 433289, - "commander_img": "ur-dragon.png", + "commander_img": "ur-dragon.jpg", "starting_lands": ["Island", "Mountain", "Plains"], "date_upd": "2018-07-21", }, diff --git a/src/pages/magic-decks/wrexial.md b/src/pages/magic-decks/wrexial.md index 433aeb6..fa348be 100644 --- a/src/pages/magic-decks/wrexial.md +++ b/src/pages/magic-decks/wrexial.md @@ -16,7 +16,7 @@ "format": "Commander", "commander": "Wrexial, the Risen Deep", "commander_id": 446907, - "commander_img": "wrexial-the-risen-deep.png", + "commander_img": "wrexial-the-risen-deep.jpg", "starting_lands": [{ "type": "Island", "count": 2 }, "Swamp"], "date_upd": "2018-07-21", diff --git a/src/pages/now.md b/src/pages/now.md index c117f64..57adf52 100644 --- a/src/pages/now.md +++ b/src/pages/now.md @@ -7,11 +7,12 @@ content_type: feature short_code: mn --- -Between the hours of roughly 9AM and 12AM (`America/New_York` time, give or take an hour or two), you'll most likely find me doing any or all of the following: +Between the hours of roughly 8AM and 11PM (`America/New_York` time, give or take an hour or two), you'll most likely find me doing any or all of the following: -- working, +- working (especially between 9a and 6p, M-F), - [developing](/journal/2015/03-18-developing-the-web) this website, -- making another [magic deck](/magic-decks), -- playing D&D (especially if it's Thursday, because that's **Togar's night!**), -- messing around with some crazy side project (probably involving a game and/or a Raspberry Pi), or -- building out my Monday night astral campaign, [The Planar Vagabond's Guide to the Multiverse](https://www.planarvagabond.com/). +- building out [The Planar Vagabond's Guide to the Multiverse](https://www.planarvagabond.com/), +- playing (and hopefully winning) a casual game of [MtG Commander](https://magic.wizards.com/en/formats/commander) (or making another [magic deck](/magic-decks) to play/win with), +- running one of my [Monday Night Mini Campaigns](https://www.planarvagabond.com/campaigns/mini-campaigns/) or [One Night... one shots](https://www.planarvagabond.com/campaigns/one-night/), +- playing D&D (especially if it's Thursday, because that's **Togar's night!**), or +- messing around with some crazy side project (probably involving a game, the web, and/or a Raspberry Pi).