You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
6.7 KiB

extends template_70s
block content
.container#home
.inner
section.hero.full-height
.stars
each val in [1, 2, 3, 4, 5, 6]
svg(id=('star-' + val) width='47.581146mm' height='78.547104mm' viewbox='0 0 47.581146 78.547104' version='1.1' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg')
sodipodi:namedview#namedview7(pagecolor='#ffffff' bordercolor='currentColor' borderopacity='0.25' inkscape:showpageshadow='2' inkscape:pageopacity='0.0' inkscape:pagecheckerboard='0' inkscape:deskcolor='#d1d1d1' inkscape:document-units='mm' showgrid='false')
defs#defs2
g#layer1(inkscape:label='Layer 1' inkscape:groupmode='layer' transform='translate(-81.41733,-109.42827)')
path#path1153(style='fill:currentColor;fill-opacity:0;stroke:currentColor;stroke-width:7;stroke-linecap:round;stroke-dasharray:none' d='m 105,112.92827 c 0,0 1.66434,35.57173 -20.082663,35.57173' inkscape:export-filename='star.svg' inkscape:export-xdpi='96' inkscape:export-ydpi='96')
path#path1153-3(style='fill:currentColor;fill-opacity:0;stroke:currentColor;stroke-width:7;stroke-linecap:round;stroke-dasharray:none' d='m 105.41582,112.92827 c 0,0 -1.66434,35.57173 20.08267,35.57173')
path#path1153-6(style='fill:currentColor;fill-opacity:0;stroke:currentColor;stroke-width:7;stroke-linecap:round;stroke-dasharray:none' d='m 105,184.47538 c 0,0 1.66434,-35.57173 -20.082665,-35.57173')
path#path1153-3-7(style='fill:currentColor;fill-opacity:0;stroke:currentColor;stroke-width:7;stroke-linecap:round;stroke-dasharray:none' d='m 105.41582,184.47538 c 0,0 -1.66434,-35.57173 20.08267,-35.57173')
.hero-box
h1 Garrett Mills
p Software engineer, computer scientist, and nerd.
//p Hi, there. My name is Garrett, and I'm a computer scientist, software engineer, and speaker.
.section-border
.section-border-inner-1
.section-border-inner-2
section#about
h2 about me
.about-container
.img
img(src="/assets/img/profile.jpg" width=300 height=300)
.about
p Hi, I'm Garrett. Welcome to my corner of the internet.
p I'm a computer scientist and software engineer specializing in software/systems architectures and programming languages. Some of my more recent projects include <a href="https://github.com/swarmlang/swarm" target="_blank">the Swarm programming language</a>, <a href="https://extollo.garrettmills.dev" target="_blank">the Extollo framework</a>, and <a href="https://code.garrettmills.dev/Starship/CoreID" target="_blank">the CoreID SSO server</a>.
p I sometimes write <a href="#{named('blog')}">blog posts</a> and <a href="https://code.garrettmills.dev/garrettmills" target="_blank">publish code</a> from my projects.
.section-border.odd
.section-border-inner-1
.section-border-inner-2
if workItemYears && workItemYears.length
section#work
h2 what I'm working on
.timeline-group
each year in workItemYears
.work-container(class=(workItemHiddenYears.includes(year) ? 'timeline-item theme-hide' : 'timeline-item'))
.timeline-container
.timeline-year #{year}
each item in workItemGroups[year]
.work-container(class=(item.endDate ? 'timeline-item theme-hide' : 'timeline-item'))
.timeline-container
.timeline-content
.range-small #{item.rangeDisplay()}
h3 !{item.name}
p !{item.description}
.work-container
button#timeline-view-all show past work
.section-border
.section-border-inner-1
.section-border-inner-2
section#contact
h2 get in touch
.contact-container
.message
p I'd love to hear from you if you have questions or inquiries related to me or my projects. You can get in touch by text, e-mail, or using this form. I also occasionally share thoughts on my <a href="/blog">blog</a>.
p <b>E-mail:</b> <a href="mailto:shout@garrettmills.dev">shout@garrettmills.dev</a>
.form
form#contact-form(method='post' action=named('contact'))
.form-group
input#contactEmail.form-control(type='email' name='email' placeholder='E-Mail Address' required)
input#contactEEmail(type='email' name='e-mail')
.form-group
input#contactFirst.form-control(name='name' placeholder='Name' required)
.form-group
textarea.form-control#contactMessage(name='message' placeholder='Message' required rows=6)
.form-group
button Send
.section-border.odd
.section-border-inner-1
.section-border-inner-2
section#recent
h2 latest updates
each item in feedPosts
.feed-item
.feed-category(id='feedPostTag_' + item.feedPostId)
.tag #{item.tag}
span
if !item.visible
p.text (draft)
p.text !{item.body}
.bottom
.stamp <a href="#{named('feed')}##{item.feedPostId}" class="feed-edit-button">permalink</a>&nbsp;&nbsp;|&nbsp;&nbsp;#{item.postedAt.toLocaleString()}
.row.mt-4
.col-12.text-center
a.button(href="/feed") view all
block append script
script.
document.getElementById('contactEEmail').style.display = 'none'