Adding existing content to theme

This commit is contained in:
Jason Williams committed 2026-10-29 09:49:10 -06:00
1 parent 4ec5e05ae2
commit 0665ab292b
26 files changed
+1247 -3

No files matched your search

@@ -0,0 +1,51 @@
h1 + h2, h2:first-child {
margin-top: 0;
}
section h1:first-child {
margin-top: 0;
}
section + section {
margin-top: 3rem;
}
.card ul {
margin: 0;
padding-left: 1rem;
}
.card-inline.inline ul {
padding: 0;
}
.card-inline.inline ul li {
display: inline;
}
.card-inline.inline ul li:not(:last-child)::after {
content: ";";
}
.card-inline .inline-icon {
position: absolute;
top: 0;
right: 0;
padding: 1rem;
cursor: pointer;
}
section.resume-section .resume-item .resume-date {
min-width: 18rem;
}
.text-primary {
color: var(--dark-alt-accent-color)!important;
}
/* lg Breakpoint */
@media (min-width: 992px) {
section.resume-section {
min-height: 100vh;
}
}
@@ -0,0 +1,63 @@
/* lg Breakpoint */
@media (min-width: 992px) {
body {
/*padding-left: 17rem;*/
padding-left: 25%;
}
#main-nav {
min-height: 8rem;
}
#side-nav {
text-align: center;
position: fixed;
top: 0;
left: 0;
display: flex;
flex-direction: column;
width: 25%;
height: 100vh;
padding: 0;
background-color: var(--main-accent-color);
}
#side-nav .navbar-brand {
display: flex;
margin: auto auto 0;
/*padding: 0.5rem;*/
}
#side-nav .navbar-brand .img-profile {
max-width: 10rem;
max-height: 10rem;
/*border: 0.5rem solid rgba(255, 255, 255, 0.2);*/
}
#side-nav .navbar-collapse {
display: flex;
align-items: flex-start;
flex-grow: 0;
width: 100%;
margin-bottom: auto;
}
#side-nav .navbar-collapse .navbar-nav {
flex-direction: column;
width: 100%;
}
#side-nav .navbar-collapse .navbar-nav .nav-item {
display: block;
}
#side-nav .navbar-collapse .navbar-nav .nav-item .nav-link {
display: block;
}
}
@media (min-width: 992px) and (min-height: 620px) {
main {
margin-top: -8rem;
}
}
@@ -0,0 +1,271 @@
/* Variables */
:root {
--main-bg-color: #F2EDEA;
--main-accent-color: #302B44;
--light-accent-color: #686283;
--xlight-accent-color: #88839C;
--xxlight-accent-color: #FFFFFF;
--alt-accent-color: #B05C71;
--dark-alt-accent-color: #913A50;
--title-font: 'Cinzel', serif;
--body-font: 'Raleway', sans-serif;
}
/* Structural elements (including style for them) */
html, body { height: 100%; }
body {
background-color: var(--main-bg-color);
font-family: var(--body-font);
color: var(--main-accent-color);
}
#page-content {
flex: 1 0 auto;
}
#main-nav .navbar-brand {
height: 4.5rem;
padding-left: 100px;
font-family: var(--title-font);
font-size: 2.5rem;
background-image: url('../images/jwlogo.svg');
background-repeat: no-repeat;
background-size: 4.5rem;
color: var(--main-accent-color);
word-spacing: -0.15em;
}
footer {
flex-shrink: 0;
background-color: var(--main-accent-color);
padding-top: 1rem;
}
footer p, footer ul li {
color: var(--light-accent-color);
font-size: 0.8rem;
}
footer ul {
margin-top: -1rem;
padding-left: 1.25rem;
}
/* Responsive element spacing */
.container-fluid, #main-nav {
padding-left: 1rem;
padding-right: 1rem;
}
#main-nav {
padding-top: 1rem;
}
footer, h1, h2 {
margin-top: 2rem;
}
footer {
margin-top: 2rem;
}
/* Responsive element spacing - lg breakpoint */
@media (min-width: 992px) {
.container-fluid, #main-nav {
padding-left: 3rem;
padding-right: 3rem;
}
#main-nav {
padding-top: 3rem;
}
footer, h1, h2 {
margin-top: 3rem;
}
}
/* Standard element styles */
h1.master {
margin: 0;
font-family: var(--title-font);
font-size: 3.5rem;
word-spacing: -0.15em;
}
h2 {
font-size: 1.5rem;
}
h3 {
font-size: 1rem;
color: var(--dark-alt-accent-color);
}
a {
color: var(--alt-accent-color);
text-decoration: underline;
}
a.icon-link {
display: inline-block;
height: 1em;
color: var(--accent-color);
}
a.btn {
text-decoration: none;
}
a:hover {
color: var(--dark-alt-accent-color);
text-decoration: none;
}
/* Custom styles */
html { overflow-x: hidden; overflow-y: scroll; }
html::-webkit-scrollbar-track {
background-color: rgba(48, 43, 68, 0.2);
}
html::-webkit-scrollbar {
width: 0.5rem;
background-color: rgba(48, 43, 68, 0.2);
}
html::-webkit-scrollbar-thumb {
border-radius: 0.5rem;
background-color: rgba(48, 43, 68, 0.5);
}
#main-nav .nav-item .nav-link {
color: rgba(48, 43, 68, 0.5);
text-decoration: none;
}
#main-nav .nav-item.active .nav-link {
color: var(--main-accent-color);
}
#main-nav .nav-item .nav-link:hover {
color: var(--alt-accent-color);
}
#side-nav .nav-link, footer a {
text-decoration: none;
color: var(--xlight-accent-color);
}
#side-nav .nav-link:hover, #side-nav .nav-link.active, footer a:hover, footer a.active {
color: var(--xxlight-accent-color);
}
.main, .card p.main, .card ul.main {
font-size: 1.2rem;
}
.giant, .card p.giant, .card ul.giant {
font-size: 1.5rem;
}
.col-container {
margin: 0 -15px;
}
.card {
margin-bottom: 2rem;
}
.social-icons {
font-size: 0;
}
.social-icons a {
display: inline-block;
height: 3.5rem;
width: 3.5rem;
background-color: var(--main-accent-color);
color: var(--main-bg-color);
text-align: center;
font-size: 1.5rem;
line-height: 3.5rem;
margin-right: 0.25rem;
margin-bottom: 0.25rem;
}
.social-icons a:hover {
background-color: var(--dark-alt-accent-color);
color: white;
}
.card {
color: rgba(0, 0, 0, 0.75);
}
.card h1, .card h2, .card h3 {
color: var(--main-accent-color);
margin-top: 0;
}
.card p, .card ul {
font-size: 0.9rem;
}
.card .feedcard-footer p, .card .feedcard-footer a {
margin-bottom: 0;
font-size: 0.75rem;
color: rgba(0, 0, 0, 0.5);
text-decoration: none;
}
.card .feedcard-footer img {
height: 0.75rem;
}
.card .feedcard-footer .feedcard-itemtype {
width: 33%;
text-align: right;
}
.card .feedcard-footer .feedcard-attribution {
width: 67%;
}
.altaccent {
color: var(--alt-accent-color);
}
a.feed-showonly { font-size: 0.75rem; color: var(--xlight-accent-color); }
/* Tag cloud styles */
div.jqcloud {
font-size: 0.5rem;
line-height: normal;
}
div.jqcloud a {
color: inherit;
font-size: inherit;
text-decoration: none
}
div.jqcloud a:hover {
color: var(--dark-alt-accent-color);
}
div.jqcloud span.w10 {font-size:550%; color: rgba(176, 92, 113, 1);}
div.jqcloud span.w9 {font-size:500%; color: rgba(176, 92, 113, 0.95);}
div.jqcloud span.w8 {font-size:450%; color: rgba(176, 92, 113, 0.9);}
div.jqcloud span.w7 {font-size:400%; color: rgba(176, 92, 113, 0.85);}
div.jqcloud span.w6 {font-size:350%; color: rgba(176, 92, 113, 0.8);}
div.jqcloud span.w5 {font-size:300%; color: rgba(176, 92, 113, 0.75);}
div.jqcloud span.w4 {font-size:250%; color: rgba(176, 92, 113, 0.7);}
div.jqcloud span.w3 {font-size:200%; color: rgba(176, 92, 113, 0.65);}
div.jqcloud span.w2 {font-size:150%; color: rgba(176, 92, 113, 0.6);}
div.jqcloud span.w1 {font-size:100%; color: rgba(176, 92, 113, 0.55);}
div.jqcloud{overflow:hidden;position:relative}
div.jqcloud span{padding:0}
Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 976 B

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg991"
version="1.1"
viewBox="0 0 20.245804 20.24579"
height="20.24579mm"
width="20.245804mm">
<defs
id="defs985" />
<metadata
id="metadata988">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-47.754592,-115.27591)"
id="layer1">
<path
id="rect14-6"
d="m 47.754592,115.27591 v 17.63304 c 0.106168,-0.24788 0.233702,-0.4884 0.384473,-0.72141 0.199014,-0.31273 0.431246,-0.61124 0.696598,-0.89555 0.255874,-0.27483 0.516513,-0.53548 0.781864,-0.78186 0.09477,-0.0853 0.24678,-0.22285 0.45527,-0.41239 0.199014,-0.18006 0.430729,-0.38388 0.696081,-0.61132 0.255874,-0.21796 0.525982,-0.45468 0.810287,-0.71056 0.284305,-0.24639 0.559405,-0.48362 0.824756,-0.71107 0.255875,-0.21795 0.488108,-0.41231 0.696598,-0.5829 l 0.469222,-0.38343 c 0.04738,-0.14217 0.137075,-0.38387 0.269751,-0.72504 0.142152,-0.34117 0.28917,-0.70147 0.4408,-1.08055 0.151629,-0.38854 0.298648,-0.74835 0.4408,-1.08004 0.142153,-0.34116 0.241313,-0.57838 0.298173,-0.71106 0.04739,-0.11372 0.104194,-0.23233 0.170532,-0.35554 0.06634,-0.13267 0.142601,-0.25077 0.227893,-0.35502 0.09477,-0.11373 0.19892,-0.2084 0.312642,-0.28422 0.113723,-0.0758 0.241288,-0.1142 0.38344,-0.1142 0,0.29378 -0.05182,0.62121 -0.156063,0.98133 -0.09477,0.36013 -0.213382,0.71992 -0.355534,1.08004 -0.132676,0.35065 -0.274701,0.68256 -0.426331,0.99529 -0.142152,0.30326 -0.255773,0.54943 -0.341064,0.73897 0.01895,0 0.04736,0.005 0.08527,0.0145 h 0.09922 c 0.236921,0 0.464678,-0.0334 0.682645,-0.0997 0.217967,-0.0663 0.445208,-0.0992 0.682129,-0.0992 0.07581,0 0.156554,0.004 0.241846,0.0139 0.0085,8.6e-4 0.01527,0.004 0.02325,0.006 0.176817,-0.31351 0.375447,-0.60935 0.59738,-0.88676 0.236921,-0.29378 0.483616,-0.57388 0.73949,-0.83923 0.265352,-0.26535 0.497068,-0.53046 0.696081,-0.79582 0.161106,0 0.265775,0.0329 0.313159,0.0992 0.04738,0.0663 0.0708,0.15156 0.0708,0.2558 -0.07581,0.0853 -0.194428,0.23679 -0.355534,0.45475 -0.151629,0.21797 -0.307599,0.4502 -0.468705,0.6966 -0.161106,0.2464 -0.308124,0.48311 -0.4408,0.71055 -0.123199,0.21797 -0.189477,0.37445 -0.198954,0.46922 -0.07581,0.27482 -0.07581,0.45026 0,0.52607 0.08529,0.0663 0.217848,0.0663 0.397908,0 0.18006,-0.0758 0.393357,-0.19891 0.639755,-0.36949 0.246398,-0.18005 0.502044,-0.38388 0.767395,-0.61132 0.265352,-0.22744 0.521513,-0.45967 0.767911,-0.69661 0.255875,-0.23691 0.473647,-0.4502 0.653707,-0.63975 h 0.611332 c 0,0.16111 -0.02393,0.3126 -0.07131,0.45475 -0.04738,0.14217 -0.0992,0.2847 -0.156063,0.42685 -0.04738,0.13268 -0.09473,0.26972 -0.14211,0.41187 -0.04739,0.13267 -0.07131,0.27522 -0.07131,0.42685 0,0.20849 0.06628,0.33605 0.198955,0.38343 0.132676,0.0474 0.289161,0.0713 0.469222,0.0713 0.23692,0 0.48809,-0.0473 0.753442,-0.14211 0.265351,-0.0948 0.507053,-0.22733 0.72502,-0.39791 0.227444,-0.17058 0.412337,-0.36993 0.554488,-0.59738 0.142153,-0.22744 0.212907,-0.47362 0.212907,-0.73897 0,-0.2464 -0.03787,-0.46917 -0.113688,-0.66818 -0.06634,-0.19903 -0.09922,-0.4168 -0.09922,-0.65372 0,-0.2843 0.156487,-0.42684 0.469223,-0.42684 0.0075,0 0.0143,0.002 0.0217,0.003 l 0.0031,-0.0429 c 0.01302,0.0179 0.02863,0.0328 0.04393,0.0481 0.104472,0.0159 0.19804,0.0678 0.280086,0.15658 0.464728,0.17372 0.93881,0.28894 1.422136,0.34571 0.490136,0.0628 0.993857,0.10272 1.511536,0.11937 0.02542,-0.001 0.09464,-0.008 0.207739,-0.0202 0.09978,-0.0109 0.216542,-0.0244 0.340547,-0.0393 v -8.24135 z m 10.051066,1.55908 c 0.132675,0 0.213416,0.0518 0.241846,0.15606 0.02843,0.10425 0.04237,0.20892 0.04237,0.31316 0,0.17059 -0.04734,0.32207 -0.14211,0.45475 -0.09477,0.12319 -0.236793,0.18449 -0.42633,0.18449 -0.170584,0 -0.274736,-0.0757 -0.312643,-0.22738 -0.02843,-0.15163 -0.04289,-0.29813 -0.04289,-0.44028 0,-0.0569 0.02393,-0.11419 0.07131,-0.17105 0.04738,-0.0569 0.104194,-0.1042 0.170532,-0.14211 0.06634,-0.0379 0.137092,-0.0663 0.212907,-0.0853 0.07581,-0.0284 0.137618,-0.0424 0.185002,-0.0424 z m 7.029545,6.85436 v 5.2e-4 c 0.04391,0.1266 0.08006,0.25708 0.101802,0.39481 0.03791,0.17057 0.05685,0.30812 0.05685,0.41237 0,0.48331 -0.113621,0.9094 -0.341065,1.279 -0.227444,0.36958 -0.521481,0.68257 -0.8816,0.93844 -0.36012,0.2464 -0.762784,0.43577 -1.208195,0.56844 -0.435934,0.1232 -0.867003,0.185 -1.293461,0.185 -0.350643,0 -0.630218,-0.12808 -0.838708,-0.38395 -0.199014,-0.25588 -0.303166,-0.5544 -0.312643,-0.89556 -0.265351,0.0853 -0.512045,0.22731 -0.739489,0.42633 -0.217968,0.19901 -0.440733,0.40284 -0.668177,0.61134 -0.217967,0.19901 -0.445208,0.37943 -0.682129,0.54053 -0.236921,0.16111 -0.502035,0.24133 -0.795817,0.24133 -0.07581,0 -0.166022,-0.0284 -0.270267,-0.0853 -0.104246,-0.0663 -0.208398,-0.14655 -0.312643,-0.24132 -0.09477,-0.0948 -0.175508,-0.19446 -0.241846,-0.2987 -0.05686,-0.10424 -0.08027,-0.19893 -0.0708,-0.28421 0.01385,-0.18461 0.04494,-0.36219 0.0925,-0.53331 -0.03325,0.0174 -0.06589,0.0354 -0.102319,0.0496 -0.217967,0.0853 -0.450201,0.15657 -0.696598,0.21343 -0.236921,0.0569 -0.464162,0.12813 -0.682129,0.21342 -0.217968,0.0758 -0.374454,0.21285 -0.469222,0.41186 -0.05686,0.11373 -0.142075,0.28915 -0.255798,0.52607 -0.113722,0.22744 -0.24628,0.48808 -0.397909,0.78186 -0.142153,0.29379 -0.294163,0.60177 -0.455269,0.92398 -0.15163,0.33169 -0.29813,0.64466 -0.440283,0.93844 -0.132675,0.30326 -0.256282,0.57337 -0.370004,0.81029 -0.11Line truncated
style="fill:#302b44;fill-opacity:1;stroke:none;stroke-width:0.26458332" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.7 KiB

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" width="160px" height="20px" viewBox="0 0 128 16" xml:space="preserve"><path fill="#a8a6b1" fill-opacity="0.42" d="M6.4,4.8A3.2,3.2,0,1,1,3.2,8,3.2,3.2,0,0,1,6.4,4.8Zm12.8,0A3.2,3.2,0,1,1,16,8,3.2,3.2,0,0,1,19.2,4.8ZM32,4.8A3.2,3.2,0,1,1,28.8,8,3.2,3.2,0,0,1,32,4.8Zm12.8,0A3.2,3.2,0,1,1,41.6,8,3.2,3.2,0,0,1,44.8,4.8Zm12.8,0A3.2,3.2,0,1,1,54.4,8,3.2,3.2,0,0,1,57.6,4.8Zm12.8,0A3.2,3.2,0,1,1,67.2,8,3.2,3.2,0,0,1,70.4,4.8Zm12.8,0A3.2,3.2,0,1,1,80,8,3.2,3.2,0,0,1,83.2,4.8ZM96,4.8A3.2,3.2,0,1,1,92.8,8,3.2,3.2,0,0,1,96,4.8Zm12.8,0A3.2,3.2,0,1,1,105.6,8,3.2,3.2,0,0,1,108.8,4.8Zm12.8,0A3.2,3.2,0,1,1,118.4,8,3.2,3.2,0,0,1,121.6,4.8Z"/><g><path fill="#302b44" fill-opacity="1" d="M-42.7,3.84A4.16,4.16,0,0,1-38.54,8a4.16,4.16,0,0,1-4.16,4.16A4.16,4.16,0,0,1-46.86,8,4.16,4.16,0,0,1-42.7,3.84Zm12.8-.64A4.8,4.8,0,0,1-25.1,8a4.8,4.8,0,0,1-4.8,4.8A4.8,4.8,0,0,1-34.7,8,4.8,4.8,0,0,1-29.9,3.2Zm12.8-.64A5.44,5.44,0,0,1-11.66,8a5.44,5.44,0,0,1-5.44,5.44A5.44,5.44,0,0,1-22.54,8,5.44,5.44,0,0,1-17.1,2.56Z"/><animateTransform attributeName="transform" type="translate" values="23 0;36 0;49 0;62 0;74.5 0;87.5 0;100 0;113 0;125.5 0;138.5 0;151.5 0;164.5 0;178 0" calcMode="discrete" dur="1170ms" repeatCount="indefinite"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

@@ -0,0 +1,26 @@
$(() => {
// Enable any tooltips on the page
$('[data-toggle="tooltip"]').tooltip()
// Enable masonry layout
$('.masonry').each(function() {
var opts = { itemSelector: '.masonry-item' }
if ($(this).hasClass('masonry-horizontal')) opts.horizontalOrder = true
$(this).masonry(opts)
})
// Resize textareas to fit their content
$('textarea').each(function() {
$(this).height($(this)[0].scrollHeight)
})
// Use google analytics in production
if (!window.location.hostname.includes('dev')) {
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-167178542-1');
}
});
@@ -0,0 +1,45 @@
(function($) {
"use strict"; // Start of use strict
// Add reorder icon to .card-inline
$('.card-inline').prepend('<div class="inline-icon" data-toggle="tooltip" title="Toggle bullet view"><i class="fas fa-stream"></i></div>')
// Define a function to toggle the view
const toggleBulletView = function() {
var that = $(this)
that.closest('.card').toggleClass('inline').closest('.masonry').masonry()
setTimeout(() => {
that.tooltip('hide')
}, 2000);
return false
}
// Add the function to clicks on the menu button, and/or taps anywhere on the card
$('.card-inline .inline-icon').on('click', toggleBulletView)
$('.card-inline').on('touchstart', toggleBulletView)
// Smooth scrolling using jQuery easing
$('a.js-scroll-trigger[href*="#"]:not([href="#"])').click(function() {
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
var target = $(this.hash);
var hash = this.hash;
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
$('html, body').animate({
scrollTop: (target.offset().top)
}, 1000, "easeInOutExpo");
return false;
}
}
});
// Closes responsive menu when a scroll trigger link is clicked
$('.js-scroll-trigger').click(function() {
$('.navbar-collapse').collapse('hide');
});
// Activate scrollspy to add active class to navbar items on scroll
$('body').scrollspy({
target: '#side-nav'
});
})(jQuery); // End of use strict
@@ -0,0 +1,72 @@
description = "Default Layout"
==
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha256-aAr2Zpq8MZ+YA/D6JtRD3xtrwpEz2IqOS+pWD/7XKIw=" crossorigin="anonymous" />
<link href="https://fonts.googleapis.com/css2?family=Cinzel&family=Raleway:ital@0;1&display=swap" rel="stylesheet">
<link href="{{ 'assets/css/theme.css'|theme }}" rel="stylesheet">
{% styles %}
<link rel="icon" type="image/png" sizes="32x32" href="{{ 'assets/images/favicon-32x32.png'|theme }}">
<link rel="icon" type="image/png" sizes="16x16" href="{{ 'assets/images/favicon-16x16.png'|theme }}">
<link rel="me" href="https://mstdn.ca/@jaywll">
<title>{{ this.page.title }} - Ja.son-Williams.ca</title>
</head>
<body id="page-top" class="d-flex flex-column">
<div id="page-content">
<header>
<nav class="navbar navbar-expand-lg navbar-light" id="main-nav">
<a class="navbar-brand" href="/"><span class="d-none d-sm-inline-block">Jason <span class="altaccent">Williams</span></span></a></a>
{% partial 'mainmenu' %}
</nav>
</header>
<main>
<div class="container-fluid">
{% page %}
</div>
</main>
</div>
<footer class="footer static-bottom">
<div class="container-fluid">
<div class="row">
<div class="col-md-4">
<p>©2020 Jason Williams</p>
<ul class="d-none d-md-block">
<li><a href="/">Home</a></li>
<li><a href="/resume">Résumé</a></li>
<li><a href="/feed">Feed</a></li>
<li><a href="/contact">Contact Me</a></li>
<li><a href="/pgp">PGP Public Key</a></li>
</ul>
{% component 'CurrentInfo' %}
<p>Made with <i class="fas fa-heart"></i> in #YYC<br><a href="https://www.madeinyyc.com/"><img src="{{ 'assets/images/madeinyyc.png'|theme }}"></a></p>
</div>
<div class="col-md-4">
<!-- <p>Recent Projects</p> -->
</div>
<div class="col-md-4">
<!-- <p>Recent Blog Posts</p> -->
</div>
</div>
</footer>
{% if 'dev' not in url('/') %}<script async src="https://www.googletagmanager.com/gtag/js?id=UA-167178542-1"></script>{% endif %}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js" integrity="sha256-x3YZWtRjM8bJqf48dFAv/qmgL68SI4jqNWeSLMZaMGA=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha256-OFRAJNoaD8L3Br5lglV7VyLRf0itmoBzWUoM+Sji4/8=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/js/all.min.js" integrity="sha256-KzZiKy0DWYsnwMF+X1DvQngQ2/FxF7MF3Ff72XcpuPs=" crossorigin="anonymous"></script>
{% framework extras %}
<script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js"></script>
<script src="{{ 'assets/javascript/common.js' | theme }}"></script>
{% scripts %}
</body>
</html>
@@ -0,0 +1,60 @@
description = "Page with a Submenu"
==
<?php
function onStart()
{
$this['sideMenu'] = 'resumemenu';
$this->addCss('assets/css/resume.css');
$this->addJs('https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js');
$this->addJs('assets/javascript/resume.js');
}
?>
==
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha256-aAr2Zpq8MZ+YA/D6JtRD3xtrwpEz2IqOS+pWD/7XKIw=" crossorigin="anonymous" />
<link href="https://fonts.googleapis.com/css2?family=Cinzel&family=Raleway:ital@0;1&display=swap" rel="stylesheet">
<link href="{{ 'assets/css/theme.css'|theme }}" rel="stylesheet">
<link href="{{ 'assets/css/sidemenu.css'|theme }}" rel="stylesheet">
{% styles %}
<link rel="icon" type="image/png" sizes="32x32" href="{{ 'assets/images/favicon-32x32.png'|theme }}">
<link rel="icon" type="image/png" sizes="16x16" href="{{ 'assets/images/favicon-16x16.png'|theme }}">
<title>{{ this.page.title }} - Ja.son-Williams.ca</title>
</head>
<body id="page-top" class="d-flex flex-column">
<div id="page-content">
<header>
<nav class="navbar navbar-expand-lg navbar-light" id="main-nav">
<a class="navbar-brand d-inline-block d-lg-none" href="/"></a>
{% partial 'mainmenu' %}
</nav>
</header>
<nav class="navbar navbar-expand-lg navbar-dark" id="side-nav">
{% partial sideMenu %}
</nav>
<main>
<div class="container-fluid">
{% page %}
</div>
</main>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js" integrity="sha256-x3YZWtRjM8bJqf48dFAv/qmgL68SI4jqNWeSLMZaMGA=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha256-OFRAJNoaD8L3Br5lglV7VyLRf0itmoBzWUoM+Sji4/8=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/js/all.min.js" integrity="sha256-KzZiKy0DWYsnwMF+X1DvQngQ2/FxF7MF3Ff72XcpuPs=" crossorigin="anonymous"></script>
{% framework extras %}
<script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js"></script>
<script src="{{ 'assets/javascript/common.js' | theme }}"></script>
{% scripts %}
</body>
</html>
+50
View File
@@ -0,0 +1,50 @@
title = "Contact Me"
url = "/contact"
layout = "default"
is_hidden = 0
[emptyForm contactform]
group = "Contact Me"
rules[name] = "requred"
rules[email] = "required|email"
rules[message] = "required"
messages_success = "Your form was successfully submitted"
messages_errors = "There were errors with your submission"
mail_enabled = 1
mail_subject = "Contact Me"
mail_recipients[] = "[email protected]"
mail_replyto = "email"
reset_form = 1
inline_errors = "disabled"
sanitize_data = "disabled"
anonymize_ip = "disabled"
recaptcha_enabled = 1
recaptcha_theme = "light"
recaptcha_type = "image"
recaptcha_size = "invisible"
emails_date_format = "Y-m-d"
==
<div class="row">
<div class="col-lg-7">
<h1>Contact Me</h1>
<p>The simplest and quickest way to contact me is by completing the form below.</p>
{% component 'contactform' %}
</div>
<div class="col-lg-5">
<h2>Old School</h2>
<p>Sometimes the more traditional ways of getting in touch are just better...</p>
<p><img style="width: 100%;" src="https://api.mapbox.com/styles/v1/jason32dev/ckgehopjc2o1y19o09aqs4x11/static/pin-l+B05C71(-113.9771279,51.1112454)/-113.9771279,51.1112454,14,0/545x150@2x?access_token=pk.eyJ1IjoiamFzb24zMmRldiIsImEiOiJjazFsNHd5djcwMXptM2htbW8zM3MyZGxuIn0.-TtNNGFysQPQRfGR1P8DUA"></p>
<p>3699 63 Ave NE,<br>
Calgary, AB, T3J 0G7</p>
<p><i class="fas fa-phone"></i> <a href="tel:+15878853458">(587) 885-3458</a><br>
<i class="fas fa-fax"></i> <a href="fax:+15878853459">(587) 885-3459</a></p>
<h2>New Cool</h2>
<p>...and sometimes it's better to keep up with the times.</p>
{% partial 'social' nocode = true nocontact = true %}
</div>
<div class="col-lg-7">
<h2>Encryption</h2>
<p>If you wish, you may use my <a href="/pgp"><i class="fas fa-key"></i> PGP public key</a> to encrypt anything that you send me.</p>
</div>
</div>
+48
View File
@@ -0,0 +1,48 @@
title = "I Found Your Thing!"
url = "/found/:thing"
layout = "default"
is_hidden = 0
[emptyForm foundform]
group = "Found Item"
rules[name] = "required"
rules[message] = "required"
rules[contactinfocheck] = "required"
rules_messages[contactinfocheck.required] = "I need a way to get back to you! Please make sure you've included your contact information in your message, and check the box to confirm this."
messages_success = "Your form was successfully submitted"
messages_errors = "There were errors with your submission"
mail_enabled = 1
mail_subject = "Your {{ thing }} has been found!"
mail_recipients[] = "[email protected]"
inline_errors = "disabled"
sanitize_data = "disabled"
anonymize_ip = "disabled"
recaptcha_theme = "light"
recaptcha_type = "image"
recaptcha_size = "normal"
emails_date_format = "Y-m-d"
==
<?php
function onStart()
{
$this['thing'] = $this->param('thing');
}
?>
==
<div class="row">
<div class="col-lg-7">
<h1>Hey! You found my {{ thing }}!</h1>
<p>Thank you very much for locating my missing belongings, I very much appreciate it. To get it back to me, please fill out the form below. Don't forget to tell me how I can get back in touch with you by leaving me your email or phone number.</p>
<p>Alternatively, you can reach me on one of the social platforms linked to the right.</p>
{% component 'foundform' %}
</div>
<div class="col-lg-5">
<h2>Find Me On The Socials</h2>
{% partial 'social' noinfrequent = true nocode = true %}
<h2>Just Call or Text</h2>
<p>Just want a simple phone number you can reach me at? Fine.<br>
<i class="fas fa-phone"></i> <a href="tel:+15878853458">(587) 885-3458</a></p>
</div>
</div>
+316
View File
@@ -0,0 +1,316 @@
title = "Résumé"
url = "/resume"
layout = "sidesubmenu"
is_hidden = 0
==
<section class="resume-section d-flex align-items-center" id="summary">
<div class="w-100">
<h1 class="master">Jason <span class="altaccent">Williams</span></h1>
<div class="mt-n1 mb-5">3699 63 Ave NE · Calgary, AB, T3J 0G7 · <a href="tel:+18252575025">(825) 257-5025</a> · <a href="/contact">&#106;&#64;&#115;&#111;&#110;&#45;&#119;&#105;&#108;&#108;&#105;&#97;&#109;&#115;&#46;&#99;&#97;</a>
</div>
<p class="main">I've built my career on the notion that <em>how</em> work gets done is as impactful to results as <em>what</em> that work is. Most recently I've been leading the effort to bring ATB's ten year retail strategy to life.</p>
<p class="mb-5">Along the way I've developed an expertise in product management, lean six sigma, design thinking, agile software development, process management and gained experience in recruitment, coaching and people development, data visualization and even a little web development.</p>
{% partial 'social' noinfrequent = true nocode = true %}
</div>
</section>
<section class="resume-section d-flex align-items-center" id="skills">
<div class="w-100">
<h1>Skills &amp; Expertise</h1>
<div class="col-container masonry masonry-horizontal">
<div class="masonry-item col-sm-6 col-xl-4">
<div class="card card-inline inline">
<div class="card-body">
<h2 class="card-title">Product Management</h2>
<ul>
<li>Product strategy and roadmap development</li>
<li>Project charter development</li>
<li>Design thinking; Design sprint facilitation</li>
<li>User story mapping</li>
<li>Agile product ownership</li>
<li>Backlog grooming</li>
<li>Prioritization</li>
</ul>
</div>
</div>
</div>
<div class="masonry-item col-sm-6 col-xl-4">
<div class="card card-inline inline">
<div class="card-body">
<h2 class="card-title">Project Management</h2>
<ul>
<li>Business case development</li>
<li>Stakeholder management</li>
<li>Agile project management, especially Scrum</li>
<li>SAFe</li>
<li>Quality metric definition and control</li>
<li>Work breakdown and scheduling</li>
<li>Budgeting</li>
<li>Change management</li>
<li>Risk management</li>
<li>Communication planning</li>
</ul>
</div>
</div>
</div>
<div class="masonry-item col-sm-6 col-xl-4">
<div class="card card-inline inline">
<div class="card-body">
<h2 class="card-title">Lean Six-Sigma</h2>
<ul>
<li>6σ project management (DMAIC and DMADV)</li>
<li>Value stream mapping</li>
<li>Value-add analysis and waste (muda) reduction</li>
<li>Kaizen facilitation</li>
<li>Root causes analysis</li>
<li>Visual management</li>
<li>Kanban</li>
</ul>
</div>
</div>
</div>
<div class="masonry-item col-sm-6 col-xl-4">
<div class="card card-inline inline">
<div class="card-body">
<h2 class="card-title">Business Analysis</h2>
<ul>
<li>Opportunity evaluation</li>
<li>Requirement elicitation and documentation</li>
<li>Process and workflow modelling</li>
<li>Risk assessment, tracking and management</li>
<li>Solution analysis</li>
<li>Solution validation and assessment</li>
<li>Functional design</li>
</ul>
</div>
</div>
</div>
<div class="masonry-item col-sm-6 col-xl-4">
<div class="card card-inline inline">
<div class="card-body">
<h2 class="card-title">Business Technology</h2>
<ul>
<li>Google G-Suite</li>
<li>Microsoft Office suite, including Visio, Project</li>
<li>JIRA</li>
<li>Confluence</li>
<li>Microsoft SharePoint
<li>ARIS (business process modelling and management tool)</li>
<li>Google Data Studio</li>
<li>SAP (including SAP personas)</li>
<li>VBA, Google Apps Script, JavaScript</li>
<li>MiniTab (6σ statistical analysis tool)</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="resume-section d-flex align-items-center" id="experience">
<div class="w-100">
<h1 class="mb-0">Experience Highlights</h1>
<p class="mb-5 ml-1"><i class="fab fa-linkedin"></i> See more of my career experience on <a href="#">my LinkedIn profile</a>.</p>
<div class="resume-item d-flex flex-column flex-md-row justify-content-between mb-5">
<div class="resume-content">
<h2 class="mb-0">Senior Business Architect</h2>
<h3 class="mb-3">ATB Financial · Calgary, Canada</h3>
<p>As a founding member of a new business architecture practice at ATB, I am responsible for bridging business strategy and execution by designing scalable business models, capabilities and target state architectures. I lead architectural assessments across key business domains to identify friction, streamline operations and align technology and business investments with long-term strategic priorities and business goals.</p>
</div>
<div class="resume-date text-md-right">
<span class="text-primary">January 2024 - Present</span>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row justify-content-between mb-5">
<div class="resume-content">
<h2 class="mb-0">Director, Strategic Initiatives</h2>
<h3 class="mb-3">ATB Financial · Calgary, Canada</h3>
<p>My team and I are responsible for taking ATB's strategies that relate to our retail branch network and turning them into concrete actions. We lead, assemble cross-functional teams to take on, and are responsible for the successful delivery of all manner of projects that support a vision of banking for the next decade.</p>
</div>
<div class="resume-date text-md-right">
<span class="text-primary">October 2020 - January 2024</span>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row justify-content-between mb-5">
<div class="resume-content">
<h2 class="mb-0">Senior Manager, Intelligent Process Automation</h2>
<h3 class="mb-3">ATB Financial · Calgary, Canada</h3>
<p>As a product manager for automation I brought together elements of design thinking and Lean with techniques for process management and Agile project management to help grow ATB’s capabilities in intelligent process automation.</p>
<p>I led squads responsible for automating loan servicing, Mastercard and deposit maintenance processes, and also established a federated model that established a centre of excellence within the automation team while decentralizing ATB's automation capabilities.</p>
</div>
<div class="resume-date text-md-right">
<span class="text-primary">January 2018 - October 2020</span>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row justify-content-between mb-5">
<div class="resume-content">
<h2 class="mb-0">Manager, Work Reimagined Labs</h2>
<h3 class="mb-3">ATB Financial · Calgary, Canada</h3>
<p>Responsible for helping teams across the organization reimagine their business processes to better take advantage of new, more collaborative tools. My focus was on establishing a framework and a playbook for this that borrowed heavily from the “Design Sprint” methodology for design thinking popularized at Google Ventures. I led a team of lab facilitators.</p>
</div>
<div class="resume-date text-md-right">
<span class="text-primary">September 2017 - January 2018</span>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row justify-content-between mb-5">
<div class="resume-content">
<h2 class="mb-0">Project Manager, Retail Financial Services</h2>
<h3 class="mb-3">ATB Financial · Calgary, Canada</h3>
<p>Expanding upon my already proven ability to lead projects from inception to completion on time and on budget, the project manager role afforded me the opportunity to build and lead effective project teams. Responsible for project planning, management of project stakeholders, communication, risk, schedule, budget, quality, and ultimate successful delivery of projects.</p>
<p>My primary focus was leading projects within the retail arm of the bank, I also acted as a single point of contact representing the retail banking business unit on large-scale, enterprise wide initiatives, playing a leading role in stakeholder, resource and organizational change management.</p>
</div>
<div class="resume-date text-md-right">
<span class="text-primary">November 2014 - September 2017</span>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row justify-content-between mb-5">
<div class="resume-content">
<h2 class="mb-0">Senior Business Analyst, Business Transformation</h2>
<h3 class="mb-3">ATB Financial · Calgary, Canada</h3>
<p>Working with the Business Transformation team allowed me to take the work I had been doing on behalf of ATB's Customer Acquisition and Care teams for some time and apply the same approach, methodologies and tools to initiatives with a broader scope and wider benefit.</p>
<p>Taking on a mix of business analysis and project management functions, my primary focus was working closely with technical partners and stakeholders, using six sigma and lean methodologies to deliver optimized business processes along with technology that supported and complimented them.</p>
</div>
<div class="resume-date text-md-right">
<span class="text-primary">May 2013 - November 2014</span>
</div>
</div>
</div>
</section>
<section class="resume-section d-flex align-items-center" id="education">
<div class="w-100">
<h1>Education</h1>
<div class="resume-item d-flex flex-column flex-md-row justify-content-between mb-5">
<div class="resume-content">
<h2 class="mb-0">Extension Certificate, Project Management</h2>
<h3 class="mb-3">Mount Royal University · Calgary, Canada</h3>
<p>Achieved an A+ grade in a project management extension certificate. This program provides a thorough foundation in the project management knowledge areas recognized by the project management institute. It also provides the foundation to prepare for the Certified Associate in Project Management (CAPM)® and Project Management Professional (PMP)® credential.</p>
</div>
<div class="resume-date text-md-right">
<span class="text-primary">2014 - 2016</span>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row justify-content-between mb-5">
<div class="resume-content">
<h2 class="mb-0">Extension Certificate, Business Analysis</h2>
<h3 class="mb-3">Mount Royal University · Calgary, Canada</h3>
<p>Achieved an A+ grade in a business analysis extension certificate. This course explored the role and responsibilities of today’s business analyst, including industry recognized skills, tasks and knowledge areas.</p>
</div>
<div class="resume-date text-md-right">
<span class="text-primary">2011 - 2012</span>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row justify-content-between mb-5">
<div class="resume-content">
<h2 class="mb-0">A-Levels</h2>
<h3 class="mb-3">Gorseinon Tertiary College · Swansea, United Kingdom</h3>
<p>Achieved A-Level qualifications in Mathematics (Pure & Statistics), Economics and Computer Science, and an AS-Level qualification in Accounting.</p>
</div>
<div class="resume-date text-md-right">
<span class="text-primary">1997 - 1999</span>
</div>
</div>
<div class="resume-item d-flex flex-column flex-md-row justify-content-between mb-5">
<div class="resume-content">
<h2 class="mb-0">General Certificate of Secondary Education</h2>
<h3 class="mb-3">Pontarddulais Comprehensive School · Swansea, United Kingdom</h3>
<p>Achieved GCSEs (UK equivalent of high-school) in English, English Literature, Mathematics, Science (double award), Information Systems, History, Music, French and German.</p>
</div>
<div class="resume-date text-md-right">
<span class="text-primary">1992 - 1997</span>
</div>
</div>
</div>
</section>
<section class="resume-section d-flex align-items-center" id="certifications">
<div class="w-100">
<h1>Certifications</h1>
<h2>First Aid</h2>
<div class="subheading">Standard First Aid, Level C CPR and AED</div>
<p>St John Ambulance Canada; Awarded October 2011</p>
<h2>Call Handling</h2>
<div class="subheading">Call Handling Operations NVQ, Level 3</div>
<p>City &amp; Guilds UK; Awarded 2005</p>
<div class="subheading">Call Handling NVQ, Level 2</div>
<p>City &amp; Guilds UK; Awarded 2003</p>
<h2>Customer Service</h2>
<div class="subheading">Customer Service NVQ, Level 2</div>
<p>City &amp; Guilds UK; Awarded 2003</p>
</div>
</section>
<section class="resume-section d-flex align-items-center" id="press">
<div class="w-100">
<h1>Press</h1>
<div class="col-container masonry masonry-horizontal">
<div class="masonry-item col-sm-6 col-xl-4">
<div class="card">
<img class="card-img-top" src="{{ 'istock-1051617224-100798650-large.jpg' | media }}">
<div class="card-body">
<h2 class="card-title">Connected RPA Delivers A Digital Workforce</h2>
<h3>Computerworld · June 2019</h3>
<p class="card-text">Robotic Process Automation is poised to make a positive impact on how work gets done. At the recent Blue Prism World event in Orlando, the potential for RPA was center stage. Find out what connected RPA can do for business - today and tomorrow.</p>
<a href="https://www.computerworld.com/article/3401137/connected-rpa-delivers-a-digital-workforce.html" class="card-link float-right icon-link" data-toggle="tooltip" title="Read article"><i class="fas fa-share"></i></a>
</div>
</div>
</div>
<div class="masonry-item col-sm-6 col-xl-4">
<div class="card">
<img class="card-img-top" src="{{ 'disrupting-industry.png' | media }}">
<div class="card-body">
<h2 class="card-title">This Canadian financial institution disrupted their industry with AI!</h2>
<h3>AI Week · August 2018</h3>
<p class="card-text">Any discussion of insurgents in the financial services industry and companies using artificial intelligence (AI) to get business value from their data would be incomplete if it didn't include ATB Financial, the largest Alberta-based financial...</p>
<a href="http://aiweek.io/finance-banking/this-canadian-financial-institution-disrupted-their-industry-with-ai/" class="card-link float-right icon-link" data-toggle="tooltip" title="Read article"><i class="fas fa-share"></i></a>
</div>
</div>
</div>
<div class="masonry-item col-sm-6 col-xl-4">
<div class="card">
<img class="card-img-top" src="{{ 'atb-financial-g-suite.jpg' | media }}">
<div class="card-body">
<h2 class="card-title">Why ATB Financial moved its entire organization to G Suite</h2>
<h3>TechRepublic · March 2018</h3>
<p class="card-text">This financial institution shares the changes and challenges it experienced while transitioning to G Suite.</p>
<a href="https://www.techrepublic.com/article/why-atb-financial-moved-its-entire-organization-to-g-suite/" class="card-link float-right icon-link" data-toggle="tooltip" title="Read article"><i class="fas fa-share"></i></a>
</div>
</div>
</div>
<div class="masonry-item col-sm-6 col-xl-4">
<div class="card">
<img class="card-img-top" src="{{ 'bryan-kenny.jpg' | media }}">
<div class="card-body">
<h2 class="card-title">High-tech bank helps Edmonton's homeless access financial services</h2>
<h3>CBC · September 2017</h3>
<p class="card-text">In what's believed to be a first for Alberta, a bank is using biometric technology to help homeless people manage their money.</p>
<a href="https://www.cbc.ca/news/canada/edmonton/four-directions-financial-biometric-technology-homeless-1.4300538" class="card-link float-right icon-link" data-toggle="tooltip" title="Read article"><i class="fas fa-share"></i></a>
</div>
</div>
</div>
</div>
</div>
</section>
+15
View File
@@ -0,0 +1,15 @@
title = "Uh oh"
url = "/404"
layout = "default"
is_hidden = 0
==
<div class="row">
<div class="col-lg-7">
<h1>Uh oh</h1>
<iframe width="100%" height="300" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/412499226&color=%23ff5500&auto_play=true&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe>
</div>
<div class="col-lg-5">
<p style="margin-top: 6rem;">Well this is embarassing for one of us. The page you asked for is nowhere to be found. Bad link? Mistyped address? I'm not sure.</p>
<p>There's not really all that much stuff here, so you could always try making a selection from the menu at the top right of the page. If you think something's wrong, <a href="/contact">contact me</a>.
</div>
</div>
+11
View File
@@ -0,0 +1,11 @@
title = "Welcome"
url = "/"
is_hidden = 0
==
<?php
function onStart()
{
return Redirect::to('resume');
}
?>
==
@@ -0,0 +1,28 @@
description = "Contact Me Form"
==
<form data-request="{{ __SELF__ }}::onFormSubmit">
{{ form_token() }}
<div id="{{ __SELF__ }}_forms_flash"></div>
<div class="form-group">
<input type="text" id="name" name="name" class="form-control" placeholder="Your Name" required autofocus>
</div>
<div class="form-group">
<input type="email" id="email" name="email" class="form-control" placeholder="Email Address" required>
</div>
<div class="form-group">
<textarea id="message" name="message" rows="8" class="form-control" placeholder="Message"></textarea>
</div>
<div class="form-group">
{% partial '@recaptcha' %}
</div>
<button id="simpleContactSubmitButton" type="submit" class="btn btn-outline-primary">Send</button>
<button type="reset" class="btn btn-outline-secondary">Cancel</button>
</form>
@@ -0,0 +1,30 @@
description = "Found Form"
==
<form data-request="{{ __SELF__ }}::onFormSubmit">
{{ form_token() }}
<div id="{{ __SELF__ }}_forms_flash"></div>
<div class="form-group">
<input type="text" id="name" name="name" class="form-control" placeholder="Your Name" required autofocus>
</div>
<div class="form-group">
<textarea id="message" name="message" rows="8" class="form-control" placeholder="Your Message">Hey! I found your {{ thing }}!&#10;&#10;Here's how you can reach me to get it back: </textarea>
<input type="hidden" id="thing" name="thing" value="{{ thing }}">
</div>
<div class="form-check">
<input type="checkbox" id="contactinfocheck" name="contactinfocheck" class="form-check-input" required>
<label for="contactinfocheck" class="form-check-label">I confirm I have included my contact info in the message above so you can get back to me.</label>
</div>
<div class="form-group">
{% partial '@recaptcha' %}
</div>
<button id="simpleContactSubmitButton" type="submit" class="btn btn-outline-primary">Send</button>
<button type="reset" class="btn btn-outline-secondary">Cancel</button>
</form>
@@ -0,0 +1,31 @@
description = "Main Site Menu"
==
<?php
function onStart()
{
// Determine the acive section of the site in order to customize the navigation
$this['activeSection'] = explode('/', $_SERVER['REQUEST_URI'])[1];
}
?>
==
<button class="navbar-toggler ml-auto" type="button" data-toggle="collapse" data-target=".navbars" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse navbars" id="brrp">
<ul class="navbar-nav ml-auto">
<!--<li class="nav-item {% if activeSection == '' %}active{% endif %}">
<a class="nav-link" href="/">Home {% if activeSection == '' %}<span class="sr-only">(current)</span>{% endif %}</a>
</li>
<li class="nav-item {% if activeSection == 'feed' %}active{% endif %}">
<a class="nav-link" href="/feed">Feed {% if activeSection == 'feed' %}<span class="sr-only">(current)</span>{% endif %}</a>
</li>-->
<li class="nav-item {% if activeSection == 'resume' %}active{% endif %}">
<a class="nav-link" href="/resume">Résumé</a>
</li>
<li class="nav-item {% if activeSection == 'contact' %}active{% endif %}">
<a class="nav-link" href="/contact">Contact Me</a>
</li>
</ul>
</div>
@@ -0,0 +1,30 @@
description = "Side Menu for Resume"
==
<a class="navbar-brand js-scroll-trigger d-none d-lg-inline-block" href="#page-top">
<span>
<img class="img-fluid img-profile rounded-circle mx-auto mb-2" src="{{ 'assets/images/resume-photo.png'|theme }}" alt="">
</span>
</a>
<div class="collapse navbar-collapse navbars">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#summary">Summary</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#skills">Skills &amp; Expertise</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#experience">Experience</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#education">Education</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#certifications">Certifications</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#press">Press</a>
</li>
</ul>
</div>
@@ -0,0 +1,47 @@
description = "Social Media Links"
==
<div class="social-icons">
{% if not nosocial %}
<a href="https://www.linkedin.com/in/jaywll/" data-toggle="tooltip" title="LinkedIn">
<i class="fab fa-linkedin-in"></i>
</a>
<a href="https://twitter.com/jaywll" data-toggle="tooltip" title="Twitter">
<i class="fab fa-twitter"></i>
</a>
<a href="https://www.instagram.com/jaywll/" data-toggle="tooltip" title="Instagram">
<i class="fab fa-instagram"></i>
</a>
<a href="https://jaywll.co/category/blog/" data-toggle="tooltip" title="Wordpress">
<i class="fab fa-wordpress-simple"></i>
</a>
{% if not noinfrequent %}
<a href="https://www.facebook.com/jaywll/" data-toggle="tooltip" title="Facebook">
<i class="fab fa-facebook-f"></i>
</a>
{% if not nocontact %}
<a href="https://foursquare.com/jaywll" data-toggle="tooltip" title="Foursquare">
<i class="fab fa-foursquare"></i>
</a>
<a href="https://www.goodreads.com/jaywll" data-toggle="tooltip" title="Goodreads">
<i class="fab fa-goodreads-g"></i>
</a>
<a href="https://www.vivino.com/users/jaywll" data-toggle="tooltip" title="Vivino">
<i class="fas fa-wine-glass-alt"></i>
</a>
{% endif %}
{% endif %}
{% endif %}
{% if not nocode %}
<a href="https://glitch.com/@JayWll" data-toggle="tooltip" title="Glitch">
<i class="fab fa-node-js"></i>
</a>
<a href="https://code.jaywll.co/explore/repos" data-toggle="tooltip" title="Code Repository">
<i class="fab fa-git-alt"></i>
</a>
{% endif %}
{% if not nocontact %}
<a href="/contact" data-toggle="tooltip" title="Contact Me">
<i class="fas fa-envelope"></i>
</a>
{% endif %}
</div>
+3 -3
View File
@@ -1,5 +1,5 @@
name: Ja.son-williams.ca
description: 'Custom theme generated for https://ja.son-williams.ca/'
description: 'Custom theme generated for https://ja.son-williams.ca'
author: 'Jason Williams'
homepage: 'https://ja.son-williams.ca/'
code: ca.son-williams.ja
homepage: 'https://ja.son-williams.ca'
code: ca.son-williams.ca