summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2021-09-02 11:29:05 +0200
committerYann Herklotz <git@yannherklotz.com>2021-09-02 11:29:05 +0200
commitf03aba072649c049aeb8b37e3c946b1e07fa34a8 (patch)
tree4780a8a590eed951e1d62d0876e9e59017f67ea9
downloadhugo-ymherklotz-f03aba072649c049aeb8b37e3c946b1e07fa34a8.tar.gz
hugo-ymherklotz-f03aba072649c049aeb8b37e3c946b1e07fa34a8.zip
Add initial files
-rw-r--r--.gitignore1
-rw-r--r--LICENSE20
-rw-r--r--data/news.toml0
-rw-r--r--layouts/404.html7
-rw-r--r--layouts/_default/baseof.html9
-rw-r--r--layouts/_default/list.html0
-rw-r--r--layouts/_default/single.html15
-rw-r--r--layouts/blog/list.html21
-rw-r--r--layouts/blog/single.html17
-rw-r--r--layouts/blog/summary.html11
-rw-r--r--layouts/index.html35
-rw-r--r--layouts/partials/footer.html25
-rw-r--r--layouts/partials/head.html30
-rw-r--r--layouts/partials/header.html9
-rw-r--r--layouts/partials/news.html9
-rw-r--r--layouts/partials/papers.html54
-rw-r--r--layouts/partials/papers_other.html35
-rw-r--r--layouts/partials/photos.html108
-rw-r--r--layouts/photos/list.html7
-rw-r--r--static/css/blog.css7
-rw-r--r--static/css/colours.css66
-rw-r--r--static/css/default.css455
-rw-r--r--static/css/fonts.css215
-rw-r--r--static/css/syntax.css69
-rw-r--r--static/fonts/ttf/iosevka-bold.ttfbin0 -> 400252 bytes
-rw-r--r--static/fonts/ttf/iosevka-bolditalic.ttfbin0 -> 411636 bytes
-rw-r--r--static/fonts/ttf/iosevka-boldoblique.ttfbin0 -> 411260 bytes
-rw-r--r--static/fonts/ttf/iosevka-extrabold.ttfbin0 -> 398908 bytes
-rw-r--r--static/fonts/ttf/iosevka-extrabolditalic.ttfbin0 -> 411300 bytes
-rw-r--r--static/fonts/ttf/iosevka-extraboldoblique.ttfbin0 -> 410772 bytes
-rw-r--r--static/fonts/ttf/iosevka-extralight.ttfbin0 -> 388676 bytes
-rw-r--r--static/fonts/ttf/iosevka-extralightitalic.ttfbin0 -> 402068 bytes
-rw-r--r--static/fonts/ttf/iosevka-extralightoblique.ttfbin0 -> 401876 bytes
-rw-r--r--static/fonts/ttf/iosevka-heavy.ttfbin0 -> 397924 bytes
-rw-r--r--static/fonts/ttf/iosevka-heavyitalic.ttfbin0 -> 410132 bytes
-rw-r--r--static/fonts/ttf/iosevka-heavyoblique.ttfbin0 -> 409104 bytes
-rw-r--r--static/fonts/ttf/iosevka-italic.ttfbin0 -> 409836 bytes
-rw-r--r--static/fonts/ttf/iosevka-light.ttfbin0 -> 395084 bytes
-rw-r--r--static/fonts/ttf/iosevka-lightitalic.ttfbin0 -> 409320 bytes
-rw-r--r--static/fonts/ttf/iosevka-lightoblique.ttfbin0 -> 408660 bytes
-rw-r--r--static/fonts/ttf/iosevka-medium.ttfbin0 -> 397336 bytes
-rw-r--r--static/fonts/ttf/iosevka-mediumitalic.ttfbin0 -> 410504 bytes
-rw-r--r--static/fonts/ttf/iosevka-mediumoblique.ttfbin0 -> 409856 bytes
-rw-r--r--static/fonts/ttf/iosevka-oblique.ttfbin0 -> 409408 bytes
-rw-r--r--static/fonts/ttf/iosevka-regular.ttfbin0 -> 397980 bytes
-rw-r--r--static/fonts/ttf/iosevka-semibold.ttfbin0 -> 398824 bytes
-rw-r--r--static/fonts/ttf/iosevka-semibolditalic.ttfbin0 -> 412456 bytes
-rw-r--r--static/fonts/ttf/iosevka-semiboldoblique.ttfbin0 -> 411532 bytes
-rw-r--r--static/fonts/ttf/iosevka-thin.ttfbin0 -> 386864 bytes
-rw-r--r--static/fonts/ttf/iosevka-thinitalic.ttfbin0 -> 400292 bytes
-rw-r--r--static/fonts/ttf/iosevka-thinoblique.ttfbin0 -> 400656 bytes
-rw-r--r--static/fonts/woff/iosevka-bold.woffbin0 -> 165516 bytes
-rw-r--r--static/fonts/woff/iosevka-bolditalic.woffbin0 -> 183036 bytes
-rw-r--r--static/fonts/woff/iosevka-boldoblique.woffbin0 -> 182364 bytes
-rw-r--r--static/fonts/woff/iosevka-extrabold.woffbin0 -> 165620 bytes
-rw-r--r--static/fonts/woff/iosevka-extrabolditalic.woffbin0 -> 183116 bytes
-rw-r--r--static/fonts/woff/iosevka-extraboldoblique.woffbin0 -> 182372 bytes
-rw-r--r--static/fonts/woff/iosevka-extralight.woffbin0 -> 160120 bytes
-rw-r--r--static/fonts/woff/iosevka-extralightitalic.woffbin0 -> 178660 bytes
-rw-r--r--static/fonts/woff/iosevka-extralightoblique.woffbin0 -> 178464 bytes
-rw-r--r--static/fonts/woff/iosevka-heavy.woffbin0 -> 164892 bytes
-rw-r--r--static/fonts/woff/iosevka-heavyitalic.woffbin0 -> 182588 bytes
-rw-r--r--static/fonts/woff/iosevka-heavyoblique.woffbin0 -> 181752 bytes
-rw-r--r--static/fonts/woff/iosevka-italic.woffbin0 -> 182056 bytes
-rw-r--r--static/fonts/woff/iosevka-light.woffbin0 -> 162808 bytes
-rw-r--r--static/fonts/woff/iosevka-lightitalic.woffbin0 -> 181416 bytes
-rw-r--r--static/fonts/woff/iosevka-lightoblique.woffbin0 -> 181112 bytes
-rw-r--r--static/fonts/woff/iosevka-medium.woffbin0 -> 164276 bytes
-rw-r--r--static/fonts/woff/iosevka-mediumitalic.woffbin0 -> 182788 bytes
-rw-r--r--static/fonts/woff/iosevka-mediumoblique.woffbin0 -> 182144 bytes
-rw-r--r--static/fonts/woff/iosevka-oblique.woffbin0 -> 181564 bytes
-rw-r--r--static/fonts/woff/iosevka-regular.woffbin0 -> 164196 bytes
-rw-r--r--static/fonts/woff/iosevka-semibold.woffbin0 -> 164860 bytes
-rw-r--r--static/fonts/woff/iosevka-semibolditalic.woffbin0 -> 182952 bytes
-rw-r--r--static/fonts/woff/iosevka-semiboldoblique.woffbin0 -> 182092 bytes
-rw-r--r--static/fonts/woff/iosevka-thin.woffbin0 -> 159564 bytes
-rw-r--r--static/fonts/woff/iosevka-thinitalic.woffbin0 -> 177684 bytes
-rw-r--r--static/fonts/woff/iosevka-thinoblique.woffbin0 -> 177636 bytes
-rw-r--r--static/fonts/woff2/iosevka-bold.woff2bin0 -> 115784 bytes
-rw-r--r--static/fonts/woff2/iosevka-bolditalic.woff2bin0 -> 128152 bytes
-rw-r--r--static/fonts/woff2/iosevka-boldoblique.woff2bin0 -> 127484 bytes
-rw-r--r--static/fonts/woff2/iosevka-extrabold.woff2bin0 -> 115808 bytes
-rw-r--r--static/fonts/woff2/iosevka-extrabolditalic.woff2bin0 -> 127720 bytes
-rw-r--r--static/fonts/woff2/iosevka-extraboldoblique.woff2bin0 -> 126960 bytes
-rw-r--r--static/fonts/woff2/iosevka-extralight.woff2bin0 -> 112164 bytes
-rw-r--r--static/fonts/woff2/iosevka-extralightitalic.woff2bin0 -> 124388 bytes
-rw-r--r--static/fonts/woff2/iosevka-extralightoblique.woff2bin0 -> 123848 bytes
-rw-r--r--static/fonts/woff2/iosevka-heavy.woff2bin0 -> 115528 bytes
-rw-r--r--static/fonts/woff2/iosevka-heavyitalic.woff2bin0 -> 127828 bytes
-rw-r--r--static/fonts/woff2/iosevka-heavyoblique.woff2bin0 -> 126804 bytes
-rw-r--r--static/fonts/woff2/iosevka-italic.woff2bin0 -> 126684 bytes
-rw-r--r--static/fonts/woff2/iosevka-light.woff2bin0 -> 113692 bytes
-rw-r--r--static/fonts/woff2/iosevka-lightitalic.woff2bin0 -> 125936 bytes
-rw-r--r--static/fonts/woff2/iosevka-lightoblique.woff2bin0 -> 125472 bytes
-rw-r--r--static/fonts/woff2/iosevka-medium.woff2bin0 -> 114904 bytes
-rw-r--r--static/fonts/woff2/iosevka-mediumitalic.woff2bin0 -> 127672 bytes
-rw-r--r--static/fonts/woff2/iosevka-mediumoblique.woff2bin0 -> 126544 bytes
-rw-r--r--static/fonts/woff2/iosevka-oblique.woff2bin0 -> 126036 bytes
-rw-r--r--static/fonts/woff2/iosevka-regular.woff2bin0 -> 114960 bytes
-rw-r--r--static/fonts/woff2/iosevka-semibold.woff2bin0 -> 115408 bytes
-rw-r--r--static/fonts/woff2/iosevka-semibolditalic.woff2bin0 -> 127480 bytes
-rw-r--r--static/fonts/woff2/iosevka-semiboldoblique.woff2bin0 -> 126716 bytes
-rw-r--r--static/fonts/woff2/iosevka-thin.woff2bin0 -> 110944 bytes
-rw-r--r--static/fonts/woff2/iosevka-thinitalic.woff2bin0 -> 123228 bytes
-rw-r--r--static/fonts/woff2/iosevka-thinoblique.woff2bin0 -> 122768 bytes
-rw-r--r--theme.toml21
106 files changed, 1246 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e43b0f9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.DS_Store
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..e4483e2
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2021 YOUR_NAME_HERE
+
+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.
diff --git a/data/news.toml b/data/news.toml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/data/news.toml
diff --git a/layouts/404.html b/layouts/404.html
new file mode 100644
index 0000000..65387aa
--- /dev/null
+++ b/layouts/404.html
@@ -0,0 +1,7 @@
+{{ define "main"}}
+ <main id="main">
+ <div>
+ <h1 id="title"><a href="{{ "/" | relURL }}">Go Home</a></h1>
+ </div>
+ </main>
+{{ end }}
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
new file mode 100644
index 0000000..9621706
--- /dev/null
+++ b/layouts/_default/baseof.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html lang="{{ .Site.LanguageCode }}">
+ {{- partial "head.html" . -}}
+ <body>
+ {{- partial "header.html" . -}}
+ {{- block "main" . }}{{- end }}
+ {{- partial "footer.html" . -}}
+ </body>
+</html>
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/layouts/_default/list.html
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
new file mode 100644
index 0000000..fcc7a46
--- /dev/null
+++ b/layouts/_default/single.html
@@ -0,0 +1,15 @@
+{{ define "main" }}
+<main>
+ <div class="container">
+ <div class="left flex">
+ </div>
+ <div class="center flex">
+ <article class="content">
+ {{ .Content }}
+ </article>
+ </div>
+ <div class="right flex">
+ </div>
+ </div>
+</main>
+{{ end }}
diff --git a/layouts/blog/list.html b/layouts/blog/list.html
new file mode 100644
index 0000000..2749943
--- /dev/null
+++ b/layouts/blog/list.html
@@ -0,0 +1,21 @@
+{{ define "main" }}
+<main>
+ <div class="container">
+ <div class="left flex">
+ </div>
+ <div class="center flex">
+ <article class="content">
+ <h1>{{ .Title }}</h1>
+
+ {{ .Content }}
+
+ {{ range (where .Site.RegularPages "Section" "blog") }}
+ {{ .Render "summary"}}
+ {{ end }}
+ </article>
+ </div>
+ <div class="right flex">
+ </div>
+ </div>
+</main>
+{{ end }}
diff --git a/layouts/blog/single.html b/layouts/blog/single.html
new file mode 100644
index 0000000..b29ed31
--- /dev/null
+++ b/layouts/blog/single.html
@@ -0,0 +1,17 @@
+{{ define "main" }}
+<main>
+ <div class="container">
+ <div class="left flex">
+ </div>
+ <div class="center flex">
+ <h1>{{ .Title }}</h1>
+ <section class="post-meta">Posted on {{ .Date.Format "January 2, 2006" }}</section>
+ <article>
+ {{ .Content }}
+ </article>
+ </div>
+ <div class="right flex">
+ </div>
+ </div>
+</main>
+{{ end }}
diff --git a/layouts/blog/summary.html b/layouts/blog/summary.html
new file mode 100644
index 0000000..e0baae2
--- /dev/null
+++ b/layouts/blog/summary.html
@@ -0,0 +1,11 @@
+<div class="post-display">
+ <div class="post-meta">
+ {{ .Date.Format "Mon, Jan 2, 2006" }} | {{ .FuzzyWordCount }} Words
+ </div>
+ <div class="post-title">
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ </div>
+ <div class="post-description">
+ {{ .Summary }}
+ </div>
+</div>
diff --git a/layouts/index.html b/layouts/index.html
new file mode 100644
index 0000000..2ecb52a
--- /dev/null
+++ b/layouts/index.html
@@ -0,0 +1,35 @@
+{{ define "main" }}
+<main>
+ <div class="container">
+ <div class="left flex">
+ </div>
+ <div class="center flex">
+ <article class="content">
+
+ {{ .Content }}
+
+ <h2>Publications</h2>
+
+ {{ partial "papers.html" . }}
+
+ <h2>Other Papers and Posters</h2>
+
+ {{ partial "papers_other.html" . }}
+
+ <h2>Blog</h2>
+
+ {{ range first 5 (where .Site.RegularPages "Section" "blog") }}
+ {{ .Render "summary"}}
+ {{ end }}
+
+ <h2>News</h2>
+
+ {{ partial "news.html" . }}
+
+ </article>
+ </div>
+ <div class="right flex">
+ </div>
+ </div>
+</main>
+{{ end }}
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
new file mode 100644
index 0000000..b42e2d8
--- /dev/null
+++ b/layouts/partials/footer.html
@@ -0,0 +1,25 @@
+<footer>
+ <p class="social">
+ <a href="https://github.com/ymherklotz"><i class="fab fa-github"></i></a>
+ <a href="https://gitlab.com/ymherklotz"><i class="fab fa-gitlab"></i></a>
+ <a href="https://linkedin.com/in/yannherklotz"><i class="fab fa-linkedin-in"></i></a>
+ <a href="https://twitter.com/@ymherklotz"><i class="fab
+ fa-twitter"></i></a>
+ <a href="mailto:yann@yannherklotz.com"><i class="fas
+ fa-envelope"></i></a>
+ <a href="/atom.xml"><i class="fas fa-rss"></i></a>
+ </p>
+ <div class="generated-by">
+ &#169; 2019-2021 Yann Herklotz
+ </div>
+</footer>
+{{ if .Site.Params.katex }}
+<script defer
+ src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.js"
+ integrity="sha384-K3vbOmF2BtaVai+Qk37uypf7VrgBubhQreNQe9aGsz9lB63dIFiQVlJbr92dw2Lx"
+ crossorigin="anonymous"></script>
+<script defer
+ src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/contrib/auto-render.min.js"
+ integrity="sha384-kmZOZB5ObwgQnS/DuDg6TScgOiWWBiVt0plIRkZCmE6rDZGrEOQeHM5PcHi+nyqe"
+ crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
+{{ end }}
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
new file mode 100644
index 0000000..1891408
--- /dev/null
+++ b/layouts/partials/head.html
@@ -0,0 +1,30 @@
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
+ <title>{{ if not .IsHome }}{{ with .Title }}{{ . }} | {{ end }}{{ end }}{{ .Site.Title }}</title>
+ <meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{ with .Summary }}{{ . }}{{ else }}{{ .Site.Params.description }}{{end }}{{ end }} ">
+ {{ template "_internal/opengraph.html" . }}
+ {{ template "_internal/twitter_cards.html" . }}
+
+ <link rel="canonical" href="{{ .Permalink }}" />
+ <link rel="icon" href="/favicon.ico" >
+ <link href="https://fonts.googleapis.com/css?family=Libre+Baskerville&display=swap"
+ rel="stylesheet">
+ {{ if .Site.Params.katex }}
+ <link rel="stylesheet"
+ href="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.css"
+ integrity="sha384-9eLZqc9ds8eNjO3TmqPeYcDj8n+Qfa4nuSiGYa6DjLNcv9BtN69ZIulL9+8CqC9Y"
+ crossorigin="anonymous">
+ {{ end }}
+ <link rel="stylesheet"
+ href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
+ integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf"
+ crossorigin="anonymous">
+ <link rel="stylesheet" href="/css/fonts.css" />
+ <link rel="stylesheet" href="/css/syntax.css" />
+ <link rel="stylesheet" href="/css/colours.css" />
+ <link rel="stylesheet" href="/css/default.css" />
+
+ <link rel="preload" href="/fonts/woff2/iosevka-extrabold.woff2">
+</head>
diff --git a/layouts/partials/header.html b/layouts/partials/header.html
new file mode 100644
index 0000000..079cbde
--- /dev/null
+++ b/layouts/partials/header.html
@@ -0,0 +1,9 @@
+<header>
+ <div class="logo">
+ <a href="/">Yann Herklotz</a>
+ </div>
+ <nav>
+ <span><a href="/blog/">Blog</a></span>
+ <span><a href="/photos/">Photos</a></span>
+ </nav>
+</header>
diff --git a/layouts/partials/news.html b/layouts/partials/news.html
new file mode 100644
index 0000000..22c80b2
--- /dev/null
+++ b/layouts/partials/news.html
@@ -0,0 +1,9 @@
+<table class="news">
+ <tbody>
+ {{ range $.Site.Data.news }}
+ {{ range first 5 . }}
+ <tr><td class="news-date">{{ .date.Format "2006-01-02" }}</td><td>{{ safeHTML .event }}</td></tr>
+ {{ end }}
+ {{ end }}
+ </tbody>
+</table>
diff --git a/layouts/partials/papers.html b/layouts/partials/papers.html
new file mode 100644
index 0000000..ed212fa
--- /dev/null
+++ b/layouts/partials/papers.html
@@ -0,0 +1,54 @@
+
+<!-- This document was automatically generated with bibtex2html 1.99
+ (see http://www.lri.fr/~filliatr/bibtex2html/),
+ with the following command:
+ bibtex2html -o blog/templates/papers -use-keys -dl -linebreak -noabstract -nokeywords -nobibsource -nofooter -nodoc --named-field url_video video --named-field url_tex tex --named-field url_slides slides --named-field url_press press --named-field url_poster poster --named-field url_manuscript pdf --named-field url_blog_post blog --named-field url_artifact artifact blog/yann.bib -->
+
+
+<dl>
+
+<dt>
+<b><a name="OOPSLA&nbsp;&#39;21">OOPSLA&nbsp;&#39;21</a></b>
+</dt>
+<dd>
+<b>Yann Herklotz</b>, James&nbsp;D. Pollard, Nadesh Ramanathan, and John Wickerson.
+ Formal verification of high-level synthesis.
+ volume&nbsp;5, New York, NY, USA, 11 2021. Association for Computing
+ Machinery.<br />
+<b>&nbsp;<a href="/papers/fvhls_oopsla21.pdf">pdf</a>&nbsp;</b>
+
+</dd>
+
+
+<dt>
+<b><a name="FCCM&nbsp;&#39;21">FCCM&nbsp;&#39;21</a></b>
+</dt>
+<dd>
+<b>Yann Herklotz</b>, Zewei Du, Nadesh Ramanathan, and John Wickerson.
+ An empirical study of the reliability of high-level synthesis tools.
+ In <em>29th IEEE Annual Int. Symp. on Field-Programmable Custom
+ Computing Machines</em>, 2021.<br />
+[&nbsp;<a href="http://dx.doi.org/10.1109/FCCM51124.2021.00034">DOI</a>&nbsp;|
+<a href="https://github.com/ymherklotz/fuzzing-hls">artifact</a>&nbsp;|
+<a href="/papers/esrhls_fccm2021.pdf">pdf</a>&nbsp;]
+
+</dd>
+
+
+<dt>
+<b><a name="FPGA&nbsp;&#39;20">FPGA&nbsp;&#39;20</a></b>
+</dt>
+<dd>
+<b>Yann Herklotz</b> and John Wickerson.
+ Finding and understanding bugs in FPGA synthesis tools.
+ In <em>ACM/SIGDA Int. Symp. on Field-Programmable Gate Arrays</em>,
+ 2020.<br />
+[&nbsp;<a href="http://dx.doi.org/10.1145/3373087.3375310">DOI</a>&nbsp;|
+<a href="https://github.com/ymherklotz/verismith">artifact</a>&nbsp;|
+<a href="/blog/2019-06-19-verismith.html">blog</a>&nbsp;|
+<a href="/papers/fubfst_fpga2020.pdf">pdf</a>&nbsp;|
+<a href="/docs/msrphd2019/verismith_poster.pdf">poster</a>&nbsp;|
+<a href="/docs/fpga2020/verismith_slides.pdf">slides</a>&nbsp;]
+
+</dd>
+</dl>
diff --git a/layouts/partials/papers_other.html b/layouts/partials/papers_other.html
new file mode 100644
index 0000000..82b8448
--- /dev/null
+++ b/layouts/partials/papers_other.html
@@ -0,0 +1,35 @@
+
+<!-- This document was automatically generated with bibtex2html 1.99
+ (see http://www.lri.fr/~filliatr/bibtex2html/),
+ with the following command:
+ bibtex2html -o blog/templates/papers_other -use-keys -dl -linebreak -noabstract -nokeywords -nobibsource -nofooter -nodoc --named-field url_video video --named-field url_tex tex --named-field url_slides slides --named-field url_press press --named-field url_poster poster --named-field url_manuscript pdf --named-field url_blog_post blog --named-field url_artifact artifact blog/yann_other.bib -->
+
+
+<dl>
+
+<dt>
+<b><a name="LATTE&nbsp;&#39;21">LATTE&nbsp;&#39;21</a></b>
+</dt>
+<dd>
+<b>Yann Herklotz</b> and John Wickerson.
+ High-level synthesis tools should be proven correct.
+ In <em>Workshop on Languages, Tools, and Techniques for Accelerator
+ Design</em>, 2021.<br />
+<b>&nbsp;<a href="/papers/hlsspc_latte2021.pdf">pdf</a>&nbsp;</b>
+
+</dd>
+
+
+<dt>
+<b><a name="FPGA&nbsp;&#39;21">FPGA&nbsp;&#39;21</a></b>
+</dt>
+<dd>
+Zewei Du, <b>Yann Herklotz</b>, Nadesh Ramanathan, and John Wickerson.
+ Fuzzing high-level synthesis tools.
+ In <em>ACM/SIGDA Int. Symp. on Field-Programmable Gate Arrays</em>,
+ 2021.<br />
+[&nbsp;<a href="http://dx.doi.org/10.1145/3431920.3439466">DOI</a>&nbsp;|
+<a href="/docs/fpga2021/fpga2021_slides.pdf">slides</a>&nbsp;]
+
+</dd>
+</dl>
diff --git a/layouts/partials/photos.html b/layouts/partials/photos.html
new file mode 100644
index 0000000..7b998ad
--- /dev/null
+++ b/layouts/partials/photos.html
@@ -0,0 +1,108 @@
+<div class="gallery-4">
+<div class="gallery-row">
+<div class="gallery-column">
+<a target="_blank" href="https://live.staticflickr.com/65535/49611434651_20bd6e9358_k.jpg"><img src="https://live.staticflickr.com/65535/49611434651_3f6ae12961_c.jpg" alt="Floating Bread"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610761353_35d82f0cc4_k.jpg"><img src="https://live.staticflickr.com/65535/49610761353_6019cc339e_c.jpg" alt="Sunset over Golden Gate"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610918098_6269ef249c_k.jpg"><img src="https://live.staticflickr.com/65535/49610918098_e31c345ace_c.jpg" alt="Electricity in the Sky"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512644248_3034fe1a46_k.jpg"><img src="https://live.staticflickr.com/65535/49512644248_bc7ac9bb16_c.jpg" alt="Milford Sound"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49513105243_22ebfbc5a2_k.jpg"><img src="https://live.staticflickr.com/65535/49513105243_8173489e72_c.jpg" alt="Stars at Mt. Cook"></a>
+<a target="_blank" href="https://live.staticflickr.com/7803/47432018872_ed8f869cac_k.jpg"><img src="https://live.staticflickr.com/7803/47432018872_3e3eb1e894_c.jpg" alt="Ship"></a>
+<a target="_blank" href="https://live.staticflickr.com/7855/46569535645_4f724c752a_k.jpg"><img src="https://live.staticflickr.com/7855/46569535645_9f99ce0440_c.jpg" alt="Heineken"></a>
+</div>
+<div class="gallery-column">
+<a target="_blank" href="https://live.staticflickr.com/65535/49611692642_5a6a084a7f_k.jpg"><img src="https://live.staticflickr.com/65535/49611692642_2e5102cfa1_c.jpg" alt="Curvy Street"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49611553947_5d2c9441bb_k.jpg"><img src="https://live.staticflickr.com/65535/49611553947_7910ef4ab8_c.jpg" alt="Towering Redwoods"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610754728_26bd19a4ab_k.jpg"><img src="https://live.staticflickr.com/65535/49610754728_3016fc757d_c.jpg" alt="Golden Gate"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49513396932_3e52b9001d_k.jpg"><img src="https://live.staticflickr.com/65535/49513396932_e5e6fb002e_c.jpg" alt="In the park"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49513023898_e20c7c434e_k.jpg"><img src="https://live.staticflickr.com/65535/49513023898_7bc8c1eb3c_c.jpg" alt="Yellow car in Manly"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512938043_90455fe434_k.jpg"><img src="https://live.staticflickr.com/65535/49512938043_7cfc73a87c_c.jpg" alt="Leiden bridge"></a>
+</div>
+<div class="gallery-column">
+<a target="_blank" href="https://live.staticflickr.com/65535/49611435161_a8db38b01d_k.jpg"><img src="https://live.staticflickr.com/65535/49611435161_ca56e8219f_c.jpg" alt="Classic Red Light"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49611540992_c3ebe1630d_k.jpg"><img src="https://live.staticflickr.com/65535/49611540992_594b409298_c.jpg" alt="Cold Prison"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49611268661_41ae551b5f_k.jpg"><img src="https://live.staticflickr.com/65535/49611268661_733861b53a_c.jpg" alt="Turquoise House"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512675363_61fd83df64_k.jpg"><img src="https://live.staticflickr.com/65535/49512675363_9f7a235931_c.jpg" alt="Curious fish"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512538408_fa1e3ea036_k.jpg"><img src="https://live.staticflickr.com/65535/49512538408_d5ab19f1b4_c.jpg" alt="Shadow in the woods"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512201816_e078719f95_k.jpg"><img src="https://live.staticflickr.com/65535/49512201816_83bb61ef97_c.jpg" alt="Manly - North Head"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49511420518_44338b1e0f_k.jpg"><img src="https://live.staticflickr.com/65535/49511420518_06e35f47c6_c.jpg" alt="Waterloo Graffiti"></a>
+<a target="_blank" href="https://live.staticflickr.com/7877/47431978082_56b11444eb_k.jpg"><img src="https://live.staticflickr.com/7877/47431978082_ebc4797b37_c.jpg" alt="Bike"></a>
+</div>
+<div class="gallery-column">
+<a target="_blank" href="https://live.staticflickr.com/65535/49610780673_858e5843a9_k.jpg"><img src="https://live.staticflickr.com/65535/49610780673_7f5132e48e_c.jpg" alt="Road in Redwood Forest"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610917933_3a6d33427d_k.jpg"><img src="https://live.staticflickr.com/65535/49610917933_2d580bace0_c.jpg" alt="Greenery"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49513169993_98b346cf48_k.jpg"><img src="https://live.staticflickr.com/65535/49513169993_2162fba9e6_c.jpg" alt="Waterfall"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49511920373_a46d7cdbae_k.jpg"><img src="https://live.staticflickr.com/65535/49511920373_d802df85c3_c.jpg" alt="Tasman ice lake"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512967498_c238e2ef12_k.jpg"><img src="https://live.staticflickr.com/65535/49512967498_c1056a699c_c.jpg" alt="Sydney bridge"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512307377_14d7c9cc62_k.jpg"><img src="https://live.staticflickr.com/65535/49512307377_4bd852db0f_c.jpg" alt="Vintage car"></a>
+<a target="_blank" href="https://live.staticflickr.com/7833/32542895827_a7a26a41e4_k.jpg"><img src="https://live.staticflickr.com/7833/32542895827_cbd9d9f3fa_c.jpg" alt="Cathedral"></a>
+</div>
+</div>
+</div><div class="gallery-2">
+<div class="gallery-row">
+<div class="gallery-column">
+<a target="_blank" href="https://live.staticflickr.com/65535/49611434651_20bd6e9358_k.jpg"><img src="https://live.staticflickr.com/65535/49611434651_3f6ae12961_c.jpg" alt="Floating Bread"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610780673_858e5843a9_k.jpg"><img src="https://live.staticflickr.com/65535/49610780673_7f5132e48e_c.jpg" alt="Road in Redwood Forest"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49611540992_c3ebe1630d_k.jpg"><img src="https://live.staticflickr.com/65535/49611540992_594b409298_c.jpg" alt="Cold Prison"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610761353_35d82f0cc4_k.jpg"><img src="https://live.staticflickr.com/65535/49610761353_6019cc339e_c.jpg" alt="Sunset over Golden Gate"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49611268661_41ae551b5f_k.jpg"><img src="https://live.staticflickr.com/65535/49611268661_733861b53a_c.jpg" alt="Turquoise House"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610918098_6269ef249c_k.jpg"><img src="https://live.staticflickr.com/65535/49610918098_e31c345ace_c.jpg" alt="Electricity in the Sky"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512675363_61fd83df64_k.jpg"><img src="https://live.staticflickr.com/65535/49512675363_9f7a235931_c.jpg" alt="Curious fish"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49513169993_98b346cf48_k.jpg"><img src="https://live.staticflickr.com/65535/49513169993_2162fba9e6_c.jpg" alt="Waterfall"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49511920373_a46d7cdbae_k.jpg"><img src="https://live.staticflickr.com/65535/49511920373_d802df85c3_c.jpg" alt="Tasman ice lake"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49513023898_e20c7c434e_k.jpg"><img src="https://live.staticflickr.com/65535/49513023898_7bc8c1eb3c_c.jpg" alt="Yellow car in Manly"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512201816_e078719f95_k.jpg"><img src="https://live.staticflickr.com/65535/49512201816_83bb61ef97_c.jpg" alt="Manly - North Head"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49511420518_44338b1e0f_k.jpg"><img src="https://live.staticflickr.com/65535/49511420518_06e35f47c6_c.jpg" alt="Waterloo Graffiti"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512307377_14d7c9cc62_k.jpg"><img src="https://live.staticflickr.com/65535/49512307377_4bd852db0f_c.jpg" alt="Vintage car"></a>
+<a target="_blank" href="https://live.staticflickr.com/7833/32542895827_a7a26a41e4_k.jpg"><img src="https://live.staticflickr.com/7833/32542895827_cbd9d9f3fa_c.jpg" alt="Cathedral"></a>
+<a target="_blank" href="https://live.staticflickr.com/7855/46569535645_4f724c752a_k.jpg"><img src="https://live.staticflickr.com/7855/46569535645_9f99ce0440_c.jpg" alt="Heineken"></a>
+</div>
+<div class="gallery-column">
+<a target="_blank" href="https://live.staticflickr.com/65535/49611692642_5a6a084a7f_k.jpg"><img src="https://live.staticflickr.com/65535/49611692642_2e5102cfa1_c.jpg" alt="Curvy Street"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49611435161_a8db38b01d_k.jpg"><img src="https://live.staticflickr.com/65535/49611435161_ca56e8219f_c.jpg" alt="Classic Red Light"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49611553947_5d2c9441bb_k.jpg"><img src="https://live.staticflickr.com/65535/49611553947_7910ef4ab8_c.jpg" alt="Towering Redwoods"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610754728_26bd19a4ab_k.jpg"><img src="https://live.staticflickr.com/65535/49610754728_3016fc757d_c.jpg" alt="Golden Gate"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610917933_3a6d33427d_k.jpg"><img src="https://live.staticflickr.com/65535/49610917933_2d580bace0_c.jpg" alt="Greenery"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49513396932_3e52b9001d_k.jpg"><img src="https://live.staticflickr.com/65535/49513396932_e5e6fb002e_c.jpg" alt="In the park"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512644248_3034fe1a46_k.jpg"><img src="https://live.staticflickr.com/65535/49512644248_bc7ac9bb16_c.jpg" alt="Milford Sound"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512538408_fa1e3ea036_k.jpg"><img src="https://live.staticflickr.com/65535/49512538408_d5ab19f1b4_c.jpg" alt="Shadow in the woods"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49513105243_22ebfbc5a2_k.jpg"><img src="https://live.staticflickr.com/65535/49513105243_8173489e72_c.jpg" alt="Stars at Mt. Cook"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512967498_c238e2ef12_k.jpg"><img src="https://live.staticflickr.com/65535/49512967498_c1056a699c_c.jpg" alt="Sydney bridge"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512938043_90455fe434_k.jpg"><img src="https://live.staticflickr.com/65535/49512938043_7cfc73a87c_c.jpg" alt="Leiden bridge"></a>
+<a target="_blank" href="https://live.staticflickr.com/7803/47432018872_ed8f869cac_k.jpg"><img src="https://live.staticflickr.com/7803/47432018872_3e3eb1e894_c.jpg" alt="Ship"></a>
+<a target="_blank" href="https://live.staticflickr.com/7877/47431978082_56b11444eb_k.jpg"><img src="https://live.staticflickr.com/7877/47431978082_ebc4797b37_c.jpg" alt="Bike"></a>
+</div>
+</div>
+</div><div class="gallery-1">
+<div class="gallery-row">
+<div class="gallery-column">
+<a target="_blank" href="https://live.staticflickr.com/65535/49611434651_20bd6e9358_k.jpg"><img src="https://live.staticflickr.com/65535/49611434651_3f6ae12961_c.jpg" alt="Floating Bread"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49611692642_5a6a084a7f_k.jpg"><img src="https://live.staticflickr.com/65535/49611692642_2e5102cfa1_c.jpg" alt="Curvy Street"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49611435161_a8db38b01d_k.jpg"><img src="https://live.staticflickr.com/65535/49611435161_ca56e8219f_c.jpg" alt="Classic Red Light"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610780673_858e5843a9_k.jpg"><img src="https://live.staticflickr.com/65535/49610780673_7f5132e48e_c.jpg" alt="Road in Redwood Forest"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49611553947_5d2c9441bb_k.jpg"><img src="https://live.staticflickr.com/65535/49611553947_7910ef4ab8_c.jpg" alt="Towering Redwoods"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49611540992_c3ebe1630d_k.jpg"><img src="https://live.staticflickr.com/65535/49611540992_594b409298_c.jpg" alt="Cold Prison"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610761353_35d82f0cc4_k.jpg"><img src="https://live.staticflickr.com/65535/49610761353_6019cc339e_c.jpg" alt="Sunset over Golden Gate"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610754728_26bd19a4ab_k.jpg"><img src="https://live.staticflickr.com/65535/49610754728_3016fc757d_c.jpg" alt="Golden Gate"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49611268661_41ae551b5f_k.jpg"><img src="https://live.staticflickr.com/65535/49611268661_733861b53a_c.jpg" alt="Turquoise House"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610917933_3a6d33427d_k.jpg"><img src="https://live.staticflickr.com/65535/49610917933_2d580bace0_c.jpg" alt="Greenery"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49610918098_6269ef249c_k.jpg"><img src="https://live.staticflickr.com/65535/49610918098_e31c345ace_c.jpg" alt="Electricity in the Sky"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49513396932_3e52b9001d_k.jpg"><img src="https://live.staticflickr.com/65535/49513396932_e5e6fb002e_c.jpg" alt="In the park"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512675363_61fd83df64_k.jpg"><img src="https://live.staticflickr.com/65535/49512675363_9f7a235931_c.jpg" alt="Curious fish"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49513169993_98b346cf48_k.jpg"><img src="https://live.staticflickr.com/65535/49513169993_2162fba9e6_c.jpg" alt="Waterfall"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512644248_3034fe1a46_k.jpg"><img src="https://live.staticflickr.com/65535/49512644248_bc7ac9bb16_c.jpg" alt="Milford Sound"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512538408_fa1e3ea036_k.jpg"><img src="https://live.staticflickr.com/65535/49512538408_d5ab19f1b4_c.jpg" alt="Shadow in the woods"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49511920373_a46d7cdbae_k.jpg"><img src="https://live.staticflickr.com/65535/49511920373_d802df85c3_c.jpg" alt="Tasman ice lake"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49513105243_22ebfbc5a2_k.jpg"><img src="https://live.staticflickr.com/65535/49513105243_8173489e72_c.jpg" alt="Stars at Mt. Cook"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49513023898_e20c7c434e_k.jpg"><img src="https://live.staticflickr.com/65535/49513023898_7bc8c1eb3c_c.jpg" alt="Yellow car in Manly"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512201816_e078719f95_k.jpg"><img src="https://live.staticflickr.com/65535/49512201816_83bb61ef97_c.jpg" alt="Manly - North Head"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512967498_c238e2ef12_k.jpg"><img src="https://live.staticflickr.com/65535/49512967498_c1056a699c_c.jpg" alt="Sydney bridge"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512938043_90455fe434_k.jpg"><img src="https://live.staticflickr.com/65535/49512938043_7cfc73a87c_c.jpg" alt="Leiden bridge"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49511420518_44338b1e0f_k.jpg"><img src="https://live.staticflickr.com/65535/49511420518_06e35f47c6_c.jpg" alt="Waterloo Graffiti"></a>
+<a target="_blank" href="https://live.staticflickr.com/65535/49512307377_14d7c9cc62_k.jpg"><img src="https://live.staticflickr.com/65535/49512307377_4bd852db0f_c.jpg" alt="Vintage car"></a>
+<a target="_blank" href="https://live.staticflickr.com/7803/47432018872_ed8f869cac_k.jpg"><img src="https://live.staticflickr.com/7803/47432018872_3e3eb1e894_c.jpg" alt="Ship"></a>
+<a target="_blank" href="https://live.staticflickr.com/7877/47431978082_56b11444eb_k.jpg"><img src="https://live.staticflickr.com/7877/47431978082_ebc4797b37_c.jpg" alt="Bike"></a>
+<a target="_blank" href="https://live.staticflickr.com/7833/32542895827_a7a26a41e4_k.jpg"><img src="https://live.staticflickr.com/7833/32542895827_cbd9d9f3fa_c.jpg" alt="Cathedral"></a>
+<a target="_blank" href="https://live.staticflickr.com/7855/46569535645_4f724c752a_k.jpg"><img src="https://live.staticflickr.com/7855/46569535645_9f99ce0440_c.jpg" alt="Heineken"></a>
+</div>
+</div>
+</div>
diff --git a/layouts/photos/list.html b/layouts/photos/list.html
new file mode 100644
index 0000000..474dbae
--- /dev/null
+++ b/layouts/photos/list.html
@@ -0,0 +1,7 @@
+{{ define "main" }}
+<main role="main">
+ {{ .Content }}
+
+ {{ partial "photos.html" . }}
+</main>
+{{ end }}
diff --git a/static/css/blog.css b/static/css/blog.css
new file mode 100644
index 0000000..d09b02f
--- /dev/null
+++ b/static/css/blog.css
@@ -0,0 +1,7 @@
+article > p:first-of-type::first-letter {
+ float: left;
+ line-height: 0.8;
+ margin-right: 10px;
+ font-weight: bold;
+ font-size: 6rem;
+}
diff --git a/static/css/colours.css b/static/css/colours.css
new file mode 100644
index 0000000..74bdb84
--- /dev/null
+++ b/static/css/colours.css
@@ -0,0 +1,66 @@
+body {
+ background-color: #fffff8;
+ color: #171d30;
+}
+
+.generated-by {
+ color: #505561;
+}
+
+a {
+ color: #00c266;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+nav a, .logo a, .post-title a, .social a, .rightcolumn a, dt a {
+ color: #171d30;
+}
+
+nav a:hover, .logo a:hover, .post-title a:hover, .social a:hover, .rightcolumn a:hover, dt a:hover {
+ color: #00c266;
+ text-decoration: none;
+}
+
+th {
+ color: #171d30;
+ border-bottom: 0.1rem solid #60646b;
+}
+
+.codeblock {
+ background-color: #fdf6e3;
+}
+
+.post-meta {
+ color: #505561;
+}
+
+@media (prefers-color-scheme: dark) {
+ body {
+ background-color: #171d30;
+ color: #fffff8;
+ }
+
+ nav a, .logo a, .post-title a, .social a, .rightcolumn a, dt a {
+ color: #fffff8;
+ }
+
+ .generated-by {
+ color: #fffff8;
+ }
+
+ th {
+ color: #fffff8;
+ border-bottom: 0.1rem solid #fffff8;
+ }
+
+ .codeblock {
+ background-color: #1f2538;
+ }
+
+ .post-meta {
+ color: #fffff8;
+ }
+}
diff --git a/static/css/default.css b/static/css/default.css
new file mode 100644
index 0000000..77a4bad
--- /dev/null
+++ b/static/css/default.css
@@ -0,0 +1,455 @@
+@import url('https://fonts.googleapis.com/css?family=Alegreya|Alegreya+Sans&display=swap');
+
+html {
+ font-family: 'Alegreya', serif;
+}
+
+body {
+ font-size: 1.2rem;
+ line-height: 1.3;
+ width: 90%;
+ margin: 0;
+ padding: 0 5%;
+}
+
+.center > .content {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+p {
+ margin-top: 0.5em;
+ text-align: justify;
+ hyphens: auto;
+}
+
+header {
+ border-bottom: 0.3rem solid #00c266;
+}
+
+nav {
+ text-align: right;
+}
+
+img {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+footer {
+ margin-top: 3rem;
+ padding: 1.2rem 0;
+ border-top: 0.3rem solid #00c266;
+}
+
+dt, .news-date {
+ font-family: 'Iosevka Web', sans-serif;
+ font-size: 1rem;
+ font-weight: bold;
+}
+
+dt {
+ font-size: 1.2rem;
+}
+
+a {
+ font-family: 'Iosevka Web', sans-serif;
+ font-size: 1rem;
+ text-decoration: none;
+}
+
+.generated-by a {
+ font-size: 0.8rem;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-family: 'Iosevka Web', sans-serif;
+ margin: 0px;
+}
+
+h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
+ font-size : 100%;
+}
+
+h1 {
+ font-size: 2.4rem;
+}
+
+h2 {
+ font-size: 1.7rem;
+ margin-top: 2rem;
+ border-bottom: 0.2rem solid #00c266;
+}
+
+h3 {
+ margin-top: 1.5rem;
+}
+
+code {
+ padding: 0.1em 0.2em;
+ font-family: 'Iosevka Web', monospace;
+ font-size: 1rem;
+}
+
+pre {
+ white-space: pre;
+ overflow: auto;
+}
+
+figcaption {
+ font-size: 0.9rem;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+figcaption * {
+ font-size: 0.9rem;
+}
+
+table {
+ border-spacing: 0;
+ width: 100%;
+ border-bottom: 0.15rem solid #171d30;
+ border-top: 0.15rem solid #171d30;
+}
+
+th, td {
+ padding: 5px 15px 5px 15px;
+ text-align: left;
+}
+
+nav a, .logo a {
+ font-family: 'Iosevka Web', monospace;
+ font-size: 1.3rem;
+ font-weight: 800;
+ text-decoration: none;
+}
+
+nav span {
+ padding-left: 2em;
+}
+
+.generated-by {
+ font-family: "Iosevka Web", monospace;
+ font-size: 0.8rem;
+ text-align: right;
+}
+
+.social {
+ font-size: 1.2rem;
+ text-align: center;
+}
+
+.first-letter {
+ float: left;
+ line-height: 0.8;
+ margin-right: 10px;
+ font-weight: bold;
+ font-size: 6rem;
+}
+
+.codeblock {
+ border-radius: 10px;
+ margin: 0;
+ padding: 0.1rem 1rem;
+}
+
+.news {
+ border: 0px;
+}
+
+.bib {
+ border-bottom: none;
+ border-top: none;
+ font-size: 0.9rem;
+}
+
+.bib tr {
+ vertical-align: text-top;
+}
+
+.bib td {
+ padding: 5px 10px 5px 10px;
+}
+
+.bibnum {
+ font-weight: bold;
+}
+
+.post-meta {
+ font-size: 0.9rem;
+ font-style: italic;
+}
+
+.post-title > a {
+ font-weight: bold;
+ font-family: 'Iosevka Web', monospace;
+ font-size: 1.3rem;
+ text-decoration: none;
+}
+
+.post-display {
+ margin: 30px 0px;
+}
+
+.profile-picture {
+ border-radius: 50%;
+ float: left;
+ max-width: 200px;
+ margin: 0px 30px 30px 0px;
+}
+
+.personal-info {
+ float: left;
+}
+
+.gallery-row {
+ display: flex;
+ flex-wrap: wrap;
+}
+
+/* Create four equal columns that sits next to each other */
+.gallery-column {
+ flex: 25%;
+ max-width: 24%;
+ padding: 0 4px;
+}
+
+.gallery-1 { display: none; }
+.gallery-2 { display: none; }
+.gallery-4 { display: block; }
+
+.gallery-column img {
+ margin-top: 8px;
+ vertical-align: middle;
+ width: 100%;
+}
+
+@media (max-width: 600px) {
+
+ header {
+ margin: 4.2rem 0;
+ }
+
+ nav {
+ margin: 0 auto 3rem;
+ text-align: center;
+ }
+
+ h1 {
+ font-size: 1.8rem;
+ }
+
+ h2 {
+ font-size: 1.5rem;
+ }
+
+ img {
+ width: 100%;
+ }
+
+ figcaption {
+ width: 100%;
+ }
+
+ .generated-by {
+ text-align: center;
+ }
+
+ .logo {
+ text-align: center;
+ margin: 1rem auto 3rem;
+ }
+
+ .logo a {
+ font-size: 2.0rem;
+ }
+
+ nav a {
+ display: inline;
+ margin: 0 0.6rem;
+ }
+
+ .profile-picture {
+ float: none;
+ display: block;
+ margin: 0px auto 20px auto;
+ width: 70%;
+ }
+
+ .gallery-column {
+ flex: 100%;
+ max-width: 100%;
+ }
+
+ .gallery-1 { display: block; }
+ .gallery-2 { display: none; }
+ .gallery-4 { display: none; }
+
+ nav span {
+ padding-left: 0;
+ }
+
+ h1, .post-meta {
+ text-align: center;
+ }
+
+ .post-display .post-meta {
+ text-align: left;
+ }
+}
+
+@media (min-width: 601px) and (max-width: 992px) {
+
+ body {
+ max-width: 70rem;
+ margin: 0 auto;
+ }
+
+ .center > article {
+ max-width: 45rem;
+ margin: 3rem auto;
+ padding: 0;
+ }
+
+ header {
+ margin: 0 0 3rem;
+ padding: 1.2rem 0;
+ }
+
+ nav {
+ margin: 0;
+ text-align: right;
+ }
+
+ nav a {
+ margin: 0 0 0 1.2rem;
+ display: inline;
+ }
+
+ img {
+ width: 100%;
+ }
+
+ figcaption {
+ width: 100%;
+ }
+
+ .generated-by {
+ text-align: right;
+ }
+
+ .logo {
+ margin: 0;
+ text-align: left;
+ }
+
+ .logo a {
+ float: left;
+ font-size: 1.3rem;
+ }
+
+ .profile-picture {
+ border-radius: 50%;
+ float: left;
+ max-width: 200px;
+ margin: 0px 30px 30px 0px;
+ }
+
+ .leftcolumn, .rightcolumn {
+ max-width: 45rem;
+ margin: 0 auto;
+ padding: 0;
+ }
+
+ .gallery-column {
+ flex: 50%;
+ max-width: 48%;
+ }
+
+ .gallery-1 { display: none; }
+ .gallery-2 { display: block; }
+ .gallery-4 { display: none; }
+}
+
+@media (min-width: 993px) {
+
+ body {
+ max-width: 70rem;
+ margin: 0 auto;
+ }
+
+ .center > article {
+ width: 45rem;
+ margin: 3em auto;
+ padding: 0;
+ }
+
+ header {
+ margin: 0 0 3rem;
+ padding: 1.2rem 0;
+ }
+
+ nav {
+ margin: 0;
+ text-align: right;
+ }
+
+ nav a {
+ margin: 0 0 0 1.2rem;
+ display: inline;
+ }
+
+ img {
+ width: 100%;
+ }
+
+ figcaption {
+ width: 100%;
+ }
+
+ .generated-by {
+ text-align: right;
+ }
+
+ .logo {
+ margin: 0;
+ text-align: left;
+ }
+
+ .logo a {
+ float: left;
+ font-size: 1.3rem;
+ }
+
+ .profile-picture {
+ border-radius: 50%;
+ float: left;
+ max-width: 200px;
+ margin: 0px 30px 30px 0px;
+ }
+
+ .container {
+ display: flex;
+ }
+
+ .flex {
+ flex: 1;
+ }
+
+ .left div {
+ margin-left: auto;
+ margin-right: 50px
+ }
+
+ .right div {
+ margin-right: auto;
+ margin-left: 50px;
+ }
+
+ .leftcolumn, .rightcolumn {
+ width: 10rem;
+ }
+}
diff --git a/static/css/fonts.css b/static/css/fonts.css
new file mode 100644
index 0000000..e1846d8
--- /dev/null
+++ b/static/css/fonts.css
@@ -0,0 +1,215 @@
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 100;
+ font-style: normal;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-thin.woff2') format('woff2'), url('/fonts/woff/iosevka-thin.woff') format('woff'), url('/fonts/ttf/iosevka-thin.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 100;
+ font-style: italic;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-thinitalic.woff2') format('woff2'), url('/fonts/woff/iosevka-thinitalic.woff') format('woff'), url('/fonts/ttf/iosevka-thinitalic.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 100;
+ font-style: oblique;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-thinoblique.woff2') format('woff2'), url('/fonts/woff/iosevka-thinoblique.woff') format('woff'), url('/fonts/ttf/iosevka-thinoblique.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 200;
+ font-style: normal;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-extralight.woff2') format('woff2'), url('/fonts/woff/iosevka-extralight.woff') format('woff'), url('/fonts/ttf/iosevka-extralight.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 200;
+ font-style: italic;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-extralightitalic.woff2') format('woff2'), url('/fonts/woff/iosevka-extralightitalic.woff') format('woff'), url('/fonts/ttf/iosevka-extralightitalic.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 200;
+ font-style: oblique;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-extralightoblique.woff2') format('woff2'), url('/fonts/woff/iosevka-extralightoblique.woff') format('woff'), url('/fonts/ttf/iosevka-extralightoblique.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 300;
+ font-style: normal;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-light.woff2') format('woff2'), url('/fonts/woff/iosevka-light.woff') format('woff'), url('/fonts/ttf/iosevka-light.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 300;
+ font-style: italic;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-lightitalic.woff2') format('woff2'), url('/fonts/woff/iosevka-lightitalic.woff') format('woff'), url('/fonts/ttf/iosevka-lightitalic.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 300;
+ font-style: oblique;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-lightoblique.woff2') format('woff2'), url('/fonts/woff/iosevka-lightoblique.woff') format('woff'), url('/fonts/ttf/iosevka-lightoblique.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 400;
+ font-style: normal;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-regular.woff2') format('woff2'), url('/fonts/woff/iosevka-regular.woff') format('woff'), url('/fonts/ttf/iosevka-regular.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 400;
+ font-style: italic;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-italic.woff2') format('woff2'), url('/fonts/woff/iosevka-italic.woff') format('woff'), url('/fonts/ttf/iosevka-italic.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 400;
+ font-style: oblique;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-oblique.woff2') format('woff2'), url('/fonts/woff/iosevka-oblique.woff') format('woff'), url('/fonts/ttf/iosevka-oblique.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 500;
+ font-style: normal;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-medium.woff2') format('woff2'), url('/fonts/woff/iosevka-medium.woff') format('woff'), url('/fonts/ttf/iosevka-medium.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 500;
+ font-style: italic;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-mediumitalic.woff2') format('woff2'), url('/fonts/woff/iosevka-mediumitalic.woff') format('woff'), url('/fonts/ttf/iosevka-mediumitalic.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 500;
+ font-style: oblique;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-mediumoblique.woff2') format('woff2'), url('/fonts/woff/iosevka-mediumoblique.woff') format('woff'), url('/fonts/ttf/iosevka-mediumoblique.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 600;
+ font-style: normal;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-semibold.woff2') format('woff2'), url('/fonts/woff/iosevka-semibold.woff') format('woff'), url('/fonts/ttf/iosevka-semibold.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 600;
+ font-style: italic;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-semibolditalic.woff2') format('woff2'), url('/fonts/woff/iosevka-semibolditalic.woff') format('woff'), url('/fonts/ttf/iosevka-semibolditalic.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 600;
+ font-style: oblique;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-semiboldoblique.woff2') format('woff2'), url('/fonts/woff/iosevka-semiboldoblique.woff') format('woff'), url('/fonts/ttf/iosevka-semiboldoblique.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 700;
+ font-style: normal;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-bold.woff2') format('woff2'), url('/fonts/woff/iosevka-bold.woff') format('woff'), url('/fonts/ttf/iosevka-bold.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 700;
+ font-style: italic;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-bolditalic.woff2') format('woff2'), url('/fonts/woff/iosevka-bolditalic.woff') format('woff'), url('/fonts/ttf/iosevka-bolditalic.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 700;
+ font-style: oblique;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-boldoblique.woff2') format('woff2'), url('/fonts/woff/iosevka-boldoblique.woff') format('woff'), url('/fonts/ttf/iosevka-boldoblique.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 800;
+ font-style: normal;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-extrabold.woff2') format('woff2'), url('/fonts/woff/iosevka-extrabold.woff') format('woff'), url('/fonts/ttf/iosevka-extrabold.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 800;
+ font-style: italic;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-extrabolditalic.woff2') format('woff2'), url('/fonts/woff/iosevka-extrabolditalic.woff') format('woff'), url('/fonts/ttf/iosevka-extrabolditalic.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 800;
+ font-style: oblique;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-extraboldoblique.woff2') format('woff2'), url('/fonts/woff/iosevka-extraboldoblique.woff') format('woff'), url('/fonts/ttf/iosevka-extraboldoblique.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 900;
+ font-style: normal;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-heavy.woff2') format('woff2'), url('/fonts/woff/iosevka-heavy.woff') format('woff'), url('/fonts/ttf/iosevka-heavy.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 900;
+ font-style: italic;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-heavyitalic.woff2') format('woff2'), url('/fonts/woff/iosevka-heavyitalic.woff') format('woff'), url('/fonts/ttf/iosevka-heavyitalic.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Iosevka Web';
+ font-weight: 900;
+ font-style: oblique;
+ font-display: swap;
+ src: url('/fonts/woff2/iosevka-heavyoblique.woff2') format('woff2'), url('/fonts/woff/iosevka-heavyoblique.woff') format('woff'), url('/fonts/ttf/iosevka-heavyoblique.ttf') format('truetype');
+}
diff --git a/static/css/syntax.css b/static/css/syntax.css
new file mode 100644
index 0000000..2fb775c
--- /dev/null
+++ b/static/css/syntax.css
@@ -0,0 +1,69 @@
+.highlight .hll { background-color: #ffffcc }
+.highlight { /* background */ }
+.highlight .c { color: #008800; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #FF0000 } /* Error */
+.highlight .k { color: #AA22FF; font-weight: bold } /* Keyword */
+.highlight .o { color: #666666 } /* Operator */
+.highlight .ch { color: #008800; font-style: italic } /* Comment.Hashbang */
+.highlight .cm { color: #008800; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #008800 } /* Comment.Preproc */
+.highlight .cpf { color: #008800; font-style: italic } /* Comment.PreprocFile */
+.highlight .c1 { color: #008800; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #008800; font-weight: bold } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #00A000 } /* Generic.Inserted */
+.highlight .go { color: #888888 } /* Generic.Output */
+.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0044DD } /* Generic.Traceback */
+.highlight .kc { color: #AA22FF; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #AA22FF; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #AA22FF; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #AA22FF } /* Keyword.Pseudo */
+.highlight .kr { color: #AA22FF; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #00BB00; font-weight: bold } /* Keyword.Type */
+.highlight .m { color: #666666 } /* Literal.Number */
+.highlight .s { color: #BB4444 } /* Literal.String */
+.highlight .na { color: #BB4444 } /* Name.Attribute */
+.highlight .nb { color: #AA22FF } /* Name.Builtin */
+.highlight .nc { color: #0000FF } /* Name.Class */
+.highlight .no { color: #880000 } /* Name.Constant */
+.highlight .nd { color: #AA22FF } /* Name.Decorator */
+.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #00A000 } /* Name.Function */
+.highlight .nl { color: #A0A000 } /* Name.Label */
+.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #B8860B } /* Name.Variable */
+.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mb { color: #666666 } /* Literal.Number.Bin */
+.highlight .mf { color: #666666 } /* Literal.Number.Float */
+.highlight .mh { color: #666666 } /* Literal.Number.Hex */
+.highlight .mi { color: #666666 } /* Literal.Number.Integer */
+.highlight .mo { color: #666666 } /* Literal.Number.Oct */
+.highlight .sa { color: #BB4444 } /* Literal.String.Affix */
+.highlight .sb { color: #BB4444 } /* Literal.String.Backtick */
+.highlight .sc { color: #BB4444 } /* Literal.String.Char */
+.highlight .dl { color: #BB4444 } /* Literal.String.Delimiter */
+.highlight .sd { color: #BB4444; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #BB4444 } /* Literal.String.Double */
+.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #BB4444 } /* Literal.String.Heredoc */
+.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.highlight .sx { color: #008000 } /* Literal.String.Other */
+.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
+.highlight .s1 { color: #BB4444 } /* Literal.String.Single */
+.highlight .ss { color: #B8860B } /* Literal.String.Symbol */
+.highlight .bp { color: #AA22FF } /* Name.Builtin.Pseudo */
+.highlight .fm { color: #00A000 } /* Name.Function.Magic */
+.highlight .vc { color: #B8860B } /* Name.Variable.Class */
+.highlight .vg { color: #B8860B } /* Name.Variable.Global */
+.highlight .vi { color: #B8860B } /* Name.Variable.Instance */
+.highlight .vm { color: #B8860B } /* Name.Variable.Magic */
+.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
diff --git a/static/fonts/ttf/iosevka-bold.ttf b/static/fonts/ttf/iosevka-bold.ttf
new file mode 100644
index 0000000..f49579f
--- /dev/null
+++ b/static/fonts/ttf/iosevka-bold.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-bolditalic.ttf b/static/fonts/ttf/iosevka-bolditalic.ttf
new file mode 100644
index 0000000..3ed0fd1
--- /dev/null
+++ b/static/fonts/ttf/iosevka-bolditalic.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-boldoblique.ttf b/static/fonts/ttf/iosevka-boldoblique.ttf
new file mode 100644
index 0000000..6f197da
--- /dev/null
+++ b/static/fonts/ttf/iosevka-boldoblique.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-extrabold.ttf b/static/fonts/ttf/iosevka-extrabold.ttf
new file mode 100644
index 0000000..8df0a8e
--- /dev/null
+++ b/static/fonts/ttf/iosevka-extrabold.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-extrabolditalic.ttf b/static/fonts/ttf/iosevka-extrabolditalic.ttf
new file mode 100644
index 0000000..d0eb29a
--- /dev/null
+++ b/static/fonts/ttf/iosevka-extrabolditalic.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-extraboldoblique.ttf b/static/fonts/ttf/iosevka-extraboldoblique.ttf
new file mode 100644
index 0000000..8b9ffe2
--- /dev/null
+++ b/static/fonts/ttf/iosevka-extraboldoblique.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-extralight.ttf b/static/fonts/ttf/iosevka-extralight.ttf
new file mode 100644
index 0000000..360df76
--- /dev/null
+++ b/static/fonts/ttf/iosevka-extralight.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-extralightitalic.ttf b/static/fonts/ttf/iosevka-extralightitalic.ttf
new file mode 100644
index 0000000..7ab06e0
--- /dev/null
+++ b/static/fonts/ttf/iosevka-extralightitalic.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-extralightoblique.ttf b/static/fonts/ttf/iosevka-extralightoblique.ttf
new file mode 100644
index 0000000..7d5cd0b
--- /dev/null
+++ b/static/fonts/ttf/iosevka-extralightoblique.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-heavy.ttf b/static/fonts/ttf/iosevka-heavy.ttf
new file mode 100644
index 0000000..4eadf8b
--- /dev/null
+++ b/static/fonts/ttf/iosevka-heavy.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-heavyitalic.ttf b/static/fonts/ttf/iosevka-heavyitalic.ttf
new file mode 100644
index 0000000..7553c14
--- /dev/null
+++ b/static/fonts/ttf/iosevka-heavyitalic.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-heavyoblique.ttf b/static/fonts/ttf/iosevka-heavyoblique.ttf
new file mode 100644
index 0000000..0718fbe
--- /dev/null
+++ b/static/fonts/ttf/iosevka-heavyoblique.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-italic.ttf b/static/fonts/ttf/iosevka-italic.ttf
new file mode 100644
index 0000000..d74464c
--- /dev/null
+++ b/static/fonts/ttf/iosevka-italic.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-light.ttf b/static/fonts/ttf/iosevka-light.ttf
new file mode 100644
index 0000000..11e1911
--- /dev/null
+++ b/static/fonts/ttf/iosevka-light.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-lightitalic.ttf b/static/fonts/ttf/iosevka-lightitalic.ttf
new file mode 100644
index 0000000..224b963
--- /dev/null
+++ b/static/fonts/ttf/iosevka-lightitalic.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-lightoblique.ttf b/static/fonts/ttf/iosevka-lightoblique.ttf
new file mode 100644
index 0000000..50b4cc2
--- /dev/null
+++ b/static/fonts/ttf/iosevka-lightoblique.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-medium.ttf b/static/fonts/ttf/iosevka-medium.ttf
new file mode 100644
index 0000000..0d186f1
--- /dev/null
+++ b/static/fonts/ttf/iosevka-medium.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-mediumitalic.ttf b/static/fonts/ttf/iosevka-mediumitalic.ttf
new file mode 100644
index 0000000..08956aa
--- /dev/null
+++ b/static/fonts/ttf/iosevka-mediumitalic.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-mediumoblique.ttf b/static/fonts/ttf/iosevka-mediumoblique.ttf
new file mode 100644
index 0000000..ad97910
--- /dev/null
+++ b/static/fonts/ttf/iosevka-mediumoblique.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-oblique.ttf b/static/fonts/ttf/iosevka-oblique.ttf
new file mode 100644
index 0000000..f6f841b
--- /dev/null
+++ b/static/fonts/ttf/iosevka-oblique.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-regular.ttf b/static/fonts/ttf/iosevka-regular.ttf
new file mode 100644
index 0000000..2c08b80
--- /dev/null
+++ b/static/fonts/ttf/iosevka-regular.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-semibold.ttf b/static/fonts/ttf/iosevka-semibold.ttf
new file mode 100644
index 0000000..bf476c7
--- /dev/null
+++ b/static/fonts/ttf/iosevka-semibold.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-semibolditalic.ttf b/static/fonts/ttf/iosevka-semibolditalic.ttf
new file mode 100644
index 0000000..53aa163
--- /dev/null
+++ b/static/fonts/ttf/iosevka-semibolditalic.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-semiboldoblique.ttf b/static/fonts/ttf/iosevka-semiboldoblique.ttf
new file mode 100644
index 0000000..37925c8
--- /dev/null
+++ b/static/fonts/ttf/iosevka-semiboldoblique.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-thin.ttf b/static/fonts/ttf/iosevka-thin.ttf
new file mode 100644
index 0000000..03a8d46
--- /dev/null
+++ b/static/fonts/ttf/iosevka-thin.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-thinitalic.ttf b/static/fonts/ttf/iosevka-thinitalic.ttf
new file mode 100644
index 0000000..3d144be
--- /dev/null
+++ b/static/fonts/ttf/iosevka-thinitalic.ttf
Binary files differ
diff --git a/static/fonts/ttf/iosevka-thinoblique.ttf b/static/fonts/ttf/iosevka-thinoblique.ttf
new file mode 100644
index 0000000..ca25c31
--- /dev/null
+++ b/static/fonts/ttf/iosevka-thinoblique.ttf
Binary files differ
diff --git a/static/fonts/woff/iosevka-bold.woff b/static/fonts/woff/iosevka-bold.woff
new file mode 100644
index 0000000..09e8050
--- /dev/null
+++ b/static/fonts/woff/iosevka-bold.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-bolditalic.woff b/static/fonts/woff/iosevka-bolditalic.woff
new file mode 100644
index 0000000..fd572f8
--- /dev/null
+++ b/static/fonts/woff/iosevka-bolditalic.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-boldoblique.woff b/static/fonts/woff/iosevka-boldoblique.woff
new file mode 100644
index 0000000..a981a22
--- /dev/null
+++ b/static/fonts/woff/iosevka-boldoblique.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-extrabold.woff b/static/fonts/woff/iosevka-extrabold.woff
new file mode 100644
index 0000000..9d7d807
--- /dev/null
+++ b/static/fonts/woff/iosevka-extrabold.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-extrabolditalic.woff b/static/fonts/woff/iosevka-extrabolditalic.woff
new file mode 100644
index 0000000..00a4b00
--- /dev/null
+++ b/static/fonts/woff/iosevka-extrabolditalic.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-extraboldoblique.woff b/static/fonts/woff/iosevka-extraboldoblique.woff
new file mode 100644
index 0000000..3ca12e8
--- /dev/null
+++ b/static/fonts/woff/iosevka-extraboldoblique.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-extralight.woff b/static/fonts/woff/iosevka-extralight.woff
new file mode 100644
index 0000000..23bea99
--- /dev/null
+++ b/static/fonts/woff/iosevka-extralight.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-extralightitalic.woff b/static/fonts/woff/iosevka-extralightitalic.woff
new file mode 100644
index 0000000..8b92b18
--- /dev/null
+++ b/static/fonts/woff/iosevka-extralightitalic.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-extralightoblique.woff b/static/fonts/woff/iosevka-extralightoblique.woff
new file mode 100644
index 0000000..9a69304
--- /dev/null
+++ b/static/fonts/woff/iosevka-extralightoblique.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-heavy.woff b/static/fonts/woff/iosevka-heavy.woff
new file mode 100644
index 0000000..8be7083
--- /dev/null
+++ b/static/fonts/woff/iosevka-heavy.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-heavyitalic.woff b/static/fonts/woff/iosevka-heavyitalic.woff
new file mode 100644
index 0000000..f3efbb3
--- /dev/null
+++ b/static/fonts/woff/iosevka-heavyitalic.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-heavyoblique.woff b/static/fonts/woff/iosevka-heavyoblique.woff
new file mode 100644
index 0000000..7ba677b
--- /dev/null
+++ b/static/fonts/woff/iosevka-heavyoblique.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-italic.woff b/static/fonts/woff/iosevka-italic.woff
new file mode 100644
index 0000000..6773d1b
--- /dev/null
+++ b/static/fonts/woff/iosevka-italic.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-light.woff b/static/fonts/woff/iosevka-light.woff
new file mode 100644
index 0000000..a822874
--- /dev/null
+++ b/static/fonts/woff/iosevka-light.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-lightitalic.woff b/static/fonts/woff/iosevka-lightitalic.woff
new file mode 100644
index 0000000..0ff465d
--- /dev/null
+++ b/static/fonts/woff/iosevka-lightitalic.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-lightoblique.woff b/static/fonts/woff/iosevka-lightoblique.woff
new file mode 100644
index 0000000..c7ed88e
--- /dev/null
+++ b/static/fonts/woff/iosevka-lightoblique.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-medium.woff b/static/fonts/woff/iosevka-medium.woff
new file mode 100644
index 0000000..6612722
--- /dev/null
+++ b/static/fonts/woff/iosevka-medium.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-mediumitalic.woff b/static/fonts/woff/iosevka-mediumitalic.woff
new file mode 100644
index 0000000..6a9edf3
--- /dev/null
+++ b/static/fonts/woff/iosevka-mediumitalic.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-mediumoblique.woff b/static/fonts/woff/iosevka-mediumoblique.woff
new file mode 100644
index 0000000..2871be1
--- /dev/null
+++ b/static/fonts/woff/iosevka-mediumoblique.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-oblique.woff b/static/fonts/woff/iosevka-oblique.woff
new file mode 100644
index 0000000..89c8e2c
--- /dev/null
+++ b/static/fonts/woff/iosevka-oblique.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-regular.woff b/static/fonts/woff/iosevka-regular.woff
new file mode 100644
index 0000000..0888ba5
--- /dev/null
+++ b/static/fonts/woff/iosevka-regular.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-semibold.woff b/static/fonts/woff/iosevka-semibold.woff
new file mode 100644
index 0000000..65bfa07
--- /dev/null
+++ b/static/fonts/woff/iosevka-semibold.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-semibolditalic.woff b/static/fonts/woff/iosevka-semibolditalic.woff
new file mode 100644
index 0000000..eabd7c3
--- /dev/null
+++ b/static/fonts/woff/iosevka-semibolditalic.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-semiboldoblique.woff b/static/fonts/woff/iosevka-semiboldoblique.woff
new file mode 100644
index 0000000..c6c45c9
--- /dev/null
+++ b/static/fonts/woff/iosevka-semiboldoblique.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-thin.woff b/static/fonts/woff/iosevka-thin.woff
new file mode 100644
index 0000000..e4821a6
--- /dev/null
+++ b/static/fonts/woff/iosevka-thin.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-thinitalic.woff b/static/fonts/woff/iosevka-thinitalic.woff
new file mode 100644
index 0000000..385dfed
--- /dev/null
+++ b/static/fonts/woff/iosevka-thinitalic.woff
Binary files differ
diff --git a/static/fonts/woff/iosevka-thinoblique.woff b/static/fonts/woff/iosevka-thinoblique.woff
new file mode 100644
index 0000000..dfe5d94
--- /dev/null
+++ b/static/fonts/woff/iosevka-thinoblique.woff
Binary files differ
diff --git a/static/fonts/woff2/iosevka-bold.woff2 b/static/fonts/woff2/iosevka-bold.woff2
new file mode 100644
index 0000000..99f0820
--- /dev/null
+++ b/static/fonts/woff2/iosevka-bold.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-bolditalic.woff2 b/static/fonts/woff2/iosevka-bolditalic.woff2
new file mode 100644
index 0000000..50dfbf6
--- /dev/null
+++ b/static/fonts/woff2/iosevka-bolditalic.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-boldoblique.woff2 b/static/fonts/woff2/iosevka-boldoblique.woff2
new file mode 100644
index 0000000..194da35
--- /dev/null
+++ b/static/fonts/woff2/iosevka-boldoblique.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-extrabold.woff2 b/static/fonts/woff2/iosevka-extrabold.woff2
new file mode 100644
index 0000000..afca307
--- /dev/null
+++ b/static/fonts/woff2/iosevka-extrabold.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-extrabolditalic.woff2 b/static/fonts/woff2/iosevka-extrabolditalic.woff2
new file mode 100644
index 0000000..85ea59a
--- /dev/null
+++ b/static/fonts/woff2/iosevka-extrabolditalic.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-extraboldoblique.woff2 b/static/fonts/woff2/iosevka-extraboldoblique.woff2
new file mode 100644
index 0000000..220aa12
--- /dev/null
+++ b/static/fonts/woff2/iosevka-extraboldoblique.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-extralight.woff2 b/static/fonts/woff2/iosevka-extralight.woff2
new file mode 100644
index 0000000..e6c9c73
--- /dev/null
+++ b/static/fonts/woff2/iosevka-extralight.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-extralightitalic.woff2 b/static/fonts/woff2/iosevka-extralightitalic.woff2
new file mode 100644
index 0000000..0b429d7
--- /dev/null
+++ b/static/fonts/woff2/iosevka-extralightitalic.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-extralightoblique.woff2 b/static/fonts/woff2/iosevka-extralightoblique.woff2
new file mode 100644
index 0000000..5b072e4
--- /dev/null
+++ b/static/fonts/woff2/iosevka-extralightoblique.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-heavy.woff2 b/static/fonts/woff2/iosevka-heavy.woff2
new file mode 100644
index 0000000..0caa64c
--- /dev/null
+++ b/static/fonts/woff2/iosevka-heavy.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-heavyitalic.woff2 b/static/fonts/woff2/iosevka-heavyitalic.woff2
new file mode 100644
index 0000000..b0b3cae
--- /dev/null
+++ b/static/fonts/woff2/iosevka-heavyitalic.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-heavyoblique.woff2 b/static/fonts/woff2/iosevka-heavyoblique.woff2
new file mode 100644
index 0000000..eff12f5
--- /dev/null
+++ b/static/fonts/woff2/iosevka-heavyoblique.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-italic.woff2 b/static/fonts/woff2/iosevka-italic.woff2
new file mode 100644
index 0000000..9920725
--- /dev/null
+++ b/static/fonts/woff2/iosevka-italic.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-light.woff2 b/static/fonts/woff2/iosevka-light.woff2
new file mode 100644
index 0000000..921425a
--- /dev/null
+++ b/static/fonts/woff2/iosevka-light.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-lightitalic.woff2 b/static/fonts/woff2/iosevka-lightitalic.woff2
new file mode 100644
index 0000000..8334ec4
--- /dev/null
+++ b/static/fonts/woff2/iosevka-lightitalic.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-lightoblique.woff2 b/static/fonts/woff2/iosevka-lightoblique.woff2
new file mode 100644
index 0000000..4db6bb9
--- /dev/null
+++ b/static/fonts/woff2/iosevka-lightoblique.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-medium.woff2 b/static/fonts/woff2/iosevka-medium.woff2
new file mode 100644
index 0000000..10d57a0
--- /dev/null
+++ b/static/fonts/woff2/iosevka-medium.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-mediumitalic.woff2 b/static/fonts/woff2/iosevka-mediumitalic.woff2
new file mode 100644
index 0000000..de493ef
--- /dev/null
+++ b/static/fonts/woff2/iosevka-mediumitalic.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-mediumoblique.woff2 b/static/fonts/woff2/iosevka-mediumoblique.woff2
new file mode 100644
index 0000000..989ecf5
--- /dev/null
+++ b/static/fonts/woff2/iosevka-mediumoblique.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-oblique.woff2 b/static/fonts/woff2/iosevka-oblique.woff2
new file mode 100644
index 0000000..0a8e2d3
--- /dev/null
+++ b/static/fonts/woff2/iosevka-oblique.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-regular.woff2 b/static/fonts/woff2/iosevka-regular.woff2
new file mode 100644
index 0000000..b6a059f
--- /dev/null
+++ b/static/fonts/woff2/iosevka-regular.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-semibold.woff2 b/static/fonts/woff2/iosevka-semibold.woff2
new file mode 100644
index 0000000..4394cd5
--- /dev/null
+++ b/static/fonts/woff2/iosevka-semibold.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-semibolditalic.woff2 b/static/fonts/woff2/iosevka-semibolditalic.woff2
new file mode 100644
index 0000000..619d1ed
--- /dev/null
+++ b/static/fonts/woff2/iosevka-semibolditalic.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-semiboldoblique.woff2 b/static/fonts/woff2/iosevka-semiboldoblique.woff2
new file mode 100644
index 0000000..a0f19e4
--- /dev/null
+++ b/static/fonts/woff2/iosevka-semiboldoblique.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-thin.woff2 b/static/fonts/woff2/iosevka-thin.woff2
new file mode 100644
index 0000000..162cb63
--- /dev/null
+++ b/static/fonts/woff2/iosevka-thin.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-thinitalic.woff2 b/static/fonts/woff2/iosevka-thinitalic.woff2
new file mode 100644
index 0000000..af1f593
--- /dev/null
+++ b/static/fonts/woff2/iosevka-thinitalic.woff2
Binary files differ
diff --git a/static/fonts/woff2/iosevka-thinoblique.woff2 b/static/fonts/woff2/iosevka-thinoblique.woff2
new file mode 100644
index 0000000..8c15652
--- /dev/null
+++ b/static/fonts/woff2/iosevka-thinoblique.woff2
Binary files differ
diff --git a/theme.toml b/theme.toml
new file mode 100644
index 0000000..5251a37
--- /dev/null
+++ b/theme.toml
@@ -0,0 +1,21 @@
+# theme.toml template for a Hugo theme
+# See https://github.com/gohugoio/hugoThemes#themetoml for an example
+
+name = "Ymherklotz"
+license = "MIT"
+licenselink = "https://github.com/yourname/yourtheme/blob/master/LICENSE"
+description = ""
+homepage = "http://example.com/"
+tags = []
+features = []
+min_version = "0.41.0"
+
+[author]
+ name = ""
+ homepage = ""
+
+# If porting an existing theme
+[original]
+ name = ""
+ homepage = ""
+ repo = ""