diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..3a287c4
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,13 @@
+# editorconfig.org
+root = true
+
+[*]
+indent_style = space
+indent_size = 2
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = false
+
+[*.md]
+trim_trailing_whitespace = false
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..ebe0199
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,5 @@
+_assets/css/vendor/* linguist-vendored
+_assets/js/plugins/* linguist-vendored
+_assets/js/vendor/* linguist-vendored
+assets/fonts/* linguist-vendored
+assets/js/vendor/* linguist-vendored
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5c4866d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,14 @@
+*.gem
+*.sublime-project
+*.sublime-workspace
+.bundle
+.DS_Store
+.jekyll-metadata
+.sass-cache
+_asset_bundler_cache
+_site
+codekit-config.json
+example/_site
+Gemfile.lock
+node_modules
+npm-debug.log*
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..87270bc
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,19 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/)
+and this project adheres to [Semantic Versioning](http://semver.org/).
+
+## [Unreleased] - YYYY-MM-DD
+### Added
+- for new features
+
+### Changed
+- for changes in existing functionality
+
+### Deprecated
+- for once-stable features removed in upcoming releases
+
+### Fixed
+- for any bug fixes
\ No newline at end of file
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..1291498
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,2 @@
+source "https://rubygems.org"
+gemspec
\ No newline at end of file
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..b7cc9a0
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2017 Michael Rose
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 0000000..5a36774
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,75 @@
+require "bundler/gem_tasks"
+require "jekyll"
+require "listen"
+
+def listen_ignore_paths(base, options)
+ [
+ /_config\.ya?ml/,
+ /_site/,
+ /\.jekyll-metadata/
+ ]
+end
+
+def listen_handler(base, options)
+ site = Jekyll::Site.new(options)
+ Jekyll::Command.process_site(site)
+ proc do |modified, added, removed|
+ t = Time.now
+ c = modified + added + removed
+ n = c.length
+ relative_paths = c.map{ |p| Pathname.new(p).relative_path_from(base).to_s }
+ print Jekyll.logger.message("Regenerating:", "#{relative_paths.join(", ")} changed... ")
+ begin
+ Jekyll::Command.process_site(site)
+ puts "regenerated in #{Time.now - t} seconds."
+ rescue => e
+ puts "error:"
+ Jekyll.logger.warn "Error:", e.message
+ Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information."
+ end
+ end
+end
+
+task :preview do
+ base = Pathname.new('.').expand_path
+ options = {
+ "source" => base.join('example').to_s,
+ "destination" => base.join('example/_site').to_s,
+ "force_polling" => false,
+ "serving" => true,
+ "theme" => "jekyll-theme-basically-basic"
+ }
+
+ options = Jekyll.configuration(options)
+
+ ENV["LISTEN_GEM_DEBUGGING"] = "1"
+ listener = Listen.to(
+ base.join("_includes"),
+ base.join("_layouts"),
+ base.join("_sass"),
+ base.join("assets"),
+ options["source"],
+ :ignore => listen_ignore_paths(base, options),
+ :force_polling => options['force_polling'],
+ &(listen_handler(base, options))
+ )
+
+ begin
+ listener.start
+ Jekyll.logger.info "Auto-regeneration:", "enabled for '#{options["source"]}'"
+
+ unless options['serving']
+ trap("INT") do
+ listener.stop
+ puts " Halting auto-regeneration."
+ exit 0
+ end
+
+ loop { sleep 1000 }
+ end
+ rescue ThreadError
+ # You pressed Ctrl-C, oh my!
+ end
+
+ Jekyll::Commands::Serve.process(options)
+end
\ No newline at end of file
diff --git a/_includes/author b/_includes/author
new file mode 100644
index 0000000..19bcf68
--- /dev/null
+++ b/_includes/author
@@ -0,0 +1,31 @@
+{% assign author = page.author | default: page.authors[0] | default: site.author %}
+{% if author %}
+ {% if author.name %}
+ {% assign author_name = author.name %}
+ {% else %}
+ {% if site.data.authors and site.data.authors[author] %}
+ {% assign author_name = site.data.authors[author].name %}
+ {% else %}
+ {% assign author_name = author %}
+ {% endif %}
+ {% endif %}
+
+ {% if author.picture %}
+ {% assign author_picture = author.picture %}
+ {% else %}
+ {% if site.data.authors and site.data.authors[author] %}
+ {% assign author_picture = site.data.authors[author].picture %}
+ {% endif %}
+ {% unless author_picture contains '://' %}{% assign author_picture = author_picture | relative_url %}{% endunless %}
+ {% endif %}
+
+ {% if author.twitter %}
+ {% assign author_twitter = author.twitter %}
+ {% else %}
+ {% if site.data.authors and site.data.authors[author] %}
+ {% assign author_twitter = site.data.authors[author].twitter %}
+ {% else %}
+ {% assign author_twitter = site.twitter_username %}
+ {% endif %}
+ {% endif %}
+{% endif %}
\ No newline at end of file
diff --git a/_includes/contact-list.html b/_includes/contact-list.html
new file mode 100644
index 0000000..9d7ca2e
--- /dev/null
+++ b/_includes/contact-list.html
@@ -0,0 +1,27 @@
+
\ No newline at end of file
diff --git a/_includes/cv/awards.html b/_includes/cv/awards.html
new file mode 100644
index 0000000..81cc13a
--- /dev/null
+++ b/_includes/cv/awards.html
@@ -0,0 +1,24 @@
+{% if cv.awards %}
+
+
+
+
+ {% for a in cv.awards %}
+ {% if a.title %}
+
{{ a.title }}
+ {% endif %}
+ {% if a.date %}
+
{{ a.date }}
+ {% endif %}
+ {% if a.awarder %}
+
{{ a.awarder }}
+ {% endif %}
+ {% if a.summary %}
+
{{ a.summary | markdownify }}
+ {% endif %}
+ {% endfor %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/cv/basics.html b/_includes/cv/basics.html
new file mode 100644
index 0000000..f5f0b20
--- /dev/null
+++ b/_includes/cv/basics.html
@@ -0,0 +1,69 @@
+{% if cv.basics.summary %}
+
+ {{ cv.basics.summary | markdownify }}
+
+{% endif %}
+
+
+
+
+
+ {% if cv.basics.email %}
+
+ {% endif %}
+ {% if cv.basics.phone %}
+
Phone {{ cv.basics.phone }}
+ {% endif %}
+ {% if cv.basics.website %}
+
+ {% endif %}
+ {% if cv.basics.profiles %}
+ {% for p in cv.basics.profiles %}
+
+ {% if p.network %}
+
{{ p.network | append: ' ' }}
+ {% endif %}
+ {% if p.username %}
+
+ {% if p.url %}
+ {{ p.username }}
+ {% else %}
+ {{ p.username }}
+ {% endif %}
+
+ {% endif %}
+
+ {% endfor %}
+ {% endif %}
+
+
+
+{% if cv.basics.location %}
+
+
+
+
+
+ {% if cv.basics.location.address %}
+ {{ cv.basics.location.address }}
+ {% endif %}
+ {% if cv.basics.location.city %}
+ {{ cv.basics.location.city | append: ', ' }}
+ {% endif %}
+ {% if cv.basics.location.region %}
+ {{ cv.basics.location.region | append: ' ' }}
+ {% endif %}
+ {% if cv.basics.location.postalCode %}
+ {{ cv.basics.location.postalCode | append: ' ' }}
+ {% endif %}
+ {% if cv.basics.location.countryCode %}
+ {{ cv.basics.location.countryCode }}
+ {% endif %}
+
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/cv/education.html b/_includes/cv/education.html
new file mode 100644
index 0000000..e598cca
--- /dev/null
+++ b/_includes/cv/education.html
@@ -0,0 +1,36 @@
+{% if cv.education %}
+
+
+
+
+ {% for e in cv.education %}
+ {% if e.institution %}
+
{{ e.institution }}
+ {% endif %}
+
+ {% if e.startDate %}
+ {{ e.startDate }}
+ {% endif %}
+ {% if e.endDate %}
+ {{ e.endDate | prepend: ' — ' }}
+ {% else %}
+ {{ Present | prepend: ' — ' }}
+ {% endif %}
+
+ {% if e.area %}
+
{{ e.area }}{% if e.studyType %}{{ e.studyType | prepend: ', ' }} {% endif %} {% if e.gpa %}{{ e.gpa | prepend: ' (' | append: ' GPA)' }} {% endif %}
+ {% endif %}
+ {% if e.courses %}
+
Courses
+
+ {% for course in e.courses %}
+ {{ course }}
+ {% endfor %}
+
+ {% endif %}
+ {% endfor %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/cv/interests.html b/_includes/cv/interests.html
new file mode 100644
index 0000000..692ecf2
--- /dev/null
+++ b/_includes/cv/interests.html
@@ -0,0 +1,20 @@
+{% if cv.interests %}
+
+
+
+
+ {% for i in cv.interests %}
+
+ {% if i.name %}
+
{{ i.name }}
+ {% endif %}
+ {% if i.keywords %}
+ {{ i.keywords | array_to_sentence_string }}
+ {% endif %}
+
+ {% endfor %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/cv/intro.html b/_includes/cv/intro.html
new file mode 100644
index 0000000..197dd96
--- /dev/null
+++ b/_includes/cv/intro.html
@@ -0,0 +1,18 @@
+
+
+
+
{{ cv.basics.name | default: page.title | markdownify | remove: ' ' | remove: '
' }}
+ {% if cv.basics.label %}
+
{{ cv.basics.label | markdownify | remove: '
' | remove: '
' }}
+ {% endif %}
+
+ {% if page.actions %}
+
+ {% endif %}
+
+
+
\ No newline at end of file
diff --git a/_includes/cv/languages.html b/_includes/cv/languages.html
new file mode 100644
index 0000000..19dc3d4
--- /dev/null
+++ b/_includes/cv/languages.html
@@ -0,0 +1,20 @@
+{% if cv.languages %}
+
+
+
+
+ {% for l in cv.languages %}
+ {% if l.language %}
+
{{ l.language }}
+ {% endif %}
+ {% if l.fluency %}
+
+ {{ l.fluency }}
+
+ {% endif %}
+ {% endfor %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/cv/publications.html b/_includes/cv/publications.html
new file mode 100644
index 0000000..e1813bb
--- /dev/null
+++ b/_includes/cv/publications.html
@@ -0,0 +1,30 @@
+{% if cv.publications %}
+
+
+
+
+ {% for p in cv.publications %}
+ {% if p.name %}
+
+ {% if p.website %}
+ {{ p.name }}
+ {% else %}
+ {{ p.name }}
+ {% endif %}
+
+ {% endif %}
+ {% if p.releaseDate %}
+
{{ p.releaseDate }}
+ {% endif %}
+ {% if p.publisher %}
+
{{ p.publisher | prepend: 'Published by ' }}
+ {% endif %}
+ {% if p.summary %}
+
{{ p.summary | markdownify }}
+ {% endif %}
+ {% endfor %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/cv/references.html b/_includes/cv/references.html
new file mode 100644
index 0000000..df3dc4c
--- /dev/null
+++ b/_includes/cv/references.html
@@ -0,0 +1,24 @@
+{% if cv.references %}
+
+
+
+
+ {% for r in cv.references %}
+
+ {% if r.reference %}
+
+ {{ r.reference |markdownify }}
+ {% if r.name %}
+
+ {{ r.name }}
+
+ {% endif %}
+
+ {% endif %}
+
+ {% endfor %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/cv/skills.html b/_includes/cv/skills.html
new file mode 100644
index 0000000..9f1c833
--- /dev/null
+++ b/_includes/cv/skills.html
@@ -0,0 +1,20 @@
+{% if cv.skills. %}
+
+
+
+
+ {% for s in cv.skills %}
+
+ {% if s.name %}
+
{{ s.name }}
+ {% endif %}
+ {% if s.keywords %}
+ {{ s.keywords | array_to_sentence_string }}
+ {% endif %}
+
+ {% endfor %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/cv/volunteer.html b/_includes/cv/volunteer.html
new file mode 100644
index 0000000..f73973c
--- /dev/null
+++ b/_includes/cv/volunteer.html
@@ -0,0 +1,46 @@
+{% if cv.volunteer %}
+
+
+
+
+ {% for v in cv.volunteer %}
+ {% if v.organization %}
+
+ {% if v.website %}
+ {{ v.organization }}
+ {% else %}
+ {{ v.organization }}
+ {% endif %}
+
+ {% endif %}
+ {% if v.position %}
+
{{ v.position }}
+ {% endif %}
+
+ {% if v.startDate %}
+ {{ v.startDate }}
+ {% endif %}
+ {% if v.endDate %}
+ {{ v.endDate | prepend: ' — ' }}
+ {% else %}
+ {{ Present | prepend: ' — ' }}
+ {% endif %}
+
+ {% if v.summary %}
+
+ {% endif %}
+ {% if v.highlights %}
+
+ {% for highlight in v.highlights %}
+ {{ highlight }}
+ {% endfor %}
+
+ {% endif %}
+ {% endfor %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/cv/work.html b/_includes/cv/work.html
new file mode 100644
index 0000000..e4cfbc7
--- /dev/null
+++ b/_includes/cv/work.html
@@ -0,0 +1,46 @@
+{% if cv.work %}
+
+
+
+
+ {% for w in cv.work %}
+ {% if w.company %}
+
+ {% if w.website %}
+ {{ w.company }}
+ {% else %}
+ {{ w.company }}
+ {% endif %}
+
+ {% endif %}
+ {% if w.position %}
+
{{ w.position }}
+ {% endif %}
+
+ {% if w.startDate %}
+ {{ w.startDate }}
+ {% endif %}
+ {% if w.endDate %}
+ {{ w.endDate | prepend: ' — ' }}
+ {% else %}
+ {{ Present | ' — ' }}
+ {% endif %}
+
+ {% if w.summary %}
+
+ {% endif %}
+ {% if w.highlights %}
+
+ {% for highlight in w.highlights %}
+ {{ highlight }}
+ {% endfor %}
+
+ {% endif %}
+ {% endfor %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/disqus_comments.html b/_includes/disqus_comments.html
new file mode 100644
index 0000000..0407cd2
--- /dev/null
+++ b/_includes/disqus_comments.html
@@ -0,0 +1,17 @@
+{% if page.comments != false and jekyll.environment == "production" %}
+
+
+ Please enable JavaScript to view the comments powered by Disqus.
+{% endif %}
\ No newline at end of file
diff --git a/_includes/entry.html b/_includes/entry.html
new file mode 100644
index 0000000..1a23e7d
--- /dev/null
+++ b/_includes/entry.html
@@ -0,0 +1,24 @@
+{% if post.id %}
+ {% assign title = post.title | markdownify | remove: "" | remove: "
" %}
+{% else %}
+ {% assign title = post.title %}
+{% endif %}
+
+
+
+
+ {% if post.excerpt %}
+ {{ post.excerpt | markdownify }}
+
Read More {% include icon-arrow-right.svg %}
+ {% endif %}
+
+
\ No newline at end of file
diff --git a/_includes/footer.html b/_includes/footer.html
new file mode 100644
index 0000000..68a13e2
--- /dev/null
+++ b/_includes/footer.html
@@ -0,0 +1,8 @@
+