move over to new site

This commit is contained in:
Tom Hodson 2022-06-23 15:29:07 +02:00
parent 8c653ac425
commit 3ea33ad7a8
333 changed files with 32415 additions and 29079 deletions

13
.gitignore vendored
View File

@ -1,8 +1,7 @@
_site
.sass-cache
.jekyll-cache
.jekyll-metadata
vendor
env/
.DS_Store .DS_Store
.ipynb_checkpoints
_site/
Gemfile.lock
vendor/
.vscode/
.bundle/

31
Gemfile
View File

@ -1,29 +1,8 @@
# frozen_string_literal: true
source "https://rubygems.org" source "https://rubygems.org"
# Hello! This is where you manage which Jekyll version is used to run. # gem "rails"
# When you want to use a different version, change it below, save the gem "jekyll"
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
# bundle exec jekyll serve
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
gem "github-pages", group: :jekyll_plugins
# If you want to use Jekyll native, uncomment the line below.
# To upgrade, run `bundle update`.
# gem "jekyll"
gem "wdm", "~> 0.1.0" if Gem.win_platform?
# If you have any plugins, put them here!
group :jekyll_plugins do
# gem "jekyll-archives"
gem "jekyll-feed"
gem 'jekyll-sitemap'
gem 'hawkins'
end
gem "webrick", "~> 1.7" gem "webrick", "~> 1.7"
gem 'jekyll-feed'

72
Gemfile.lock Normal file
View File

@ -0,0 +1,72 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
colorator (1.1.0)
concurrent-ruby (1.1.10)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.15.5)
forwardable-extended (2.6.0)
http_parser.rb (0.8.0)
i18n (1.10.0)
concurrent-ruby (~> 1.0)
jekyll (4.2.2)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (~> 2.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.3)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (~> 0.4.0)
pathutil (~> 0.9)
rouge (~> 3.0)
safe_yaml (~> 1.0)
terminal-table (~> 2.0)
jekyll-feed (0.16.0)
jekyll (>= 3.7, < 5.0)
jekyll-sass-converter (2.2.0)
sassc (> 2.0.1, < 3.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
listen (3.7.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (4.0.7)
rb-fsevent (0.11.1)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.5)
rouge (3.29.0)
safe_yaml (1.0.5)
sassc (2.4.0)
ffi (~> 1.9)
terminal-table (2.0.0)
unicode-display_width (~> 1.1, >= 1.1.1)
unicode-display_width (1.8.0)
webrick (1.7.0)
PLATFORMS
x86_64-darwin-20
DEPENDENCIES
jekyll
jekyll-feed
webrick (~> 1.7)
BUNDLED WITH
2.3.16

21
LICENSE
View File

@ -1,21 +0,0 @@
The MIT License (MIT)
Copyright (c) 2016 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.

View File

@ -1,13 +0,0 @@
# Develop override settings
url: http://localhost:4000
analytics:
provider: false
comments:
disqus:
shortname : "mmistakes-dev"
sass:
style: expanded

View File

@ -1,311 +1,18 @@
# Welcome to Jekyll! title: Tom Hodson's Blog
# description: Physics, Programming and Baking.
# This config file is meant for settings that affect your entire site, values url: http://thomashodson.com/
# which you are expected to set up once and rarely need to edit after that.
# For technical reasons, this file is *NOT* reloaded automatically when you use
# `jekyll serve`. If you change this file, please restart the server process.
# Site Settings
locale : "en-GB"
title : "Tom Hodson"
title_separator : "-"
name : &name "Tom Hodson"
description : &description "Physics PhD Student at Imperial College London"
url : https://thomashodson.com # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
baseurl : "" # the subpath of your site, e.g. "/blog"
repository : "tomhodson.github.io"
teaser : # filename of teaser fallback teaser image placed in /images/, .e.g. "500x300.png"
breadcrumbs : false # true, false (default)
words_per_minute : 160
future : true
read_more : "disabled" # if enabled, adds "Read more" links to excerpts
talkmap_link : false #change to true to add link to talkmap on talks page
comments:
provider : # false (default), "disqus", "discourse", "facebook", "google-plus", "staticman", "custom"
disqus:
shortname :
discourse:
server : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org
facebook:
appid :
num_posts : # 5 (default)
colorscheme : # "light" (default), "dark"
staticman:
allowedFields : ['name', 'email', 'url', 'message']
branch : "gh-pages" # "master", "gh-pages"
commitMessage : "New comment."
filename : comment-{@timestamp}
format : "yml"
moderation : true
path : "_data/comments/{options.slug}"
requiredFields : ['name', 'email', 'message']
transforms:
email : "md5"
generatedFields:
date:
type : "date"
options:
format : "iso8601" # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds"
atom_feed:
path : # blank (default) uses feed.xml
# SEO Related
google_site_verification : Hp_6yh_4_7eu8fVYYBh7ZVKUmvFugtkt1_QLDgLlfhE
bing_site_verification :
alexa_site_verification :
yandex_site_verification :
# Social Sharing
twitter:
username : &twitter
facebook:
username :
app_id :
publisher :
og_image : "profile.jpeg"
# For specifying social profiles
# - https://developers.google.com/structured-data/customize/social-profiles
social:
type : # Person or Organization (defaults to Person)
name : # If the user or organization name differs from the site's name
links: # An array of links to social media profiles
# Analytics
analytics:
provider : "google-universal" # false (default), "google", "google-universal", "custom"
google:
tracking_id :
# Site Author
author: author:
name : "Tom Hodson" twitter: T_Hodson
avatar : "profile.jpeg"
bio : "Condensed Matter Physics PhD Student, Programmer and Maker"
location : "London & Munich"
employer : "Imperial College London"
pubmed :
googlescholar :
email : thomas.c.hodson@gmail.com
researchgate :
uri :
bitbucket :
codepen :
dribbble :
flickr :
facebook :
foursquare :
github : "tomhodson"
google_plus :
keybase :
instagram :
impactstory : #"https://profiles.impactstory.org/u/xxxx-xxxx-xxxx-xxxx"
lastfm :
linkedin : "thomaschodson"
orcid : "https://orcid.org/0000-0002-4121-4772"
pinterest :
soundcloud :
stackoverflow :
steam :
tumblr :
twitter : "T_hodson"
vine :
weibo :
xing :
youtube :
wikipedia :
exclude: ["env/", ]
host: 0.0.0.0
# Reading Files
include:
- .htaccess
- _pages
- files
exclude:
- "*.sublime-project"
- "*.sublime-workspace"
- .asset-cache
- .bundle
- .jekyll-assets-cache
- .sass-cache
- CHANGELOG
- Capfile
- Gemfile
- Gruntfile.js
- LICENSE
- README
- Rakefile
- assets/js/_main.js
- assets/js/plugins
- assets/js/vendor
- config
- gulpfile.js
- log
- node_modules
- package.json
- tmp
- vendor
keep_files:
- .git
- .svn
encoding: "utf-8"
markdown_ext: "markdown,mkdown,mkdn,mkd,md"
# Conversion
markdown: kramdown
highlighter: rouge
lsi: false
excerpt_separator: "\n\n"
incremental: false
# Markdown Processing
kramdown:
input: GFM
hard_wrap: false
auto_ids: true
footnote_nr: 1
entity_output: as_char
toc_levels: 1..6
smart_quotes: lsquo,rsquo,ldquo,rdquo
enable_coderay: false
# Collections
collections: collections:
teaching: cv_entries:
output: true output: true
permalink: /:collection/:path/
publications:
output: true
permalink: /:collection/:path/
portfolio:
output: true
permalink: /:collection/:path/
talks:
output: true
permalink: /:collection/:path/
# Defaults
defaults:
# _posts
- scope:
path: ""
type: posts
values:
layout: single
author_profile: true
read_time: true
comments: true
share: true
related: true
# _pages
- scope:
path: ""
type: pages
values:
layout: single
author_profile: true
# _teaching
- scope:
path: ""
type: teaching
values:
layout: single
author_profile: true
share: true
comments: true
# _publications
- scope:
path: ""
type: publications
values:
layout: single
author_profile: true
share: true
comments: true
# _portfolio
- scope:
path: ""
type: portfolio
values:
layout: single
author_profile: true
share: true
comment: true
# _talks
- scope:
path: ""
type: talks
values:
layout: talk
author_profile: true
share: true
# Sass/SCSS
sass:
sass_dir: _sass
style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style
# Outputting
permalink: /:categories/:title/
# paginate: 5 # amount of posts to show
# paginate_path: /page:num/
timezone: Europe/London # http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
# Plugins
plugins: plugins:
- jekyll-paginate
- jekyll-sitemap
- jekyll-gist
- jekyll-feed - jekyll-feed
- jekyll-redirect-from
# mimic GitHub Pages with --safe
whitelist:
- jekyll-paginate
- jekyll-sitemap
- jekyll-gist
- jekyll-feed
- jemoji
feed:
# Archives posts_limit: 20
# Type
# - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default)
# - Jekyll Archives plugin archive pages ~> type: jekyll-archives
# Path (examples)
# - Archive page should exist at path when using Liquid method or you can
# expect broken links (especially with breadcrumbs enabled)
# - <base_path>/tags/my-awesome-tag/index.html ~> path: /tags/
# - <base_path/categories/my-awesome-category/index.html ~> path: /categories/
# - <base_path/my-awesome-category/index.html ~> path: /
category_archive:
type: liquid
path: /categories/
tag_archive:
type: liquid
path: /tags/
# https://github.com/jekyll/jekyll-archives
# jekyll-archives:
# enabled:
# - categories
# - tags
# layouts:
# category: archive-taxonomy
# tag: archive-taxonomy
# permalinks:
# category: /categories/:name/
# tag: /tags/:name/
# HTML Compression
# - http://jch.penibelst.de/
compress_html:
clippings: all
ignore:
envs: development

42
_cv_entries/1_phd.md Normal file
View File

@ -0,0 +1,42 @@
---
type: education
title: Ph.D in Condensed Matter Theory
period: 2018 - 2021
location: Imperial College London
subtitle: "The one-dimensional Long-Range Falikov-Kimball Model"
image: /assets/images/koala_logo.svg
alt: "A colourful scientific figure from my work."
layout: cv_entry
read_more: true
funding: https://gtr.ukri.org/project/145404DD-ABAD-4CFB-A2D8-152A6AFCCEB7#/tabOverview
---
When you have lots of
Disorder Free Localisation in the 1D Falikov-Kimball Model. EPSRC Project N.<a href="{{page.funding}}">2120140</a>
My research focuses on the behaviour of electrons in crystaline solids.<br>
Supervisor: Dr Johannes Knolle<br>
### Plain English
Building upon the work of others, I study a very simplified model of electrons moving about in a crystal. A crystal is a structure that repeats through space, like the pattern on a chess board. We work in one dimension so in our case it would be more like patterns of coloured beads on a necklace. In addition the crystal is slightly disordered, as if the person making the necklace sometimes gets it a little wrong. This disorder tends to disrupt the movement of the electrons, often meaning that they cannot move at all.
### Technical English
Both disorder or interactions can turn metals into insulators. One of the simplest settings to study this physics is given by the Falikov-Kimbal (FK) model describing itinerant fermions interacting with a classical Ising background field. Despite the translational invariance of the model, it has been shown that in-homogenous configurations of the background field give rise to effective disorder physics leading to a rich phase diagram in two (or more) dimensions with finite temperature charge density wave (CDW) transitions and interaction-tuned Anderson versus Mott localized phases. Here, we propose a generalised FK model in one dimension with long-range interactions which shows a similarly rich phase diagram. Using an exact Markov Chain Monte Carlo method we map out the phase diagram and compute the energy resolved localisation properties of the fermions. We compare the behaviour of this transitionally invariant model to an Anderson model of uncorrelated binary disorder about a background CDW field and discuss its experimental implications.
![A figure from the paper]({{"assets/images/phase_diagram.png" | absolute_url}})
<!-- <span class="link-block">
<a href="https://drive.google.com/file/d/19HmB8Ls_H_3higF_QOHrIWu9hISXVIwZ/view?usp=sharing" class="paper-link-button">
<span class="icon">
<svg class="svg-inline--fa fa-file-pdf fa-w-12" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="file-pdf" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg=""><path fill="currentColor" d="M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"></path></svg><!-- <i class="fas fa-file-pdf"></i> Font Awesome fontawesome.com -->
</span>Paper
</a>
</span> -->

View File

@ -1,15 +1,20 @@
--- ---
title: "Msc Project" type: education
title: M.Sc Thesis, Natural Sciences
period: 2018
location: Trinity College, Cambridge
subtitle: "Imaging Magnetic Phenomena with Scanning Diamond Magnetometry" subtitle: "Imaging Magnetic Phenomena with Scanning Diamond Magnetometry"
excerpt: "Built a 3D vector magnetometer in order to determine the axis of a defect in a nano-diamond."
collection: portfolio image: /assets/images/vector_magnet_angle_view.png
image: vector_magnet_angle_view.png
alt: "A vector magnet that I designed." alt: "A vector magnet that I designed."
layout: cv_entry
read_more: true
--- ---
<h2> 2018 Msc Thesis, Natural Sciences,Trinity College, Cambridge </h2><br>
Supervisor: Professor Mete Atatüre<br> Supervisor: Professor Mete Atatüre<br>
<br> <br>
The project centered around the use of a Nitrogen-Vancancy defect in a nanoscale diamond to detect magnetic fields with ultra high resolution. We experimented with mounting such a nano-diamond to the tip of an atomic force microscope in order to produce field images. I built a 3d vector magnetometer in order to determine the axis of a defect in a nano-diamond. The project centered around the use of a Nitrogen-Vancancy defect in a nanoscale diamond to detect magnetic fields with ultra high resolution. We experimented with mounting such a nano-diamond to the tip of an atomic force microscope in order to produce field images. I built a 3d vector magnetometer in order to determine the axis of a defect in a nano-diamond.
<br>
<br><iframe src="https://myhub.autodesk360.com/ue2a56e59/shares/public/SH7f1edQT22b515c761efc56dd943429df14?mode=embed" width="640" height="480" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" frameborder="0"></iframe> <br><iframe src="https://myhub.autodesk360.com/ue2a56e59/shares/public/SH7f1edQT22b515c761efc56dd943429df14?mode=embed" width="640" height="480" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" frameborder="0"></iframe>

View File

@ -1,12 +1,16 @@
--- ---
type: work
title: "CERN Summmer Studentship" title: "CERN Summmer Studentship"
excerpt: "I worked at CERN for 3 months as a summer student, helping to design a high volume electronic measurement process for new silicon sensors for the LHC." period: 2018
collection: portfolio location: Trinity College, Cambridge
image: CERN_probes.png
image: /assets/images/CERN_probes.png
alt: "An image of some probes on a silicon wafer." alt: "An image of some probes on a silicon wafer."
layout: cv_entry
read_more: true
--- ---
## 2017, CMS HGCAL Sensor Characterisation, CERN
I worked at CERN for 3 months as a summer student, helping to design a high volume electronic measurement process for prototypes of 8 inch silicon sensors that will be used in a planned upgrade to the CMS endcap Calorimeter for the new High Luminsosity LHC upgrade. My time was split between working in a clean room on the measurement setup, analysing the data and attending a 6 week lecture course on High Energy Physics. I worked at CERN for 3 months as a summer student, helping to design a high volume electronic measurement process for prototypes of 8 inch silicon sensors that will be used in a planned upgrade to the CMS endcap Calorimeter for the new High Luminsosity LHC upgrade. My time was split between working in a clean room on the measurement setup, analysing the data and attending a 6 week lecture course on High Energy Physics.
![An image of test probes touching a silicon wager etched with hexagons](/images/CERN_probes.png) ![An image of test probes touching a silicon wager etched with hexagons]({{"assets/images/CERN_probes.png" | absolute_url}})

View File

@ -0,0 +1,17 @@
---
type: side_project
title: Collective Misbehaviour
period: 2018 - 2021
location: Imperial College London
subtitle: An interactive web based poetry collaboration.
image: /assets/images/collective_logo.png
alt:
layout: cv_entry
---
An interactive web based poetry collaboration with [Dan Simpson][dan], the then poet-in-residence at Imperial College London. you can read an article about the project [here][poemarticle].
[poem]: https://tomhodson.github.io/PoemProject/
[dan]: https://www.dansimpsonpoet.co.uk/#/collective-misbehaviour/

18
_cv_entries/datathon.md Normal file
View File

@ -0,0 +1,18 @@
---
type: competition
title: DigiFAB and FoNS Data Science Datathon
period: 2021
location:
subtitle:
image:
alt:
layout: cv_entry
---
Led a winning team of PhD students on [this challenge][datathon] to predict crystal structure and packing density from chemical structure data. Used a variety of techniques including recent advances in graph neural network techniques to win the competition.
[datathon]: https://web.archive.org/web/20210418234129/https://www.imperial.ac.uk/news/218853/digifab-fons-data-science-datathon-competition/

18
_cv_entries/fizzpop.md Normal file
View File

@ -0,0 +1,18 @@
---
type: side_project
title: FizzPOP Makerspace Director
period: 2012 2014
location: Birmingham
subtitle:
image: /assets/images/fizzpop_logo.gif
alt:
layout: cv_entry
---
[FizzPOP][fizzpop] is a community based workshop and social enterprise that fosters small technology and design projects. As one of the 5 founding directors I helped take it from a small group meeting in a borrowed space to a thriving community of more than 30 members with well equipped workshops and regular events.
[fizzpop]: https://fizzpop.org.uk/

15609
_cv_entries/pyproblems.html Normal file

File diff suppressed because one or more lines are too long

16
_cv_entries/undergrad.md Normal file
View File

@ -0,0 +1,16 @@
---
type: education
title: Physics, Natural Sciences M.Sc & B.Sc
period: 2014 2017
location: Trinity College, Cambridge
subtitle: My Undergraduate Degree
image:
alt:
layout: cv_entry
read_more: false
---
Third Year: First (77%) Rank: 23rd / 155 <br>
Second Year: First (78%) Rank: 73rd / 582 <br>
First Year: High 2.1 (67%) <br>

View File

@ -1,18 +0,0 @@
# Authors
Name Name:
name : "Name Name"
uri : "http://name.com"
email : "name@name.com"
bio : "This is the first name."
avatar : "bio-photo-2.jpg"
twitter : "name"
google_plus : "Name"
Name2 Name2:
name : "Name2 Name2"
email : "name2@name2.com"
bio : "I ordered what?"
avatar : "bio-photo.jpg"
twitter : "name2"
google_plus : "Name"

View File

@ -1,6 +0,0 @@
message: "![Bill Murray](http://www.fillmurray.com/400/300)\r\n\r\n“It's hard to be an artist. It's hard to be anything. It's hard to be.”"
name: Bill Murray
email: b0caa2a71f5066b3d90711c224578c21
url: ''
hidden: ''
date: '2016-08-11T19:33:25.928Z'

View File

@ -1,6 +0,0 @@
message: "> “I never had seen Seinfeld, and they said, Oh, its the last episode. And I said, Oh, Ill watch Seinfeld. And it was terrible.”\r\n>\r\n> *— From a 2014 interview with Howard Stern*"
name: Anonymous
email: 8c7e898f1b570760f834ecc03edf6b35
url: ''
hidden: ''
date: '2016-08-11T19:36:01.033Z'

View File

@ -1,6 +0,0 @@
message: "Here's a test comment with a Markdown code block:\r\n\r\n```scss\r\nh1, h2, h3, h4, h5, h6 {\r\n margin: 2em 0 0.5em;\r\n line-height: 1.2;\r\n font-family: $header-font-family;\r\n font-weight: bold;\r\n}\r\n```"
name: Michael Rose
email: 1ce71bc10b86565464b612093d89707e
url: 'https://mademistakes.com'
hidden: ''
date: '2016-08-12T02:41:04.706Z'

View File

@ -1,6 +0,0 @@
message: "This is a test comment with some **Markdown** sprinkled about for *testing purposes*.\r\n\r\n### Subheading in a comment? Madness!\r\n\r\nNam et risus nec ipsum efficitur facilisis. Aenean tincidunt dapibus odio, eget rutrum urna lacinia non. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
name: Michael Rose
email: 1ce71bc10b86565464b612093d89707e
url: 'https://mademistakes.com'
hidden: ''
date: '2016-08-11T19:03:24.929Z'

View File

@ -1,6 +0,0 @@
message: '"How much wood would a woodchuck chuck if a woodchuck could chuck wood?"'
name: Jackalope
email: cba827e665ae179e1d1ae007a6c3c1ab
url: ''
hidden: ''
date: '2016-08-11T19:04:06.958Z'

View File

@ -1,6 +0,0 @@
message: '"How much wood would a woodchuck chuck if a woodchuck could chuck wood?"'
name: Jackalope Duplicate
email: cba827e665ae179e1d1ae007a6c3c1ab
url: ''
hidden: ''
date: '2016-08-11T19:04:25.085Z'

View File

@ -1,6 +0,0 @@
message: "Images can be added to a comment using Markdown like this\r\n\r\n```\r\n![Bill Murray](http://www.fillmurray.com/600/400)\r\n```\r\n![Bill Murray](http://www.fillmurray.com/600/400)"
name: Michael Rose
email: 1ce71bc10b86565464b612093d89707e
url: 'https://mademistakes.com'
hidden: ''
date: '2016-08-11T19:08:12.789Z'

11
_data/cv_topics.yml Normal file
View File

@ -0,0 +1,11 @@
- name: Education
id: education
- name: Work Experience
id: work
- name: Side Projects
id: side_project
- name: Competitions
id: competition

View File

@ -1,10 +1,4 @@
# main links links - name: Blog
main: link: /
- title: "Portfolio" - name: CV
url: /portfolio/ link: /cv/
- title: "CV"
url: /cv/
- title: "Blog"
url: /year-archive/

View File

@ -1,270 +0,0 @@
# User interface text and labels
# English (default)
# -----------------
en: &DEFAULT_EN
page : "Page"
pagination_previous : "Previous"
pagination_next : "Next"
breadcrumb_home_label : "Home"
breadcrumb_separator : "/"
toc_label : "On This Page"
ext_link_label : "Direct Link"
less_than : "less than"
minute_read : "minute read"
share_on_label : "Share on"
meta_label :
tags_label : "Tags:"
categories_label : "Categories:"
date_label : "Published:"
comments_label : "Leave a Comment"
comments_title : "Comments"
more_label : "Learn More"
related_label : "You May Also Enjoy"
follow_label : "Follow:"
feed_label : "Feed"
powered_by : "Powered by"
website_label : "Website"
email_label : "Email"
recent_posts : "Recent Posts"
undefined_wpm : "Undefined parameter words_per_minute at _config.yml"
comment_form_info : "Your email address will not be published. Required fields are marked"
comment_form_comment_label : "Comment"
comment_form_md_info : "Markdown is supported."
comment_form_name_label : "Name"
comment_form_email_label : "Email address"
comment_form_website_label : "Website (optional)"
comment_btn_submit : "Submit Comment"
comment_btn_submitted : "Submitted"
comment_success_msg : "Thanks for your comment! It will show on the site once it has been approved."
comment_error_msg : "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again."
loading_label : "Loading..."
en-US:
<<: *DEFAULT_EN
en-CA:
<<: *DEFAULT_EN
en-GB:
<<: *DEFAULT_EN
en-AU:
<<: *DEFAULT_EN
# Spanish
# --------------
es: &DEFAULT_ES
page : "Página"
pagination_previous : "Anterior"
pagination_next : "Siguiente"
breadcrumb_home_label : "Inicio"
breadcrumb_separator : "/"
toc_label : "Contenidos"
ext_link_label : "Enlace"
less_than : "menos de"
minute_read : "minuto de lectura"
share_on_label : "Compartir"
meta_label :
tags_label : "Etiquetas:"
categories_label : "Categorías:"
date_label : "Actualizado:"
comments_label : "Comentar"
comments_title :
more_label : "Ver más"
related_label : "Podrías ver también"
follow_label : "Seguir:"
feed_label : "Feed"
powered_by : "Powered by"
website_label : "Sitio web"
email_label : "Email"
recent_posts : "Entradas recientes"
undefined_wpm : "Parametro words_per_minute (Palabras por minuto) no definido en _config.yml"
comment_form_info :
comment_form_comment_label :
comment_form_md_info :
comment_form_name_label :
comment_form_email_label :
comment_form_website_label :
comment_btn_submit :
comment_btn_submitted :
comment_success_msg :
comment_error_msg :
loading_label :
es-ES:
<<: *DEFAULT_ES
es-CO:
<<: *DEFAULT_ES
# French
# -----------------
fr: &DEFAULT_FR
page : "Page"
pagination_previous : "Précédent"
pagination_next : "Suivant"
breadcrumb_home_label : "Accueil"
breadcrumb_separator : "/"
toc_label : "Sur cette page"
ext_link_label : "Lien direct"
less_than : "plus petit que"
minute_read : "minute de lecture"
share_on_label : "Partager sur"
meta_label :
tags_label : "Tags :"
categories_label : "Catégories :"
date_label : "Mis à jour :"
comments_label : "Laisser un commentaire"
comments_title :
more_label : "Lire plus"
related_label : "Vous pourriez aimer"
follow_label : "Suivez moi"
feed_label : "Flux"
powered_by : "Propulsé par"
website_label : "Site"
email_label : "Email"
recent_posts : "Posts récents"
undefined_wpm : "Le paramètre words_per_minute n'est pas défini dans _config.yml"
comment_form_info :
comment_form_comment_label :
comment_form_md_info :
comment_form_name_label :
comment_form_email_label :
comment_form_website_label :
comment_btn_submit :
comment_btn_submitted :
comment_success_msg :
comment_error_msg :
loading_label :
fr-FR:
<<: *DEFAULT_FR
fr-BE:
<<: *DEFAULT_FR
fr-CH:
<<: *DEFAULT_FR
# Turkish
# -----------------
tr: &DEFAULT_TR
page : "Sayfa"
pagination_previous : "Önceki"
pagination_next : "Sonraki"
breadcrumb_home_label : "Ana Sayfa"
breadcrumb_separator : "/"
toc_label : "İçindekiler"
ext_link_label : "Doğrudan Bağlantı"
less_than : "Şu süreden az: "
minute_read : "dakika tahmini okuma süresi"
share_on_label : "Paylaş"
meta_label :
tags_label : "Etiketler:"
categories_label : "Kategoriler:"
date_label : "Güncelleme tarihi:"
comments_label : "Yorum yapın"
comments_title :
more_label : "Daha fazlasını öğrenin"
related_label : "Bunlar ilginizi çekebilir:"
follow_label : "Takip et:"
feed_label : "RSS"
powered_by : "Emeği geçenler: "
website_label : "Web sayfası"
email_label : "E-posta"
recent_posts : "Son yazılar"
undefined_wpm : "_config.yml dosyasında tanımlanmamış words_per_minute parametresi"
comment_form_info :
comment_form_comment_label :
comment_form_md_info :
comment_form_name_label :
comment_form_email_label :
comment_form_website_label :
comment_btn_submit :
comment_btn_submitted :
comment_success_msg :
comment_error_msg :
loading_label :
tr-TR:
<<: *DEFAULT_TR
# Brazilian Portguese
# -----------------
pt: &DEFAULT_PT
page : "Página"
pagination_previous : "Anterior"
pagination_next : "Próxima"
breadcrumb_home_label : "Início"
breadcrumb_separator : "/"
toc_label : "Nesta página"
ext_link_label : "Link direto"
less_than : "menor que"
minute_read : "minutos de leitura"
share_on_label : "Compartilhe em"
meta_label :
tags_label : "Tags:"
categories_label : "Categorias:"
date_label : "Atualizado em:"
comments_label : "Deixe um comentário"
comments_title :
more_label : "Aprenda Mais"
related_label : "Talvez Você Goste Também"
follow_label : "Acompanhe em"
feed_label : "Feed"
powered_by : "Feito por"
website_label : "Site"
email_label : "E-mail"
recent_posts : "Postagens recentes"
undefined_wpm : "Parâmetro indefinido em word_per_minute no _config.yml"
comment_form_info : "Seu endereço de e-mail não será publicado. Campos obrigatórios são marcados"
comment_form_comment_label : "Comentário"
comment_form_md_info : "Markdown é suportado"
comment_form_name_label : "Nome"
comment_form_email_label : "Endereço de e-mail'"
comment_form_website_label : "Website (opcional)"
comment_btn_submit : "Enviar Comentário"
comment_btn_submitted : "Enviado"
comment_success_msg : "Obrigado por seu comentário! Ele será exibido no site depois de aprovado."
comment_error_msg : "Desculpe, houve um erro com o seu envio. Certifique-se de que todos os campos obrigatórios foram preenchidos e tente novamente."
loading_label : "Carregando..."
pt-BR:
<<: *DEFAULT_PT
pt-PT:
<<: *DEFAULT_PT
# Italian
# -----------------
it: &DEFAULT_IT
page : "Pagina"
pagination_previous : "Precedente"
pagination_next : "Prossima"
breadcrumb_home_label : "Home"
breadcrumb_separator : "/"
toc_label : "Indice della pagina"
ext_link_label : "Link"
less_than : "meno di"
minute_read : "minuto/i di lettura"
share_on_label : "Condividi"
meta_label :
tags_label : "Tags:"
categories_label : "Categorie:"
date_label : "Aggiornato:"
comments_label : "Scrivi un commento"
comments_title :
more_label : "Scopri di più"
related_label : "Potrebbe Piacerti Anche"
follow_label : "Segui:"
feed_label : "Feed"
powered_by : "Powered by"
website_label : "Website"
email_label : "Email"
recent_posts : "Articoli Recenti"
undefined_wpm : "Parametro words_per_minute non definito in _config.yml"
comment_form_info :
comment_form_comment_label :
comment_form_md_info :
comment_form_name_label :
comment_form_email_label :
comment_form_website_label :
comment_btn_submit :
comment_btn_submitted :
comment_success_msg :
comment_error_msg :
loading_label :
it-IT:
<<: *DEFAULT_IT
# Another locale
# --------------

View File

@ -1,7 +0,0 @@
---
title: "Portfolio item number 2"
excerpt: "Short description of portfolio item number 2 <br/><img src='/images/500x300.png'>"
collection: portfolio
---
This is an item in your portfolio. It can be have images or nice text. If you name the file .md, it will be parsed as markdown. If you name the file .html, it will be parsed as HTML.

View File

@ -1,19 +0,0 @@
---
layout: single
title: "Draft Post"
header:
teaser: "unsplash-gallery-image-2-th.jpg"
categories:
- Jekyll
tags:
- edge case
---
Monocle ipsum dolor sit amet handsome pariatur aliqua, hub remarkable irure commodo classic deserunt bespoke. Sunt commodo signature, Swiss minim flat white Tsutaya excepteur artisanal et Nordic laborum joy ANA. Beams mollit exquisite Ginza efficient dolore qui Comme des Garçons Winkreative Lufthansa bulletin global. Iconic sed liveable duis. Mollit dolore eu laboris Comme des Garçons hub pintxos sed eiusmod tote bag Shinkansen nisi consectetur pariatur. Nordic international quis finest Baggu dolore, bureaux hub hand-crafted ut joy sint Airbus A380.
Conversation handsome hub cosy, enim emerging sed K-pop velit Gaggenau charming proident et boulevard ryokan. Remarkable airport deserunt international est, nulla minim magna emerging discerning in exclusive dolor. Commodo dolore deserunt cosy, global Nordic culpa uniforms signature charming. Smart ryokan commodo, eiusmod global occaecat incididunt aliqua Beams. Boulevard conversation excepteur finest Swiss non veniam Comme des Garçons essential artisanal. Destination Scandinavian international, anim Boeing 787 in duis Baggu irure essential.
Fugiat exclusive laborum, Gaggenau ad Winkreative sharp elit labore. Remarkable officia ryokan Boeing 787, consectetur boutique Nordic Singapore espresso elit iconic perfect izakaya soft power excepteur. Ut veniam carefully curated K-pop dolore, uniforms in voluptate. Craftsmanship Ettinger Lufthansa sophisticated esse boutique veniam exquisite. Aute cillum bespoke, intricate consectetur in exquisite international lovely bulletin irure Washlet Gaggenau deserunt. Efficient eu quality of life wardrobe labore, dolor emerging airport concierge reprehenderit izakaya dolore liveable Baggu.
Commodo elegant essential consectetur Gaggenau culpa consequat id sophisticated St Moritz sunt conversation duis non velit. Nulla business class non ut Marylebone ANA soft power fugiat carefully curated. Bureaux sed punctual handsome Washlet impeccable hand-crafted aute extraordinary tote bag enim boulevard soft power sleepy. Dolore conversation irure Zürich the best adipisicing, vibrant finest hub anim premium aliqua. Cupidatat smart international, bureaux Baggu id efficient punctual. Tempor nulla flat white enim, K-pop incididunt elit efficient Toto uniforms concierge discerning. Concierge sleepy extraordinary, deserunt Melbourne commodo Nordic Winkreative Washlet Ginza exercitation espresso.
Tsutaya sed in business class sharp. Do Beams in adipisicing Lufthansa. Business class occaecat Melbourne, irure Singapore commodo espresso carefully curated quis quality of life adipisicing. Impeccable laborum efficient classic proident in. Beams Helsinki ullamco Marylebone dolore sophisticated concierge Muji anim duis joy ut. Comme des Garçons aute Muji in aliquip ryokan soft power Nordic essential ANA culpa elegant.

View File

@ -1,3 +0,0 @@
<!-- start custom analytics snippet -->
<!-- end custom analytics snippet -->

View File

@ -1,9 +0,0 @@
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '{{ site.analytics.google.tracking_id }}', 'auto');
ga('send', 'pageview');
</script>

View File

@ -1,11 +0,0 @@
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '{{ site.analytics.google.tracking_id }}']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

View File

@ -1,12 +0,0 @@
{% if site.analytics.provider and page.analytics != false %}
{% case site.analytics.provider %}
{% when "google" %}
{% include /analytics-providers/google.html %}
{% when "google-universal" %}
{% include /analytics-providers/google-universal.html %}
{% when "custom" %}
{% include /analytics-providers/custom.html %}
{% endcase %}
{% endif %}

View File

@ -1,42 +0,0 @@
{% include base_path %}
{% if post.header.teaser %}
{% capture teaser %}{{ post.header.teaser }}{% endcapture %}
{% else %}
{% assign teaser = site.teaser %}
{% endif %}
{% if post.id %}
{% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
{% else %}
{% assign title = post.title %}
{% endif %}
<div class="{{ include.type | default: "list" }}__item">
<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
<li>
{% if include.type == "grid" and teaser %}
<div class="archive__item-teaser">
<img src=
{% if teaser contains "://" %}
"{{ teaser }}"
{% else %}
"{{ teaser | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="">
</div>
{% endif %}
<h3 class="archive__item-title" itemprop="headline">
{% if post.link %}
<a href="{{ post.link }}">{{ title }}</a> <a href="{{ base_path }}{{ post.url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
{% else %}
<a href="{{ base_path }}{{ post.url }}" rel="permalink">{{ title }}</a>
{% endif %}
</h3>
{% if post.read_time %}
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
{% if post.venue%}<p class="archive__item-excerpt" itemprop="description">{{ post.citation }}</p> {% endif %}
</li>
</article>
</div>

View File

@ -1,65 +0,0 @@
{% include base_path %}
{% if post.header.teaser %}
{% capture teaser %}{{ post.header.teaser }}{% endcapture %}
{% else %}
{% assign teaser = site.teaser %}
{% endif %}
{% if post.id %}
{% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
{% else %}
{% assign title = post.title %}
{% endif %}
<style>
h2 {margin: 1em 0 0.5em;}
article {display: flex; padding: 1em 0 0;}
div.flex_img {flex: 0 0 auto; width: 200px; display: flex; flex-direction: column; justify-content: center;}
div.flex_text {flex: 1 1 auto; padding-left: 30px;}
img.flex {align-self: center;}
</style>
<div class="{{ include.type | default: "list" }}__item">
<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
{% if post.image %}
<div class = "flex_img"><img class = "flex" src = "{{ post.image | prepend: '/images/'}}"></div>
{% endif %}
<div class = "flex_text">
<h2 class="archive__item-title" itemprop="headline">
{% if post.link %}
<a href="{{ post.link }}">{{ title }}</a> <a href="{{ base_path }}{{ post.url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
{% else %}
<a href="{{ base_path }}{{ post.url }}" rel="permalink">{{ title }}</a>
{% endif %}
</h2>
{% if post.read_time %}
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
{% if post.collection == 'teaching' %}
<p> {{ post.type }}, <i>{{ post.venue }}</i>, {{ post.date | default: "1900-01-01" | date: "%Y" }} </p>
{% elsif post.collection == 'publications' %}
<p>Published in <i>{{ post.venue }}</i>, {{ post.date | default: "1900-01-01" | date: "%Y" }} </p>
{% elsif post.date %}
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Published:" }}</strong> <time datetime="{{ post.date | default: "1900-01-01" | date_to_xmlschema }}">{{ post.date | default: "1900-01-01" | date: "%B %d, %Y" }}</time></p>
{% endif %}
{% if post.excerpt and site.read_more != 'enabled' %}
<p class="archive__item-excerpt" itemprop="description">{{ post.excerpt | markdownify }}</p>
{% elsif post.excerpt and site.read_more == 'enabled' %}
<p class="archive__item-excerpt" itemprop="description"><p>{{ post.excerpt | markdownify | remove: '<p>' | remove: '</p>' }}<strong><a href="{{ base_path }}{{ post.url }}" rel="permalink"> Read more</a></strong></p></p>
{% endif %}
{% if post.citation and post.paperurl %}
<p>Recommended citation: {{ post.citation }} <a href="{{ post.paperurl }}"><u>{{ post.paperurl }}</u></a></p>
{% elsif post.citation %}
<p>Recommended citation: {{ post.citation }} </p>
{% elsif post.paperurl %}
<p>Download <a href=" {{ post.paperurl }} "><u>here</u></a></p>
{% endif %}
</div>
</article>
</div>

View File

@ -1,41 +0,0 @@
{% include base_path %}
{% if post.header.teaser %}
{% capture teaser %}{{ post.header.teaser }}{% endcapture %}
{% else %}
{% assign teaser = site.teaser %}
{% endif %}
{% if post.id %}
{% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
{% else %}
{% assign title = post.title %}
{% endif %}
<div class="{{ include.type | default: "list" }}__item">
<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
<li>
{% if include.type == "grid" and teaser %}
<div class="archive__item-teaser">
<img src=
{% if teaser contains "://" %}
"{{ teaser }}"
{% else %}
"{{ teaser | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="">
</div>
{% endif %}
<h3 class="archive__item-title" itemprop="headline">
{% if post.link %}
<a href="{{ post.link }}">{{ title }}</a> <a href="{{ base_path }}{{ post.url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
{% else %}
<a href="{{ base_path }}{{ post.url }}" rel="permalink">{{ title }}</a>
{% endif %}
</h3>
{% if post.date %}<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {{ post.date | date: '%B %d, %Y' }}</p>{% endif %}
{% if post.venue%}<p class="archive__item-excerpt" itemprop="description">{{post.type}} at {{ post.venue }}, {{post.location}}</p>{% endif %}
</li>
</article>
</div>

View File

@ -1,42 +0,0 @@
{% include base_path %}
{% if post.header.teaser %}
{% capture teaser %}{{ post.header.teaser }}{% endcapture %}
{% else %}
{% assign teaser = site.teaser %}
{% endif %}
{% if post.id %}
{% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
{% else %}
{% assign title = post.title %}
{% endif %}
<div class="{{ include.type | default: "list" }}__item">
<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
{% if include.type == "grid" and teaser %}
<div class="archive__item-teaser">
<img src=
{% if teaser contains "://" %}
"{{ teaser }}"
{% else %}
"{{ teaser | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="">
</div>
{% endif %}
<h2 class="archive__item-title" itemprop="headline">
{% if post.link %}
<a href="{{ post.link }}">{{ title }}</a> <a href="{{ base_path }}{{ post.url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
{% else %}
<a href="{{ base_path }}{{ post.url }}" rel="permalink">{{ title }}</a>
{% endif %}
</h2>
{% if post.read_time %}
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
{% if post.date %}<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {{ post.date | date: '%B %d, %Y' }}</p>{% endif %}
{% if post.venue %}<p class="archive__item-excerpt" itemprop="description">{{post.type}}, {{ post.venue }}, {{post.location}} {% endif %}
{% if post.excerpt %}<p class="archive__item-excerpt" itemprop="description">{{ post.excerpt | markdownify }}</p>{% endif %}
</article>
</div>

View File

@ -1,64 +0,0 @@
{% include base_path %}
{% if post.header.teaser %}
{% capture teaser %}{{ post.header.teaser }}{% endcapture %}
{% else %}
{% assign teaser = site.teaser %}
{% endif %}
{% if post.id %}
{% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
{% else %}
{% assign title = post.title %}
{% endif %}
<div class="{{ include.type | default: "list" }}__item">
<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
{% if include.type == "grid" and teaser %}
<div class="archive__item-teaser">
<img src=
{% if teaser contains "://" %}
"{{ teaser }}"
{% else %}
"{{ teaser | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="">
</div>
{% endif %}
<h2 class="archive__item-title" itemprop="headline">
{% if post.link %}
<a href="{{ post.link }}">{{ title }}</a> <a href="{{ base_path }}{{ post.url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
{% else %}
<a href="{{ base_path }}{{ post.url }}" rel="permalink">{{ title }}</a>
{% endif %}
</h2>
{% if post.read_time %}
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
{% if post.collection == 'teaching' %}
<p> {{ post.type }}, <i>{{ post.venue }}</i>, {{ post.date | default: "1900-01-01" | date: "%Y" }} </p>
{% elsif post.collection == 'publications' %}
<p>Published in <i>{{ post.venue }}</i>, {{ post.date | default: "1900-01-01" | date: "%Y" }} </p>
{% elsif post.date %}
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Published:" }}</strong> <time datetime="{{ post.date | default: "1900-01-01" | date_to_xmlschema }}">{{ post.date | default: "1900-01-01" | date: "%B %d, %Y" }}</time></p>
{% endif %}
{% if post.excerpt and site.read_more != 'enabled' %}
<p class="archive__item-excerpt" itemprop="description">{{ post.excerpt | markdownify }}</p>
{% elsif post.excerpt and site.read_more == 'enabled' %}
<p class="archive__item-excerpt" itemprop="description"><p>{{ post.excerpt | markdownify | remove: '<p>' | remove: '</p>' }}<strong><a href="{{ base_path }}{{ post.url }}" rel="permalink"> Read more</a></strong></p></p>
{% endif %}
{% if post.citation and post.paperurl %}
<p>Recommended citation: {{ post.citation }} <a href="{{ post.paperurl }}"><u>{{ post.paperurl }}</u></a></p>
{% elsif post.citation %}
<p>Recommended citation: {{ post.citation }} </p>
{% elsif post.paperurl %}
<p>Download <a href=" {{ post.paperurl }} "><u>here</u></a></p>
{% endif %}
</article>
</div>

View File

@ -1,123 +0,0 @@
{% include base_path %}
{% if page.author and site.data.authors[page.author] %}
{% assign author = site.data.authors[page.author] %}{% else %}{% assign author = site.author %}
{% endif %}
<div itemscope itemtype="http://schema.org/Person">
<div class="author__avatar">
{% if author.avatar contains "://" %}
<img src="{{ author.avatar }}" alt="{{ author.name }}">
{% else %}
<img src="{{ author.avatar | prepend: "/images/" | prepend: base_path }}" class="author__avatar" alt="{{ author.name }}">
{% endif %}
</div>
<div class="author__content">
<h3 class="author__name">{{ author.name }}</h3>
{% if author.bio %}<p class="author__bio">{{ author.bio }}</p>{% endif %}
</div>
<div class="author__urls-wrapper">
<button class="btn btn--inverse">Follow</button>
<ul class="author__urls social-icons">
{% if author.location %}
<li><i class="fa fa-fw fa-map-marker" aria-hidden="true"></i> {{ author.location }}</li>
{% endif %}
{% if author.employer %}
<li><i class="fa fa-fw fa-map-marker" aria-hidden="true"></i> {{ author.employer }}</li>
{% endif %}
{% if author.uri %}
<li><a href="{{ author.uri }}"><i class="fas fa-fw fa-link" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].website_label | default: "Website" }}</a></li>
{% endif %}
{% if author.email %}
<li><a href="mailto:{{ author.email }}"><i class="fas fa-fw fa-envelope" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].email_label | default: "Email" }}</a></li>
{% endif %}
{% if author.keybase %}
<li><a href="https://keybase.io/{{ author.keybase }}"><i class="fas fa-fw fa-key" aria-hidden="true"></i> Keybase</a></li>
{% endif %}
{% if author.researchgate %}
<li><a href="{{ author.researchgate }}"><i class="fab fa-fw fa-researchgate" aria-hidden="true"></i> ResearchGate</a></li>
{% endif %}
{% if author.twitter %}
<li><a href="https://twitter.com/{{ author.twitter }}"><i class="fab fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter</a></li>
{% endif %}
{% if author.facebook %}
<li><a href="https://www.facebook.com/{{ author.facebook }}"><i class="fab fa-fw fa-facebook-square" aria-hidden="true"></i> Facebook</a></li>
{% endif %}
{% if author.google_plus %}
<li><a href="https://plus.google.com/+{{ author.google_plus }}"><i class="fab fa-fw fa-google-plus" aria-hidden="true"></i> Google+</a></li>
{% endif %}
{% if author.linkedin %}
<li><a href="https://www.linkedin.com/in/{{ author.linkedin }}"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i> LinkedIn</a></li>
{% endif %}
{% if author.xing %}
<li><a href="https://www.xing.com/profile/{{ author.xing }}"><i class="fab fa-fw fa-xing-square" aria-hidden="true"></i> XING</a></li>
{% endif %}
{% if author.instagram %}
<li><a href="https://instagram.com/{{ author.instagram }}"><i class="fab fa-fw fa-instagram" aria-hidden="true"></i> Instagram</a></li>
{% endif %}
{% if author.tumblr %}
<li><a href="https://{{ author.tumblr }}.tumblr.com"><i class="fab fa-fw fa-tumblr-square" aria-hidden="true"></i> Tumblr</a></li>
{% endif %}
{% if author.bitbucket %}
<li><a href="https://bitbucket.org/{{ author.bitbucket }}"><i class="fab fa-fw fa-bitbucket" aria-hidden="true"></i> Bitbucket</a></li>
{% endif %}
{% if author.github %}
<li><a href="https://github.com/{{ author.github }}"><i class="fab fa-fw fa-github" aria-hidden="true"></i> Github</a></li>
{% endif %}
{% if author.stackoverflow %}
<li><a href="https://www.stackoverflow.com/users/{{ author.stackoverflow }}"><i class="fab fa-fw fa-stack-overflow" aria-hidden="true"></i> Stackoverflow</a></li>
{% endif %}
{% if author.lastfm %}
<li><a href="https://lastfm.com/user/{{ author.lastfm }}"><i class="fab fa-fw fa-lastfm-square" aria-hidden="true"></i> Last.fm</a></li>
{% endif %}
{% if author.dribbble %}
<li><a href="https://dribbble.com/{{ author.dribbble }}"><i class="fab fa-fw fa-dribbble-square" aria-hidden="true"></i> Dribbble</a></li>
{% endif %}
{% if author.pinterest %}
<li><a href="https://www.pinterest.com/{{ author.pinterest }}"><i class="fab fa-fw fa-pinterest" aria-hidden="true"></i> Pinterest</a></li>
{% endif %}
{% if author.foursquare %}
<li><a href="https://foursquare.com/{{ author.foursquare }}"><i class="fab fa-fw fa-foursquare" aria-hidden="true"></i> Foursquare</a></li>
{% endif %}
{% if author.steam %}
<li><a href="https://steamcommunity.com/id/{{ author.steam }}"><i class="fab fa-fw fa-steam-square" aria-hidden="true"></i> Steam</a></li>
{% endif %}
{% if author.youtube %}
<li><a href="https://www.youtube.com/user/{{ author.youtube }}"><i class="fab fa-fw fa-youtube" aria-hidden="true"></i> YouTube</a></li>
{% endif %}
{% if author.soundcloud %}
<li><a href="https://soundcloud.com/{{ author.soundcloud }}"><i class="fab fa-fw fa-soundcloud" aria-hidden="true"></i> Soundcloud</a></li>
{% endif %}
{% if author.weibo %}
<li><a href="https://www.weibo.com/{{ author.weibo }}"><i class="fab fa-fw fa-weibo" aria-hidden="true"></i> Weibo</a></li>
{% endif %}
{% if author.flickr %}
<li><a href="https://www.flickr.com/{{ author.flickr }}"><i class="fab fa-fw fa-flickr" aria-hidden="true"></i> Flickr</a></li>
{% endif %}
{% if author.codepen %}
<li><a href="https://codepen.io/{{ author.codepen }}"><i class="fab fa-fw fa-codepen" aria-hidden="true"></i> CodePen</a></li>
{% endif %}
{% if author.vine %}
<li><a href="https://vine.co/u/{{ author.vine }}"><i class="fab fa-fw fa-vine" aria-hidden="true"></i> Vine</a></li>
{% endif %}
{% if author.googlescholar %}
<li><a href="{{ author.googlescholar }}"><i class="fas fa-fw fa-graduation-cap"></i> Google Scholar</a></li>
{% endif %}
{% if author.pubmed %}
<li><a href="{{ author.pubmed }}"><i class="ai ai-pubmed-square ai-fw"></i> PubMed</a></li>
{% endif %}
{% if author.orcid %}
<li><a href="{{ author.orcid }}"><i class="ai ai-orcid-square ai-fw"></i> ORCID</a></li>
{% endif %}
{% if author.impactstory %}
<li><a href="{{ author.impactstory }}"><i class="ai ai-impactstory ai-fw"></i> Impactstory</a></li>
{% endif %}
{% if author.wikipedia %}
<li><a href="https://en.wikipedia.org/wiki/User:{{ author.wikipedia }}"><i class="fab fa-fw fa-wikipedia-w" aria-hidden="true"></i> Wikipedia</a></li>
{% endif %}
</ul>
</div>
</div>

View File

@ -1,5 +0,0 @@
{% if site.url %}
{% assign base_path = site.url | append: site.baseurl %}
{% else %}
{% assign base_path = site.github.url %}
{% endif %}

View File

@ -1,41 +0,0 @@
{% include base_path %}
{% case site.categories.type %}
{% when "liquid" %}
{% assign path_type = "#" %}
{% when "jekyll-archives" %}
{% assign path_type = nil %}
{% endcase %}
{% if page.collection != 'posts' %}
{% assign path_type = nil %}
{% assign crumb_path = '/' %}
{% else %}
{% assign crumb_path = site.categories.path %}
{% endif %}
<nav class="breadcrumbs">
<ol itemscope itemtype="http://schema.org/BreadcrumbList">
{% assign crumbs = page.url | split: '/' %}
{% assign i = 1 %}
{% for crumb in crumbs offset: 1 %}
{% if forloop.first %}
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a href="{{ base_path }}/" itemprop="item"><span itemprop="name">{{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}</span></a>
<meta itemprop="position" content="{{ i }}" />
</li>
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
{% endif %}
{% if forloop.last %}
<li class="current">{{ page.title }}</li>
{% else %}
{% assign i = i | plus: 1 %}
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a href="{{ base_path }}{{ crumb | downcase | replace: '%20', '-' | prepend: path_type | prepend: crumb_path }}" itemprop="item"><span itemprop="name">{{ crumb | replace: '-', ' ' | replace: '%20', ' ' | capitalize }}</span></a>
<meta itemprop="position" content="{{ i }}" />
</li>
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
{% endif %}
{% endfor %}
</ol>
</nav>

View File

@ -1,3 +0,0 @@
<!--[if lt IE 9]>
<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
<![endif]-->

View File

@ -1,30 +0,0 @@
{% include base_path %}
{% include base_path %}
{% case site.category_archive.type %}
{% when "liquid" %}
{% assign path_type = "#" %}
{% when "jekyll-archives" %}
{% assign path_type = nil %}
{% endcase %}
{% if site.category_archive.path %}
{% comment %}
<!-- Sort alphabetically regardless of case e.g. a B c d E -->
<!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
{% endcomment %}
{% capture page_categories %}{% for category in page.categories %}{{ category | downcase }}#{{ category }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
{% assign category_hashes = (page_categories | split: ',' | sort:0) %}
<p class="page__taxonomy">
<strong><i class="fa fa-fw fa-folder-open" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} </strong>
<span itemprop="keywords">
{% for hash in category_hashes %}
{% assign keyValue = hash | split: '#' %}
{% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
<a href="{{ base_path }}{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path }}" class="page__taxonomy-item" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
{% endfor %}
</span>
</p>
{% endif %}

View File

@ -1,22 +0,0 @@
<article id="comment{{ include.index }}" class="js-comment comment">
<div class="comment__avatar-wrapper">
<img class="comment__avatar" src="https://www.gravatar.com/avatar/{{ include.email }}?d=mm&s=80">
</div>
<div class="comment__content-wrapper">
<h3 class="comment__author">
{% unless include.url == blank %}
<a rel="nofollow" href="{{ include.url }}">{{ include.name }}</a>
{% else %}
{{ include.name }}
{% endunless %}
</h3>
<p class="comment__date">
{% if include.date %}
{% if include.index %}<a href="#comment{{ include.index }}">{% endif %}
<time datetime="{{ include.date | date_to_xmlschema }}">{{ include.date | date: "%B %d, %Y at %I:%M %p" }}</time>
{% if include.index %}</a>{% endif %}
{% endif %}
</p>
{{ include.message | markdownify }}
</div>
</article>

View File

@ -1,3 +0,0 @@
<!-- start custom comments snippet -->
<!-- end custom comments snippet -->

View File

@ -1,14 +0,0 @@
{% if site.comments.discourse.server %}
{% include base_path %}
{% capture canonical %}{{ base_path }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %}
<script type="text/javascript">
DiscourseEmbed = { discourseUrl: '//{{ site.comments.discourse.server }}/',
discourseEmbedUrl: '{{ canonical }}' };
(function () {
var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
})();
</script>
<noscript>Please enable JavaScript to view the comments powered by [Discourse](http://forum.beta-europe.org/c/beta/website).</a></noscript>
{% endif %}

View File

@ -1,22 +0,0 @@
{% if site.comments.disqus.shortname %}
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = '{{ site.comments.disqus.shortname }}';
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
/* * * DON'T EDIT BELOW THIS LINE * * */
(function () {
var s = document.createElement('script'); s.async = true;
s.type = 'text/javascript';
s.src = '//' + disqus_shortname + '.disqus.com/count.js';
(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
}());
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
{% endif %}

View File

@ -1,8 +0,0 @@
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5{% if site.comments.facebook.appid %}&appId={{ site.comments.facebook.appid }}{% endif %}";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

View File

@ -1,2 +0,0 @@
<script async type="text/javascript" src="//apis.google.com/js/plusone.js?callback=gpcb"></script>
<noscript>Please enable JavaScript to view the <a href="https://plus.google.com/">comments powered by Google+.</a></noscript>

View File

@ -1,18 +0,0 @@
{% if site.comments.provider and page.comments %}
{% case site.comments.provider %}
{% when "disqus" %}
{% include /comments-providers/disqus.html %}
{% when "discourse" %}
{% include /comments-providers/discourse.html %}
{% when "facebook" %}
{% include /comments-providers/facebook.html %}
{% when "google-plus" %}
{% include /comments-providers/google-plus.html %}
{% when "staticman" %}
{% include /comments-providers/staticman.html %}
{% when "custom" %}
{% include /comments-providers/custom.html %}
{% endcase %}
{% endif %}

View File

@ -1,42 +0,0 @@
{% if site.repository and site.staticman.branch %}
<script>
(function ($) {
var $comments = $('.js-comments');
$('#new_comment').submit(function () {
var form = this;
$(form).addClass('disabled');
$('#comment-form-submit').html('<i class="fa fa-spinner fa-spin fa-fw"></i> {{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}');
$.ajax({
type: $(this).attr('method'),
url: $(this).attr('action'),
data: $(this).serialize(),
contentType: 'application/x-www-form-urlencoded',
success: function (data) {
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submitted | default: "Submitted" }}');
$('.page__comments-form .js-notice').removeClass('notice--danger');
$('.page__comments-form .js-notice').addClass('notice--success');
showAlert('{{ site.data.ui-text[site.locale].comment_success_msg | default: "Thanks for your comment! It will show on the site once it has been approved." }}');
},
error: function (err) {
console.log(err);
$('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}');
$('.page__comments-form .js-notice').removeClass('notice--success');
$('.page__comments-form .js-notice').addClass('notice--danger');
showAlert('{{ site.data.ui-text[site.locale].comment_error_msg | default: "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." }}');
$(form).removeClass('disabled');
}
});
return false;
});
function showAlert(message) {
$('.page__comments-form .js-notice').removeClass('hidden');
$('.page__comments-form .js-notice-text').html(message);
}
})(jQuery);
</script>
{% endif %}

View File

@ -1,81 +0,0 @@
{% include base_path %}
<div class="page__comments">
{% capture comments_label %}{{ site.data.ui-text[site.locale].comments_label | default: "Comments" }}{% endcapture %}
{% case site.comments.provider %}
{% when "disqus" %}
<h4 class="page__comments-title">{{ comments_label }}</h4>
<section id="disqus_thread"></section>
{% when "facebook" %}
<h4 class="page__comments-title">{{ comments_label }}</h4>
<section class="fb-comments" data-href="{{ base_path }}{{ page.url }}" data-mobile="true" data-num-posts="{{ site.comments.facebook.num_posts | default: 5 }}" data-width="100%" data-colorscheme="{{ site.comments.facebook.colorscheme | default: 'light' }}"></section>
{% when "google-plus" %}
<h4 class="page__comments-title">{{ comments_label }}</h4>
<section class="g-comments" data-href="{{ base_path }}{{ page.url }}" data-first_party_property="BLOGGER" data-view_type="FILTERED_POSTMOD">Loading Google+ Comments ...</section>
{% when "staticman" %}
<section id="comments">
{% if site.repository and site.staticman.branch %}
<!-- Start static comments -->
<div class="js-comments">
{% if site.data.comments[page.slug] %}
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4>
{% assign comments = site.data.comments[page.slug] | sort %}
{% for comment in comments %}
{% assign email = comment[1].email %}
{% assign name = comment[1].name %}
{% assign url = comment[1].url %}
{% assign date = comment[1].date %}
{% assign message = comment[1].message %}
{% include comment.html index=forloop.index email=email name=name url=url date=date message=message %}
{% endfor %}
{% endif %}
</div>
<!-- End static comments -->
<!-- Start new comment form -->
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}</h4>
<p class="small">{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} <span class="required">*</span></p>
<form id="new_comment" class="page__comments-form js-form form" method="post" action="https://api.staticman.net/v1/entry/{{ site.repository }}/{{ site.staticman.branch }}">
<div class="form__spinner">
<i class="fa fa-spinner fa-spin fa-3x fa-fw"></i>
<span class="sr-only">{{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}</span>
</div>
<fieldset>
<label for="comment-form-message">{{ site.data.ui-text[site.locale].comment_form_comment_label | default: "Comment" }} <small class="required">*</small></label>
<textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea>
<div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">{{ site.data.ui-text[site.locale].comment_form_md_info | default: "Markdown is supported." }}</a></div>
</fieldset>
<fieldset>
<label for="comment-form-name">{{ site.data.ui-text[site.locale].comment_form_name_label | default: "Name" }} <small class="required">*</small></label>
<input type="text" id="comment-form-name" name="fields[name]" tabindex="2" />
</fieldset>
<fieldset>
<label for="comment-form-email">{{ site.data.ui-text[site.locale].comment_form_email_label | default: "Email address" }} <small class="required">*</small></label>
<input type="email" id="comment-form-email" name="fields[email]" tabindex="3" />
</fieldset>
<fieldset>
<label for="comment-form-url">{{ site.data.ui-text[site.locale].comment_form_website_label | default: "Website (optional)" }}</label>
<input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/>
</fieldset>
<fieldset class="hidden">
<input type="hidden" name="options[slug]" value="{{ page.slug }}">
<input type="hidden" name="fields[hidden]"/>
</fieldset>
<!-- Start comment form alert messaging -->
<p class="hidden js-notice">
<strong class="js-notice-text"></strong>
</p>
<!-- End comment form alert messaging -->
<fieldset>
<button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--large">{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}</button>
</fieldset>
</form>
<!-- End new comment form -->
{% endif %}
</section>
{% when "custom" %}
<section id="comments"></section>
{% endcase %}
</div>

View File

@ -1,52 +0,0 @@
{% include base_path %}
{% if include.id %}
{% assign feature_row = page.[include.id] %}
{% else %}
{% assign feature_row = page.feature_row %}
{% endif %}
<div class="feature__wrapper">
{% for f in feature_row %}
{% if f.url contains "://" %}
{% capture f_url %}{{ f.url }}{% endcapture %}
{% else %}
{% capture f_url %}{{ f.url | prepend: base_path }}{% endcapture %}
{% endif %}
<div class="feature__item{% if include.type %}--{{ include.type }}{% endif %}">
<div class="archive__item">
{% if f.image_path %}
<div class="archive__item-teaser">
<img src=
{% if f.image_path contains "://" %}
"{{ f.image_path }}"
{% else %}
"{{ f.image_path | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="{% if f.alt %}{{ f.alt }}{% endif %}">
</div>
{% endif %}
<div class="archive__item-body">
{% if f.title %}
<h2 class="archive__item-title">{{ f.title }}</h2>
{% endif %}
{% if f.excerpt %}
<div class="archive__item-excerpt">
{{ f.excerpt | markdownify }}
</div>
{% endif %}
{% if f.url %}
<p><a href="{{ f_url }}" class="btn {{ f.btn_class }}">{{ f.btn_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
{% endif %}
</div>
</div>
</div>
{% endfor %}
</div>

View File

@ -1,24 +0,0 @@
{% include base_path %}
<div class="page__footer-follow">
<ul class="social-icons">
{% if site.data.ui-text[site.locale].follow_label %}
<li><strong>{{ site.data.ui-text[site.locale].follow_label }}</strong></li>
{% endif %}
{% if site.twitter.username %}
<li><a href="https://twitter.com/{{ site.twitter.username }}"><i class="fab fa-twitter-square" aria-hidden="true"></i> Twitter</a></li>
{% endif %}
{% if site.facebook.username %}
<li><a href="https://facebook.com/{{ site.facebook.username }}"><i class="fab fa-facebook-square" aria-hidden="true"></i> Facebook</a></li>
{% endif %}
{% if site.author.github %}
<li><a href="http://github.com/{{ site.author.github }}"><i class="fab fa-github" aria-hidden="true"></i> GitHub</a></li>
{% endif %}
{% if site.author.bitbucket %}
<li><a href="http://bitbucket.org/{{ site.author.bitbucket }}"><i class="fab fa-bitbucket" aria-hidden="true"></i> Bitbucket</a></li>
{% endif %}
<li><a href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ base_path }}/feed.xml{% endif %}"><i class="fa fa-fw fa-rss-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].feed_label | default: "Feed" }}</a></li>
</ul>
</div>
<div class="page__footer-copyright">&copy; {{ site.time | date: '%Y' }} {{ site.name | default: site.title }}. {{ site.data.ui-text[site.locale].powered_by | default: "Powered by" }} <a href="http://jekyllrb.com" rel="nofollow">Jekyll</a> &amp; <a href="https://github.com/academicpages/academicpages.github.io">AcademicPages</a>, a fork of <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>

View File

@ -1,3 +0,0 @@
<!-- start custom footer snippets -->
<a href="/sitemap/">Sitemap</a>
<!-- end custom footer snippets -->

View File

@ -1,49 +0,0 @@
{% include base_path %}
{% if include.id %}
{% assign gallery = page.[include.id] %}
{% else %}
{% assign gallery = page.gallery %}
{% endif %}
{% if gallery.size == 2 %}
{% assign gallery_layout = 'half' %}
{% elsif gallery.size >= 3 %}
{% assign gallery_layout = 'third' %}
{% else %}
{% assign gallery_layout = '' %}
{% endif %}
<figure class="{{ gallery_layout }} {{ include.class }}">
{% for img in gallery %}
{% if img.url %}
<a href=
{% if img.url contains "://" %}
"{{ img.url }}"
{% else %}
"{{ img.url | prepend: "/images/" | prepend: base_path }}"
{% endif %}
{% if img.title %}title="{{ img.title }}"{% endif %}
>
<img src=
{% if img.image_path contains "://" %}
"{{ img.image_path }}"
{% else %}
"{{ img.image_path | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="{% if img.alt %}{{ img.alt }}{% endif %}">
</a>
{% else %}
<img src=
{% if img.image_path contains "://" %}
"{{ img.image_path }}"
{% else %}
"{{ img.image_path | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="{% if img.alt %}{{ img.alt }}{% endif %}">
{% endif %}
{% endfor %}
{% if include.caption %}
<figcaption>{{ include.caption | markdownify | remove: "<p>" | remove: "</p>" }}</figcaption>
{% endif %}
</figure>

View File

@ -1,47 +0,0 @@
<!--
# Jekyll Group-By-Array 0.1.0
# https://github.com/mushishi78/jekyll-group-by-array
# © 2015 Max White <mushishi78@gmail.com>
# MIT License
-->
<!-- Initialize -->
{% assign __empty_array = '' | split: ',' %}
{% assign group_names = __empty_array %}
{% assign group_items = __empty_array %}
<!-- Map -->
{% assign __names = include.collection | map: include.field %}
<!-- Flatten -->
{% assign __names = __names | join: ',' | join: ',' | split: ',' %}
<!-- Uniq -->
{% assign __names = __names | sort %}
{% for name in __names | sort %}
<!-- If not equal to previous then it must be unique as sorted -->
{% unless name == previous %}
<!-- Push to group_names -->
{% assign group_names = group_names | push: name %}
{% endunless %}
{% assign previous = name %}
{% endfor %}
<!-- group_items -->
{% for name in group_names %}
<!-- Collect if contains -->
{% assign __item = __empty_array %}
{% for __element in include.collection %}
{% if __element[include.field] contains name %}
{% assign __item = __item | push: __element %}
{% endif %}
{% endfor %}
<!-- Push to group_items -->
{% assign group_items = group_items | push: __item %}
{% endfor %}

View File

@ -1,21 +0,0 @@
{% include base_path %}
<meta charset="utf-8">
{% include seo.html %}
<link href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ base_path }}/feed.xml{% endif %}" type="application/atom+xml" rel="alternate" title="{{ site.title }} Feed">
<!-- http://t.co/dKP3o1e -->
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
</script>
<!-- For all browsers -->
<link rel="stylesheet" href="{{ base_path }}/assets/css/main.css">
<meta http-equiv="cleartype" content="on">

View File

@ -1,38 +0,0 @@
{% include base_path %}
<!-- start custom head snippets -->
<link rel="apple-touch-icon" sizes="57x57" href="{{ base_path }}/images/apple-touch-icon-57x57.png?v=M44lzPylqQ">
<link rel="apple-touch-icon" sizes="60x60" href="{{ base_path }}/images/apple-touch-icon-60x60.png?v=M44lzPylqQ">
<link rel="apple-touch-icon" sizes="72x72" href="{{ base_path }}/images/apple-touch-icon-72x72.png?v=M44lzPylqQ">
<link rel="apple-touch-icon" sizes="76x76" href="{{ base_path }}/images/apple-touch-icon-76x76.png?v=M44lzPylqQ">
<link rel="apple-touch-icon" sizes="114x114" href="{{ base_path }}/images/apple-touch-icon-114x114.png?v=M44lzPylqQ">
<link rel="apple-touch-icon" sizes="120x120" href="{{ base_path }}/images/apple-touch-icon-120x120.png?v=M44lzPylqQ">
<link rel="apple-touch-icon" sizes="144x144" href="{{ base_path }}/images/apple-touch-icon-144x144.png?v=M44lzPylqQ">
<link rel="apple-touch-icon" sizes="152x152" href="{{ base_path }}/images/apple-touch-icon-152x152.png?v=M44lzPylqQ">
<link rel="apple-touch-icon" sizes="180x180" href="{{ base_path }}/images/apple-touch-icon-180x180.png?v=M44lzPylqQ">
<link rel="icon" type="image/png" href="{{ base_path }}/images/favicon-32x32.png?v=M44lzPylqQ" sizes="32x32">
<link rel="icon" type="image/png" href="{{ base_path }}/images/android-chrome-192x192.png?v=M44lzPylqQ" sizes="192x192">
<link rel="icon" type="image/png" href="{{ base_path }}/images/favicon-96x96.png?v=M44lzPylqQ" sizes="96x96">
<link rel="icon" type="image/png" href="{{ base_path }}/images/favicon-16x16.png?v=M44lzPylqQ" sizes="16x16">
<link rel="manifest" href="{{ base_path }}/images/manifest.json?v=M44lzPylqQ">
<link rel="mask-icon" href="{{ base_path }}/images/safari-pinned-tab.svg?v=M44lzPylqQ" color="#000000">
<link rel="shortcut icon" href="/images/favicon.ico?v=M44lzPylqQ">
<meta name="msapplication-TileColor" content="#000000">
<meta name="msapplication-TileImage" content="{{ base_path }}/images/mstile-144x144.png?v=M44lzPylqQ">
<meta name="msapplication-config" content="{{ base_path }}/images/browserconfig.xml?v=M44lzPylqQ">
<meta name="theme-color" content="#ffffff">
<link rel="stylesheet" href="{{ base_path }}/assets/css/academicons.css"/>
<script type="text/x-mathjax-config"> MathJax.Hub.Config({ TeX: { equationNumbers: { autoNumber: "all" } } }); </script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
processEscapes: true
}
});
</script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/latest.js?config=TeX-MML-AM_CHTML' async></script>
<!-- end custom head snippets -->

13
_includes/header.html Normal file
View File

@ -0,0 +1,13 @@
<header>
<div class = "profile-pic-name">
<img src="/assets/images/avatar.jpeg" class = "avatar" alt = "A picture of me.">
<h1> Tom Hodson </h1>
</div>
<p>Physicist, Programmer, Maker and Baker
<p class="professional-links">
<a href="https://github.com/TomHodson"><img class="icon" src="/assets/icons/github.svg">GitHub</a>
<a href="https://twitter.com/T_Hodson"><img class="icon" src="/assets/icons/twitter.svg">Twitter</a>
<a href="/feed.xml"><img class="icon" src="/assets/icons/rss.svg">RSS</a>
</p>
{% include sidebar.html %}
</header>

View File

@ -1,23 +0,0 @@
{% include base_path %}
<div class="masthead">
<div class="masthead__inner-wrap">
<div class="masthead__menu">
<nav id="site-nav" class="greedy-nav">
<button><div class="navicon"></div></button>
<ul class="visible-links">
<li class="masthead__menu-item masthead__menu-item--lg"><a href="{{ base_path }}/">{{ site.title }}</a></li>
{% for link in site.data.navigation.main %}
{% if link.url contains 'http' %}
{% assign domain = '' %}
{% else %}
{% assign domain = base_path %}
{% endif %}
<li class="masthead__menu-item"><a href="{{ domain }}{{ link.url }}">{{ link.title }}</a></li>
{% endfor %}
</ul>
<ul class="hidden-links hidden"></ul>
</nav>
</div>
</div>
</div>

View File

@ -1,46 +0,0 @@
{% include base_path %}
{% assign navigation = site.data.navigation[include.nav] %}
<nav class="nav__list">
{% if page.sidebar.title %}<header><h4 class="nav__title" style="padding: 0;">{{ page.sidebar.title }}</h4></header>{% endif %}
<ul>
{% for nav in navigation %}
<li>
{% if nav.url %}
{% comment %}internal/external URL check{% endcomment %}
{% if nav.url contains "://" %}
{% assign domain = "" %}
{% else %}
{% assign domain = base_path %}
{% endif %}
<a href="{{ domain }}{{ nav.url }}"><span class="nav__sub-title">{{ nav.title }}</span></a>
{% else %}
<span class="nav__sub-title">{{ nav.title }}</span>
{% endif %}
{% if nav.children != null %}
<ul>
{% for child in nav.children %}
{% comment %}internal/external URL check{% endcomment %}
{% if child.url contains "://" %}
{% assign domain = "" %}
{% else %}
{% assign domain = base_path %}
{% endif %}
{% comment %}set "active" class on current page{% endcomment %}
{% if child.url == page.url %}
{% assign active = "active" %}
{% else %}
{% assign active = "" %}
{% endif %}
<li><a href="{{ domain }}{{ child.url }}" class="{{ active }}">{{ child.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>

View File

@ -1,55 +0,0 @@
{% include base_path %}
{% if page.header.image contains "://" %}
{% capture img_path %}{{ page.header.image }}{% endcapture %}
{% else %}
{% capture img_path %}{{ page.header.image | prepend: "/images/" | prepend: base_path }}{% endcapture %}
{% endif %}
{% if page.header.cta_url contains "://" %}
{% capture cta_path %}{{ page.header.cta_url }}{% endcapture %}
{% else %}
{% capture cta_path %}{{ page.header.cta_url | prepend: base_path }}{% endcapture %}
{% endif %}
{% if page.header.overlay_image contains "://" %}
{% capture overlay_img_path %}{{ page.header.overlay_image }}{% endcapture %}
{% elsif page.header.overlay_image %}
{% capture overlay_img_path %}{{ page.header.overlay_image | prepend: "/images/" | prepend: base_path }}{% endcapture %}
{% endif %}
{% if page.header.overlay_filter contains "rgba" %}
{% capture overlay_filter %}{{ page.header.overlay_filter }}{% endcapture %}
{% elsif page.header.overlay_filter %}
{% capture overlay_filter %}rgba(0, 0, 0, {{ page.header.overlay_filter }}){% endcapture %}
{% endif %}
<div class="page__hero{% if page.header.overlay_color or page.header.overlay_image %}--overlay{% endif %}"
style="{% if page.header.overlay_color %}background-color: {{ page.header.overlay_color | default: 'transparent' }};{% endif %} {% if overlay_img_path %}background-image: {% if overlay_filter %}linear-gradient({{ overlay_filter }}, {{ overlay_filter }}), {% endif %}url('{{ overlay_img_path }}');{% endif %}"
>
{% if page.header.overlay_color or page.header.overlay_image %}
<div class="wrapper">
<h1 class="page__title" itemprop="headline">
{% if paginator %}
{{ site.title }}{% unless paginator.page == 1 %} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}
{% else %}
{{ page.title | default: site.title | markdownify | remove: "<p>" | remove: "</p>" }}
{% endif %}
</h1>
{% if page.excerpt %}
<p class="page__lead">{{ page.excerpt | markdownify | remove: "<p>" | remove: "</p>" }}</p>
{% endif %}
{% if site.read_time and page.read_time %}
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
{% if page.header.cta_url %}
<p><a href="{{ cta_path }}" class="btn btn--light-outline btn--large">{{ page.header.cta_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
{% endif %}
</div>
{% else %}
<img src="{{ img_path }}" alt="{{ page.title }}" class="page__hero-image">
{% endif %}
{% if page.header.caption %}
<span class="page__hero-caption">{{ page.header.caption | markdownify | remove: "<p>" | remove: "</p>" }}</span>
{% endif %}
</div>

View File

@ -1,9 +0,0 @@
{% include base_path %}
{% if site.tag_archive.type and page.tags[0] %}
{% include tag-list.html %}
{% endif %}
{% if site.category_archive.type and page.categories[0] %}
{% include category-list.html %}
{% endif %}

View File

@ -1,70 +0,0 @@
{% include base_path %}
{% if paginator.total_pages > 1 %}
<nav class="pagination">
<ul>
{% comment %} Link for previous page {% endcomment %}
{% if paginator.previous_page %}
{% if paginator.previous_page == 1 %}
<li><a href="{{ base_path }}/">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
{% else %}
<li><a href="{{ base_path }}/page{{ paginator.previous_page }}/">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
{% endif %}
{% else %}
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
{% endif %}
{% comment %} First page {% endcomment %}
{% if paginator.page == 1 %}
<li><a href="#" class="disabled current">1</a></li>
{% else %}
<li><a href="{{ base_path }}/">1</a></li>
{% endif %}
{% assign page_start = 2 %}
{% if paginator.page > 4 %}
{% assign page_start = paginator.page | minus: 2 %}
{% comment %} Ellipsis for truncated links {% endcomment %}
<li><a href="#" class="disabled">&hellip;</a></li>
{% endif %}
{% assign page_end = paginator.total_pages | minus: 1 %}
{% assign pages_to_end = paginator.total_pages | minus: paginator.page %}
{% if pages_to_end > 4 %}
{% assign page_end = paginator.page | plus: 2 %}
{% endif %}
{% for index in (page_start..page_end) %}
{% if index == paginator.page %}
<li><a href="{{ base_path }}/page{{ index }}/" class="disabled current">{{ index }}</a></li>
{% else %}
{% comment %} Distance from current page and this link {% endcomment %}
{% assign dist = paginator.page | minus: index %}
{% if dist < 0 %}
{% comment %} Distance must be a positive value {% endcomment %}
{% assign dist = 0 | minus: dist %}
{% endif %}
<li><a href="{{ base_path }}/page{{ index }}/">{{ index }}</a></li>
{% endif %}
{% endfor %}
{% comment %} Ellipsis for truncated links {% endcomment %}
{% if pages_to_end > 3 %}
<li><a href="#" class="disabled">&hellip;</a></li>
{% endif %}
{% if paginator.page == paginator.total_pages %}
<li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
{% else %}
<li><a href="{{ base_path }}/page{{ paginator.total_pages }}/">{{ paginator.total_pages }}</a></li>
{% endif %}
{% comment %} Link next page {% endcomment %}
{% if paginator.next_page %}
<li><a href="{{ base_path }}/page{{ paginator.next_page }}/">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
{% else %}
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
{% endif %}
</ul>
</nav>
{% endif %}

View File

@ -1,16 +0,0 @@
{% include base_path %}
{% if page.previous or page.next %}
<nav class="pagination">
{% if page.previous %}
<a href="{{ base_path }}{{ page.previous.url }}" class="pagination--pager" title="{{ page.previous.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
{% else %}
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
{% endif %}
{% if page.next %}
<a href="{{ base_path }}{{ page.next.url }}" class="pagination--pager" title="{{ page.next.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
{% else %}
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
{% endif %}
</nav>
{% endif %}

View File

@ -1,17 +0,0 @@
{% if post.read_time %}
{% assign words = post.content | strip_html | number_of_words %}
{% elsif page.read_time %}
{% assign words = page.content | strip_html | number_of_words %}
{% endif %}
{% if site.words_per_minute %}
{% if words < 180 %}
{{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
{% elsif words < 360 %}
1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
{% else %}
{{ words | divided_by:site.words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
{% endif %}
{% else %}
{{ site.data.ui-text[site.locale].undefined_wpm | "Undefined parameter words_per_minute at _config.yml" }}
{% endif %}

View File

@ -1,4 +0,0 @@
<script src="{{ base_path }}/assets/js/main.min.js"></script>
{% include analytics.html %}
{% include /comments-providers/scripts.html %}

View File

@ -1,25 +1,5 @@
{% include base_path %} <nav>
{% for item in site.data.navigation %}
{% if page.author_profile or layout.author_profile or page.sidebar %} <a href="{{ item.link }}" {% if page.url == item.link %}class="current"{% endif %}>{{ item.name }}</a>
<div class="sidebar sticky">
{% if page.author_profile or layout.author_profile %}{% include author-profile.html %}{% endif %}
{% if page.sidebar %}
{% for s in page.sidebar %}
{% if s.image %}
<img src=
{% if s.image contains "://" %}
"{{ s.image }}"
{% else %}
"{{ s.image | prepend: "/images/" | prepend: base_path }}"
{% endif %}
alt="{% if s.image_alt %}{{ s.image_alt }}{% endif %}">
{% endif %}
{% if s.title %}<h3>{{ s.title }}</h3>{% endif %}
{% if s.text %}{{ s.text | markdownify }}{% endif %}
{% endfor %} {% endfor %}
{% if page.sidebar.nav %} </nav>
{% include nav_list nav=page.sidebar.nav %}
{% endif %}
{% endif %}
</div>
{% endif %}

View File

@ -1,13 +0,0 @@
{% include base_path %}
<section class="page__share">
{% if site.data.ui-text[site.locale].share_on_label %}
<h4 class="page__share-title">{{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}</h4>
{% endif %}
<a href="https://twitter.com/intent/tweet?text={{ base_path }}{{ page.url }}" class="btn btn--twitter" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Twitter"><i class="fab fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
<a href="https://www.facebook.com/sharer/sharer.php?u={{ base_path }}{{ page.url }}" class="btn btn--facebook" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Facebook"><i class="fab fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url={{ base_path }}{{ page.url }}" class="btn btn--linkedin" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} LinkedIn"><i class="fab fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
</section>

View File

@ -1,28 +0,0 @@
{% include base_path %}
{% case site.tag_archive.type %}
{% when "liquid" %}
{% assign path_type = "#" %}
{% when "jekyll-archives" %}
{% assign path_type = nil %}
{% endcase %}
{% if site.tag_archive.path %}
{% comment %}
<!-- Sort alphabetically regardless of case e.g. a B c d E -->
<!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
{% endcomment %}
{% capture page_tags %}{% for tag in page.tags %}{{ tag | downcase }}#{{ tag }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
{% assign tag_hashes = (page_tags | split: ',' | sort:0) %}
<p class="page__taxonomy">
<strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} </strong>
<span itemprop="keywords">
{% for hash in tag_hashes %}
{% assign keyValue = hash | split: '#' %}
{% capture tag_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
<a href="{{ base_path }}{{ tag_word | slugify | prepend: path_type | prepend: site.tag_archive.path }}" class="page__taxonomy-item" rel="tag">{{ tag_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
{% endfor %}
</span>
</p>
{% endif %}

View File

@ -1,7 +0,0 @@
<aside class="sidebar__right">
<nav class="toc" markdown="1">
<header><h4 class="nav__title"><i class="fa fa-{{ include.icon | default: 'file-text' }}"></i> {{ include.title | default: site.data.ui-text[site.locale].toc_label }}</h4></header>
* Auto generated table of contents
{:toc .toc__menu}
</nav>
</aside>

View File

@ -1,16 +0,0 @@
---
layout: default
author_profile: false
---
<div id="main" role="main">
{% include sidebar.html %}
<div class="archive">
<h1 class="page__title">{{ page.title }}</h1>
{% include base_path %}
{% for post in page.posts %}
{% include archive-single.html %}
{% endfor %}
</div>
</div>

View File

@ -1,24 +0,0 @@
---
layout: default
---
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
{% include page__hero.html %}
{% endif %}
{% if page.url != "/" and site.breadcrumbs %}
{% unless paginator %}
{% include breadcrumbs.html %}
{% endunless %}
{% endif %}
<div id="main" role="main">
{% include sidebar.html %}
<div class="archive">
{% unless page.header.overlay_color or page.header.overlay_image %}
<h1 class="page__title">{{ page.title }}</h1>
{% endunless %}
{{ content }}
</div>
</div>

View File

@ -1,10 +0,0 @@
---
# Jekyll layout that compresses HTML
# v3.0.2
# http://jch.penibelst.de/
# © 20142015 Anatol Broder
# MIT License
---
{% capture _LINE_FEED %}
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}

6
_layouts/cv_entry.html Normal file
View File

@ -0,0 +1,6 @@
---
layout: default
---
<h1>{{ page.title }}</h1>
{{ content }}

View File

@ -1,31 +1,21 @@
---
layout: compress
---
{% include base_path %}
<!doctype html> <!doctype html>
<html lang="{{ site.locale | slice: 0,2 }}" class="no-js"> <html>
<head> <head>
{% include head.html %} <meta charset="utf-8">
{% include head/custom.html %} <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tom Hodson - {{ page.title }}</title>
<meta name="description" content="Tom Hodson's personal site.">
<link rel="stylesheet" href="/assets/css/styles.css">
<script src="/assets/js/index.js"></script>
<!-- RSS feed -->
{% feed_meta %}
</head> </head>
<body> <body>
{% include header.html %}
{% include browser-upgrade.html %} <main>
{% include masthead.html %} {{ content }}
</main>
{{ content }}
<div class="page__footer">
<footer>
{% include footer/custom.html %}
{% include footer.html %}
</footer>
</div>
{% include scripts.html %}
</body> </body>
</html> </html>

23
_layouts/post.html Normal file
View File

@ -0,0 +1,23 @@
---
---
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tom Hodson - {{ page.title }}</title>
<meta name="description" content="Tom Hodson's personal site.">
<link rel="stylesheet" href="/assets/css/styles.css">
<script src="/assets/js/index.js"></script>
<!-- RSS feed -->
<link rel="alternate" type="application/rss+xml" title="RSS for Tom Hodson's Blog" href="/feed.xml">
</head>
<body>
<h1>{{ page.title }}</h1>
<time>{{ page.date | date_to_string }}</time>
{{ content }}
</body>
</html>

View File

@ -1,90 +0,0 @@
---
layout: default
---
{% include base_path %}
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
{% include page__hero.html %}
{% endif %}
{% if page.url != "/" and site.breadcrumbs %}
{% unless paginator %}
{% include breadcrumbs.html %}
{% endunless %}
{% endif %}
<div id="main" role="main">
{% include sidebar.html %}
<article class="page" itemscope itemtype="http://schema.org/CreativeWork">
{% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date: "%B %d, %Y" }}">{% endif %}
{% if page.modified %}<meta itemprop="dateModified" content="{{ page.modified | date: "%B %d, %Y" }}">{% endif %}
<div class="page__inner-wrap">
{% unless page.header.overlay_color or page.header.overlay_image %}
<header>
{% if page.title %}<h1 class="page__title" itemprop="headline">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</h1>{% endif %}
{% if page.read_time %}
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
{% if page.modified %}
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Published:" }}</strong> <time datetime="{{ page.modified | date: "%Y-%m-%d" }}">{{ page.modified | date: "%B %d, %Y" }}</time></p>
{% endif %}
{% if page.collection == 'teaching' %}
<p> {{ page.type }}, <i>{{ page.venue }}</i>, {{ page.date | default: "1900-01-01" | date: "%Y" }} </p>
{% elsif page.venue and page.date %}
<p>Published in <i>{{ page.venue }}</i>, {{ page.date | default: "1900-01-01" | date: "%Y" }} </p>
{% elsif page.date %}
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Published:" }}</strong> <time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | default: "1900-01-01" | date: "%B %d, %Y" }}</time></p>
{% endif %}
{% if page.citation and page.paperurl %}
<p>Recommended citation: {{ page.citation }} <a href="{{ page.paperurl }}"><u>{{ page.paperurl }}</u></a></p>
{% elsif page.citation %}
<p>Recommended citation: {{ page.citation }} </p>
{% endif %}
</header>
{% endunless %}
<section class="page__content" itemprop="text">
{{ content }}
{% if page.link %}<div><a href="{{ page.link }}" class="btn">{{ site.data.ui-text[site.locale].ext_link_label | default: "Direct Link" }}</a></div>{% endif %}
</section>
<footer class="page__meta">
{% if site.data.ui-text[site.locale].meta_label %}
<h4 class="page__meta-title">{{ site.data.ui-text[site.locale].meta_label }}</h4>
{% endif %}
{% include page__taxonomy.html %}
</footer>
{% if page.share %}{% include social-share.html %}{% endif %}
{% include post_pagination.html %}
</div>
{% if site.comments.provider and page.comments %}
{% include comments.html %}
{% endif %}
</article>
{% comment %}<!-- only show related on a post page when not disabled -->{% endcomment %}
{% if page.id and page.related and site.related_posts.size > 0 %}
<div class="page__related">
{% if site.data.ui-text[site.locale].related_label %}
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
{% endif %}
<div class="grid__wrapper">
{% for post in site.related_posts limit:4 %}
{% include archive-single.html type="grid" %}
{% endfor %}
</div>
</div>
{% endif %}
</div>

View File

@ -1,22 +0,0 @@
---
layout: default
---
{% include base_path %}
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
{% include page__hero.html %}
{% endif %}
<div id="main" role="main">
<article class="splash" itemscope itemtype="http://schema.org/CreativeWork">
{% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date: "%B %d, %Y" }}">{% endif %}
{% if page.modified %}<meta itemprop="dateModified" content="{{ page.modified | date: "%B %d, %Y" }}">{% endif %}
<section class="page__content" itemprop="text">
{{ content }}
</section>
</article>
</div>

View File

@ -1,78 +0,0 @@
---
layout: default
---
{% include base_path %}
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
{% include page__hero.html %}
{% endif %}
{% if page.url != "/" and site.breadcrumbs %}
{% unless paginator %}
{% include breadcrumbs.html %}
{% endunless %}
{% endif %}
<div id="main" role="main">
{% include sidebar.html %}
<article class="page" itemscope itemtype="http://schema.org/CreativeWork">
{% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date: "%B %d, %Y" }}">{% endif %}
{% if page.modified %}<meta itemprop="dateModified" content="{{ page.modified | date: "%B %d, %Y" }}">{% endif %}
<div class="page__inner-wrap">
{% unless page.header.overlay_color or page.header.overlay_image %}
<header>
{% if page.title %}<h1 class="page__title" itemprop="headline">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</h1>{% endif %}
{% if page.read_time %}
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
{% if page.modified %}
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i>Date:</strong> <time datetime="{{ page.modified | date: "%Y-%m-%d" }}">{{ page.modified | date: "%B %d, %Y" }}</time></p>
{% elsif page.date %}
<p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i>Date:</strong> <time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: "%B %d, %Y" }}</time></p>
{% endif %}
{% if page.talk_type %}<p>{{page.talk_type}} at {{ page.venue }}, {{page.location}} {% endif %}
</header>
{% endunless %}
<section class="page__content" itemprop="text">
{{ content }}
{% if page.link %}<div><a href="{{ page.link }}" class="btn">{{ site.data.ui-text[site.locale].ext_link_label | default: "Direct Link" }}</a></div>{% endif %}
</section>
<footer class="page__meta">
{% if site.data.ui-text[site.locale].meta_label %}
<h4 class="page__meta-title">{{ site.data.ui-text[site.locale].meta_label }}</h4>
{% endif %}
{% include page__taxonomy.html %}
</footer>
{% if page.share %}{% include social-share.html %}{% endif %}
{% include post_pagination.html %}
</div>
{% if site.comments.provider and page.comments %}
{% include comments.html %}
{% endif %}
</article>
{% comment %}<!-- only show related on a post page when not disabled -->{% endcomment %}
{% if page.id and page.related and site.related_posts.size > 0 %}
<div class="page__related">
{% if site.data.ui-text[site.locale].related_label %}
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
{% endif %}
<div class="grid__wrapper">
{% for post in site.related_posts limit:4 %}
{% include archive-single.html type="grid" %}
{% endfor %}
</div>
</div>
{% endif %}
</div>

View File

@ -1,16 +0,0 @@
---
title: "Page Not Found"
excerpt: "Page not found. Your pixels are in another canvas."
sitemap: false
permalink: /404.html
---
Sorry, but the page you were trying to view does not exist --- perhaps you can try searching for it below.
<script type="text/javascript">
var GOOG_FIXURL_LANG = 'en';
var GOOG_FIXURL_SITE = '{{ site.url }}'
</script>
<script type="text/javascript"
src="//linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js">
</script>

View File

@ -1,13 +0,0 @@
---
permalink: /
title: "About me"
excerpt: "About me"
author_profile: true
redirect_from:
- /about/
- /about.html
---
I'm Tom and I'm a PhD student in Condensed Matter Theory at Imperial College London. My research focusses on on the weird and wonderful ways that electrons behave in complex crystalline materials. For my simulations I write a lot of python and rely heavily on scipy and numpy along with the occasional cython.
In my spare time, I like to 3D print things and build electronics projects. I also recently did a poetry collaboration called [Collective Misbehaviour](https://tomhodson.github.io/PoemProject/) at Imperial.

View File

@ -1,177 +0,0 @@
---
title: "Archive Layout with Content"
layout: archive
permalink: /archive-layout-with-content/
---
A variety of common markup showing how the theme styles them.
# Header one
## Header two
### Header three
#### Header four
##### Header five
###### Header six
## Blockquotes
Single line blockquote:
> Quotes are cool.
## Tables
| Entry | Item | |
| -------- | ------ | ------------------------------------------------------------ |
| [John Doe](#) | 2016 | Description of the item in the list |
| [Jane Doe](#) | 2019 | Description of the item in the list |
| [Doe Doe](#) | 2022 | Description of the item in the list |
| Header1 | Header2 | Header3 |
|:--------|:-------:|--------:|
| cell1 | cell2 | cell3 |
| cell4 | cell5 | cell6 |
|-----------------------------|
| cell1 | cell2 | cell3 |
| cell4 | cell5 | cell6 |
|=============================|
| Foot1 | Foot2 | Foot3 |
## Definition Lists
Definition List Title
: Definition list division.
Startup
: A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model.
#dowork
: Coined by Rob Dyrdek and his personal body guard Christopher "Big Black" Boykins, "Do Work" works as a self motivator, to motivating your friends.
Do It Live
: I'll let Bill O'Reilly [explain](https://www.youtube.com/watch?v=O_HyZ5aW76c "We'll Do It Live") this one.
## Unordered Lists (Nested)
* List item one
* List item one
* List item one
* List item two
* List item three
* List item four
* List item two
* List item three
* List item four
* List item two
* List item three
* List item four
## Ordered List (Nested)
1. List item one
1. List item one
1. List item one
2. List item two
3. List item three
4. List item four
2. List item two
3. List item three
4. List item four
2. List item two
3. List item three
4. List item four
## Buttons
Make any link standout more when applying the `.btn` class.
## Notices
**Watch out!** You can also add notices by appending `{: .notice}` to a paragraph.
{: .notice}
## HTML Tags
### Address Tag
<address>
1 Infinite Loop<br /> Cupertino, CA 95014<br /> United States
</address>
### Anchor Tag (aka. Link)
This is an example of a [link](http://github.com "Github").
### Abbreviation Tag
The abbreviation CSS stands for "Cascading Style Sheets".
*[CSS]: Cascading Style Sheets
### Cite Tag
"Code is poetry." ---<cite>Automattic</cite>
### Code Tag
You will learn later on in these tests that `word-wrap: break-word;` will be your best friend.
### Strike Tag
This tag will let you <strike>strikeout text</strike>.
### Emphasize Tag
The emphasize tag should _italicize_ text.
### Insert Tag
This tag should denote <ins>inserted</ins> text.
### Keyboard Tag
This scarcely known tag emulates <kbd>keyboard text</kbd>, which is usually styled like the `<code>` tag.
### Preformatted Tag
This tag styles large blocks of code.
<pre>
.post-title {
margin: 0 0 5px;
font-weight: bold;
font-size: 38px;
line-height: 1.2;
and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
}
</pre>
### Quote Tag
<q>Developers, developers, developers&#8230;</q> &#8211;Steve Ballmer
### Strong Tag
This tag shows **bold text**.
### Subscript Tag
Getting our science styling on with H<sub>2</sub>O, which should push the "2" down.
### Superscript Tag
Still sticking with science and Isaac Newton's E = MC<sup>2</sup>, which should lift the 2 up.
### Variable Tag
This allows you to denote <var>variables</var>.
{% include base_path %}
{% for post in site.pages %}
{% include archive-single.html %}
{% endfor %}

View File

@ -1,17 +0,0 @@
---
layout: archive
permalink: /categories/
title: "Posts by Category"
author_profile: true
---
{% include base_path %}
{% include group-by-array collection=site.posts field="categories" %}
{% for category in group_names %}
{% assign posts = group_items[forloop.index0] %}
<h2 id="{{ category | slugify }}" class="archive__subtitle">{{ category }}</h2>
{% for post in posts %}
{% include archive-single.html %}
{% endfor %}
{% endfor %}

View File

@ -1,24 +0,0 @@
---
layout: archive
title: "Posts by Collection"
permalink: /collection-archive/
author_profile: true
---
{% include base_path %}
{% capture written_label %}'None'{% endcapture %}
{% for collection in site.collections %}
{% unless collection.output == false or collection.label == "posts" %}
{% capture label %}{{ collection.label }}{% endcapture %}
{% if label != written_label %}
<h2 id="{{ label | slugify }}" class="archive__subtitle">{{ label }}</h2>
{% capture written_label %}{{ label }}{% endcapture %}
{% endif %}
{% endunless %}
{% for post in collection.docs %}
{% unless collection.output == false or collection.label == "posts" %}
{% include archive-single.html %}
{% endunless %}
{% endfor %}
{% endfor %}

View File

@ -1,148 +0,0 @@
---
layout: archive
title: "CV"
permalink: /cv/
author_profile: true
redirect_from:
- /resume
---
{% include base_path %}
Education
---------
* 2018 - 2021 [Ph.D in Condensed Matter Theory][phd], 2021 (expected), Imperial College London
* Topic: Disorder Free Localisation in the 1D Falikov-Kimball Model
* Supervisor: Dr Johannes Knolle
* EPSRC Project N. [2120140][projectnumber]
* 2018 [M.Sc Thesis][msc], Natural Sciences,Trinity College, Cambridge
* Title: Imaging Magnetic Phenomena with Scanning Diamond Magnetometry
* Supervisor: Professor Mete Atatüre
* 20142018 Physics, Natural Sciences M.Sc & B.Sc, Trinity College, Cambridge
* Third Year: First (77%) Rank: 23/155
* Second Year: First (78%) Rank: 73/582
* First Year: High 2.1 (67%)
[phd]: /portfolio/1_phd/
[msc]: /portfolio/2_msc/
[projectnumber]: https://gtr.ukri.org/project/145404DD-ABAD-4CFB-A2D8-152A6AFCCEB7#/tabOverview
Work experience
-------------------
* 2018 Summer School on Collective Behaviour in Quantum Matter, ICTP, Trieste
* 2017 [CERN Summer Studentship][cern], CMS HGCAL Sensor Characterisation, CERN
* 3 months as a CERN summer student, helping to design a high volume electronic measurement processfor prototypes of 8 inch silicon sensors that will be used in a planned upgrade to the CMS endcap Calorimeter in the LHC. My time was split between working in a clean room on the measurement setup, analysing the data and attending a 6 week lecture course on High Energy Physics.
* 2016 University of Birmingham, Atomic Force Microscopy Summer Project, Birmingham
* Month long research placement with Professor Wolfgang Theis, designing a novel quartz tuning fork based atomic force microscope that relies on detecting resonance shifts to map out surface topographyand dissipation.
* 20122014 [FizzPOP][fizzpop]: The Birmingham Makerspace, Director, Birmingham
* FizzPOP is a community based workshop and social enterprise that fosters small technology and design projects. As one of the 5 founding directors I helped take it from a small group meeting in a borrowed space to a thriving community of more than 30 members with well equipped workshops and regular events.
* 2013 Department for International Development, Paid Hackathon, London
* A paid hackathon for DFID as one of a team of developers. The goal was to implement novel uses and visualisations of large quantities of aid data that DFID has accrued. Our project revolved around using natural language processing to look at online conversations and decide which data was most contextually relevant to that conversation
[cern]: /portfolio/3_cern/
[fizzpop]: https://fizzpop.org.uk/
Skills
------
* Highly proficient in the Python/Numpy/Scipy scientific stack
* Wider programming knowledge of Julia, C++/C and Javascript
* Highly mathematically literate
* Built a 3D printer from scratch.
* Extensive experience using [Fusion 360][fusion], [OpenSCAD][openscad] and [custom code](vasegen) to generate parts to print on it.
[fusion]: http://a360.co/2BjJ0z3
[openscad]: https://github.com/TomHodson/Raspberry-Pi-OpenSCAD-Model
[vasegen]: https://github.com/TomHodson/VaseExtruder
Teaching
----------
* 2021 PyProblems
* Composed a set of python problems for a final year General Relativity course focussed on raytraving geodesics through the Schwarzschild metric.
* 2020-2021 Interdisciplinary Research Computing, Teaching Assistant, Imperial
* Teaching students effective software development methods including git and HPC use.
* 2018-2019 Computational Physics,Teaching Assistant, Imperial
* Demonstrated for the third year Computational Physics course, helping students realise complex physics based programming projects in Python.
* 2019 1st Year Electronics Labs, Teaching Assistant, Imperial
* 2014-Private Tutoring
* Ive tutored privately for many years, covering Physics and Maths at all levels along with Computer Science, Chemistry and Biology at GCSE and current aided one student with a financial modelling course.
Talks
------
<ul>{% for post in site.talks %}
{% include archive-single-talk-cv.html %}
{% endfor %}</ul>
Publications
-------------
<ul>{% for post in site.publications %}
{% include archive-single-cv.html %}
{% endfor %}</ul>
{% comment %}
Projects
------
<ul>{% for post in site.portfolio %}
{% include archive-single.html %}
{% endfor %}</ul>
Teaching
---------
<ul>{% for post in site.teaching %}
{% include archive-single-cv.html %}
{% endfor %}</ul>
{% endcomment %}
Service and leadership
-----------------------
* 20202021 [Physics Departmental Postgraduate Representative][pgrep], Imperial College London
* Im one of the two postgrad representatives for the Physics department at Imperial.
* 20192020 CMTH Postgraduate Representative, Imperial College London
* Acted as the postgrad representative for my research group at Imperial.
* 2014-2017 Cambridge Student Community Action (SCA), President of Steering Group, Cambridge
* President of the student steering group of the charity SCA, which runs volunteering projects for young people and the elderly in the local area. I also volunteer as a mentor to a teenager and an 11 year old meeting each once a week, helping with homework and fostering their interests.
* 20162017 Physics Class Representative, Cambridge
* Responsible for liaising between my fellow students, the administration and course professors to improve the curriculum
[pgrep]: https://web.archive.org/web/20201126073809/https://www.imperialcollegeunion.org/your-union/your-representatives/a-to-z/physics-pg
Outreach
---------
* 2020 [Collective Misbehaviour][poem], Imperial College London
* An interactive web based poetry collaboration with [Dan Simpson][dan], the then poet-in-residence at Imperial College London. you can read an article about the project [here][poemarticle].
* 2019 [Profile for Imperial's LGBTQ+ Group][imp600], Imperial College London
[poem]: https://tomhodson.github.io/PoemProject/
[dan]: https://www.dansimpsonpoet.co.uk/#/collective-misbehaviour/
[imp600]: https://www.imperial.ac.uk/equality/staff-networks/imperial-600/meet-our-members/tom-hodson/
[poemarticle]: https://www.imperial.ac.uk/news/210833/imperials-research-through-poetic-lens/
Competitions
-------------
* 2021 Creativity Sandpit
* Pitched an accessible Android OS for the elderly to very positive reception from the judges.
* DigiFAB and FoNS Data Science Datathon
* Led a winning team of PhD students on [this challenge][datathon] to predict crystal structure and packing density from chemical structure data. Used a variety of techniques including recent advances in graph neural network techniques to win the competition.
* MSF Makeathon
* Designed and prototyped an inflatable mattress to reduce pressure sores for patients in field hospitals.
[datathon]: https://web.archive.org/web/20210418234129/https://www.imperial.ac.uk/news/218853/digifab-fons-data-science-datathon-competition/

View File

@ -1,202 +0,0 @@
---
permalink: /markdown/
title: "Markdown"
author_profile: true
redirect_from:
- /md/
- /markdown.html
---
## Locations of key files/directories
* Basic config options: _config.yml
* Top navigation bar config: _data/navigation.yml
* Single pages: _pages/
* Collections of pages are .md or .html files in:
* _publications/
* _portfolio/
* _posts/
* _teaching/
* _talks/
* Footer: _includes/footer.html
* Static files (like PDFs): /files/
* Profile image (can set in _config.yml): images/profile.png
## Tips and hints
* Name a file ".md" to have it render in markdown, name it ".html" to render in HTML.
* Go to the [commit list](https://github.com/academicpages/academicpages.github.io/commits/master) (on your repo) to find the last version Github built with Jekyll.
* Green check: successful build
* Orange circle: building
* Red X: error
* No icon: not built
## Resources
* [Liquid syntax guide](https://shopify.github.io/liquid/tags/control-flow/)
## Markdown guide
### Header three
#### Header four
##### Header five
###### Header six
## Blockquotes
Single line blockquote:
> Quotes are cool.
## Tables
### Table 1
| Entry | Item | |
| -------- | ------ | ------------------------------------------------------------ |
| [John Doe](#) | 2016 | Description of the item in the list |
| [Jane Doe](#) | 2019 | Description of the item in the list |
| [Doe Doe](#) | 2022 | Description of the item in the list |
### Table 2
| Header1 | Header2 | Header3 |
|:--------|:-------:|--------:|
| cell1 | cell2 | cell3 |
| cell4 | cell5 | cell6 |
|-----------------------------|
| cell1 | cell2 | cell3 |
| cell4 | cell5 | cell6 |
|=============================|
| Foot1 | Foot2 | Foot3 |
## Definition Lists
Definition List Title
: Definition list division.
Startup
: A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model.
#dowork
: Coined by Rob Dyrdek and his personal body guard Christopher "Big Black" Boykins, "Do Work" works as a self motivator, to motivating your friends.
Do It Live
: I'll let Bill O'Reilly [explain](https://www.youtube.com/watch?v=O_HyZ5aW76c "We'll Do It Live") this one.
## Unordered Lists (Nested)
* List item one
* List item one
* List item one
* List item two
* List item three
* List item four
* List item two
* List item three
* List item four
* List item two
* List item three
* List item four
## Ordered List (Nested)
1. List item one
1. List item one
1. List item one
2. List item two
3. List item three
4. List item four
2. List item two
3. List item three
4. List item four
2. List item two
3. List item three
4. List item four
## Buttons
Make any link standout more when applying the `.btn` class.
## Notices
**Watch out!** You can also add notices by appending `{: .notice}` to a paragraph.
{: .notice}
## HTML Tags
### Address Tag
<address>
1 Infinite Loop<br /> Cupertino, CA 95014<br /> United States
</address>
### Anchor Tag (aka. Link)
This is an example of a [link](http://github.com "Github").
### Abbreviation Tag
The abbreviation CSS stands for "Cascading Style Sheets".
*[CSS]: Cascading Style Sheets
### Cite Tag
"Code is poetry." ---<cite>Automattic</cite>
### Code Tag
You will learn later on in these tests that `word-wrap: break-word;` will be your best friend.
### Strike Tag
This tag will let you <strike>strikeout text</strike>.
### Emphasize Tag
The emphasize tag should _italicize_ text.
### Insert Tag
This tag should denote <ins>inserted</ins> text.
### Keyboard Tag
This scarcely known tag emulates <kbd>keyboard text</kbd>, which is usually styled like the `<code>` tag.
### Preformatted Tag
This tag styles large blocks of code.
<pre>
.post-title {
margin: 0 0 5px;
font-weight: bold;
font-size: 38px;
line-height: 1.2;
and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
}
</pre>
### Quote Tag
<q>Developers, developers, developers&#8230;</q> &#8211;Steve Ballmer
### Strong Tag
This tag shows **bold text**.
### Subscript Tag
Getting our science styling on with H<sub>2</sub>O, which should push the "2" down.
### Superscript Tag
Still sticking with science and Isaac Newton's E = MC<sup>2</sup>, which should lift the 2 up.
### Variable Tag
This allows you to denote <var>variables</var>.

View File

@ -1,17 +0,0 @@
---
permalink: /non-menu-page/
title: "Page not in menu"
excerpt: "This is a page not in th emain menu"
author_profile: true
redirect_from:
- "/nmp/"
- "/nmp.html"
---
This is a page not in the menu. You can use markdown in this page.
Heading 1
======
Heading 2
======

View File

@ -1,11 +0,0 @@
---
layout: archive
title: "Page Archive"
permalink: /page-archive/
author_profile: false
---
{% include base_path %}
{% for post in site.pages %}
{% include archive-single.html %}
{% endfor %}

View File

@ -1,44 +0,0 @@
---
layout: archive
title: "Portfolio"
permalink: /portfolio/
author_profile: true
---
{% include base_path %}
{% for post in site.portfolio %}
{% include archive-single-portfolio.html %}
{% endfor %}
{% comment %}
<div class="feature__wrapper">
{% for post in site.portfolio %}
<div class="feature__item">
<div class="archive__item">
<div class="archive__item-teaser" style="height:250px;">
<img src = "{{ post.image | prepend: '/images/'}}"
alt="{{post.alt}}}">
</div>
<div class="archive__item-body">
<h2 class="archive__item-title">{{post.title}}</h2>
{% if post.subtitle %}
<p>{{post.subtitle}}</p>
{% endif %}
<div class="archive__item-excerpt">
<p itemprop="description">{{ post.excerpt | markdownify }}</p>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
{% include feature_row %}
{% endcomment %}

View File

@ -1,16 +0,0 @@
---
layout: archive
title: "Publications"
permalink: /publications/
author_profile: true
---
{% if author.googlescholar %}
You can also find my articles on <u><a href="{{author.googlescholar}}">my Google Scholar profile</a>.</u>
{% endif %}
{% include base_path %}
{% for post in site.publications reversed %}
{% include archive-single.html %}
{% endfor %}

View File

@ -1,37 +0,0 @@
---
layout: archive
title: "Sitemap"
permalink: /sitemap/
author_profile: true
---
{% include base_path %}
A list of all the posts and pages found on the site. For you robots out there is an [XML version]({{ base_path }}/sitemap.xml) available for digesting as well.
<h2>Pages</h2>
{% for post in site.pages %}
{% include archive-single.html %}
{% endfor %}
<h2>Posts</h2>
{% for post in site.posts %}
{% include archive-single.html %}
{% endfor %}
{% capture written_label %}'None'{% endcapture %}
{% for collection in site.collections %}
{% unless collection.output == false or collection.label == "posts" %}
{% capture label %}{{ collection.label }}{% endcapture %}
{% if label != written_label %}
<h2>{{ label }}</h2>
{% capture written_label %}{{ label }}{% endcapture %}
{% endif %}
{% endunless %}
{% for post in collection.docs %}
{% unless collection.output == false or collection.label == "posts" %}
{% include archive-single.html %}
{% endunless %}
{% endfor %}
{% endfor %}

View File

@ -1,17 +0,0 @@
---
layout: archive
permalink: /tags/
title: "Posts by Tags"
author_profile: true
---
{% include base_path %}
{% include group-by-array collection=site.posts field="tags" %}
{% for tag in group_names %}
{% assign posts = group_items[forloop.index0] %}
<h2 id="{{ tag | slugify }}" class="archive__subtitle">{{ tag }}</h2>
{% for post in posts %}
{% include archive-single.html %}
{% endfor %}
{% endfor %}

View File

@ -1,9 +0,0 @@
---
layout: archive
title: "Talk map"
permalink: /talkmap.html
author_profile: true
---
<p>This map is generated from a Jupyter Notebook file in <a href="https://github.com/academicpages/academicpages.github.io/blob/master/_talks/talkmap.ipynb">/_talks/talkmap.ipynb</a>, which mines the location fields in the .md files in _talks/.</p>
<iframe src="/talkmap/map.html" height="700" width="850" style="border:none;"></iframe>

View File

@ -1,16 +0,0 @@
---
layout: archive
title: "Talks and presentations"
permalink: /talks/
author_profile: true
---
{% if site.talkmap_link == true %}
<p style="text-decoration:underline;"><a href="/talkmap.html">See a map of all the places I've given a talk!</a></p>
{% endif %}
{% for post in site.talks reversed %}
{% include archive-single-talk.html %}
{% endfor %}

View File

@ -1,12 +0,0 @@
---
layout: archive
title: "Teaching"
permalink: /teaching/
author_profile: true
---
{% include base_path %}
{% for post in site.teaching reversed %}
{% include archive-single.html %}
{% endfor %}

View File

@ -1,39 +0,0 @@
---
permalink: /terms/
title: "Terms and Privacy Policy"
modified: 2016-06-06
---
{% include base_path %}
{% include toc %}
## Privacy Policy
The privacy of my visitors is extremely important. This Privacy Policy outlines the types of personal information that is received and collected and how it is used.
First and foremost, I will never share your email address or any other personal information to anyone without your direct consent.
### Log Files
Like many other websites, this site uses log files to help learn about when, from where, and how often traffic flows to this site. The information in these log files include:
* Internet Protocol addresses (IP)
* Types of browser
* Internet Service Provider (ISP)
* Date and time stamp
* Referring and exit pages
* Number of clicks
All of this information is not linked to anything that is personally identifiable.
### Cookies and Web Beacons
When you visit this site "convenience" cookies are stored on your computer when you submit a comment to help you log in faster to [Disqus](http://disqus.com) the next time you leave a comment.
Third-party advertisers may also place and read cookies on your browser and/or use web beacons to collect information. This site has no access or control over these cookies. You should review the respective privacy policies on any and all third-party ad servers for more information regarding their practices and how to opt-out.
If you wish to disable cookies, you may do so through your web browser options. Instructions for doing so can be found on the specific web browsers' websites.
#### Google Analytics
Google Analytics is a web analytics tool I use to help understand how visitors engage with this website. It reports website trends using cookies and web beacons without identifying individual visitors. You can read [Google Analytics Privacy Policy](http://www.google.com/analytics/learn/privacy.html).

View File

@ -1,19 +0,0 @@
---
layout: archive
permalink: /year-archive/
title: "Blog posts"
author_profile: true
redirect_from:
- /wordpress/blog-posts/
---
{% include base_path %}
{% capture written_year %}'None'{% endcapture %}
{% for post in site.posts %}
{% capture year %}{{ post.date | date: '%Y' }}{% endcapture %}
{% if year != written_year %}
<h2 id="{{ year | slugify }}" class="archive__subtitle">{{ year }}</h2>
{% capture written_year %}{{ year }}{% endcapture %}
{% endif %}
{% include archive-single.html %}
{% endfor %}

View File

@ -1,19 +0,0 @@
---
title: "PhD Project"
subtitle: "The one-dimensional Long-Range Falikov-Kimball Model"
excerpt: "I study a simplified model of electrons moving about in a crystal."
collection: portfolio
image: "phase_diagram.png"
alt: "A colourful scientific figure from my work."
---
## 2018 - 2021 (expected)
### Plain English
Building upon the work of others, I study a very simplified model of electrons moving about in a crystal. A crystal is a structure that repeats through space, like the pattern on a chess board. We work in one dimension so in our case it would be more like patterns of coloured beads on a necklace. In addition the crystal is slightly disordered, as if the person making the necklace sometimes gets it a little wrong. This disorder tends to disrupt the movement of the electrons, often meaning that they cannot move at all.
### Technical English
Both disorder or interactions can turn metals into insulators. One of the simplest settings to study this physics is given by the Falikov-Kimbal (FK) model describing itinerant fermions interacting with a classical Ising background field. Despite the translational invariance of the model, it has been shown that in-homogenous configurations of the background field give rise to effective disorder physics leading to a rich phase diagram in two (or more) dimensions with finite temperature charge density wave (CDW) transitions and interaction-tuned Anderson versus Mott localized phases. Here, we propose a generalised FK model in one dimension with long-range interactions which shows a similarly rich phase diagram. Using an exact Markov Chain Monte Carlo method we map out the phase diagram and compute the energy resolved localisation properties of the fermions. We compare the behaviour of this transitionally invariant model to an Anderson model of uncorrelated binary disorder about a background CDW field and discuss its experimental implications.
![A figure from the paper](/images/phase_diagram.png)

View File

@ -1,7 +1,8 @@
--- ---
title: 'How I use Zotero, Better Bibtex and Overleaf together' title: Managing Citations
permalink: /posts/2022/zotero_betterbitex_overleaf excerpt: How I use Zotero, Better Bibtex and Overleaf together
date: 2022-01-01 layout: post
image:
--- ---
## Citation workflow ## Citation workflow

View File

@ -1,12 +1,10 @@
--- ---
layout: single title: My Jupyter and Conda setup
title: "My Jupyter and Conda setup" date: 2022-02-02
header: layout: post
teaser: "unsplash-gallery-image-2-th.jpg" image:
--- ---
## My conda setup
I really like working in Jupyterlab but getting it to work nicely is always a bit challenging, these are my notes for roughly how I have it set up. I really like working in Jupyterlab but getting it to work nicely is always a bit challenging, these are my notes for roughly how I have it set up.
### Conda ### Conda

Some files were not shown because too many files have changed in this diff Show More