aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2018-11-19 13:29:15 -0800
committerJakob Odersky <jakob@odersky.com>2018-11-19 13:29:15 -0800
commit31ecae8b901060644175f39241c65a06b78b2a83 (patch)
treef01bd382c30905fa4be21dc72cc879aeafa72412
parent14da66191f12755de633fe839aadd6bb2f09fd57 (diff)
downloadwebsite-31ecae8b901060644175f39241c65a06b78b2a83.tar.gz
website-31ecae8b901060644175f39241c65a06b78b2a83.tar.bz2
website-31ecae8b901060644175f39241c65a06b78b2a83.zip
Move to pandoc and makefile based publishing system
This drops the jekyll requirement to publish the website and instead relies on pandoc to convert markdown to html and assemble pages.
-rw-r--r--404.html8
-rw-r--r--Makefile60
-rw-r--r--README.md2
-rw-r--r--_config.yml6
-rw-r--r--_includes/header.html51
-rw-r--r--_includes/main.html19
-rw-r--r--_layouts/empty.html4
-rw-r--r--_layouts/page.html4
-rw-r--r--_layouts/post.html4
-rw-r--r--_posts/2015-04-09-hello-world.md6
-rw-r--r--_projects/2010-sims.md7
-rw-r--r--_projects/2011-vhc.md7
-rw-r--r--_projects/2012-k8055.md6
-rw-r--r--_projects/2013-akka-serial.md6
-rw-r--r--_projects/2014-condor.md7
-rw-r--r--blog/index.html12
-rw-r--r--cv.pdf (renamed from assets/cv.pdf)bin154565 -> 154565 bytes
-rw-r--r--index.html13
-rw-r--r--layout.pandoc.html65
-rw-r--r--projects.md68
-rw-r--r--projects/condor.png (renamed from assets/images/condor.png)bin35706 -> 35706 bytes
-rw-r--r--projects/index.html34
-rw-r--r--projects/main.css4
-rw-r--r--projects/sims.jpg (renamed from assets/images/sims.jpg)bin6456 -> 6456 bytes
-rw-r--r--projects/vhc.png (renamed from assets/images/vhc.png)bin21423 -> 21423 bytes
-rw-r--r--talks.html (renamed from talks/index.md)6
26 files changed, 209 insertions, 190 deletions
diff --git a/404.html b/404.html
index 6dddaa6..e58c220 100644
--- a/404.html
+++ b/404.html
@@ -1,9 +1,7 @@
---
-layout: empty
title: 404 - Not Found
-permalink: /404.html
---
<div class="text-center">
- <h1>404</h1>
- <p>The requested page does not exist. Return to <a href="/">main site</a>.</p>
-<div>
+ <h1>404</h1>
+ <p>The requested page does not exist.</p>
+</div>
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..b7a839d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,60 @@
+target=_site
+
+target_files=\
+ $(patsubst %,$(target)/%, $(shell find assets -type f)) \
+ $(patsubst %,$(target)/%, $(shell find projects -type f)) \
+ $(patsubst %,$(target)/%, $(shell find talks -type f)) \
+ $(target)/404.html \
+ $(target)/CNAME \
+ $(target)/cv.pdf \
+ $(target)/index.html \
+ $(target)/keybase.txt \
+ $(target)/projects.html \
+ $(target)/talks.html
+
+all: $(target_files)
+
+publish: $(target_files)
+ git -C $(target) init
+ git -C $(target) add .
+ git -C $(target) commit -m "Publish website" || true
+ git -C $(target) push -f git@github.com:jodersky/website master:gh-pages
+
+clean:
+ rm -rf $(target)
+
+$(target)/assets/%: assets/%
+ @mkdir -p $(@D)
+ cp $< $@
+
+$(target)/%.html: %.html layout.pandoc.html
+ @mkdir -p $(@D)
+ pandoc \
+ --standalone \
+ --template=layout.pandoc.html \
+ --from=markdown+yaml_metadata_block-native_divs-native_spans \
+ --to=html5 \
+ --variable=base_path:$(shell realpath --relative-to=$(shell dirname $<) .) \
+ --variable=navbar_$(patsubst %.html,%,$<):true \
+ --out=$@ $<
+
+$(target)/%.html: %.md layout.pandoc.html
+ @mkdir -p $(@D)
+ pandoc \
+ --standalone \
+ --template=layout.pandoc.html \
+ --from=markdown \
+ --to=html5 \
+ --variable=base_path:$(shell realpath --relative-to=$(shell dirname $<) .) \
+ --variable=navbar_$(patsubst %.md,%,$<):true \
+ --out=$@ $<
+
+$(target)/%: %
+ @mkdir -p $(@D)
+ cp $< $@
+
+$(target)/talks/scala-channels.html: talks/scala-channels.html
+ @mkdir -p $(@D)
+ cp $< $@
+
+.PHONY: all clean publish
diff --git a/README.md b/README.md
index b342f49..7b0f29a 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,2 @@
# My Homepage
-Available at http://www.jodersky.ch. Generated with jekyll.
+Available at https://jakob.odersky.com. Generated with pandoc and make.
diff --git a/_config.yml b/_config.yml
deleted file mode 100644
index f63ca86..0000000
--- a/_config.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-collections:
- projects:
- output: false
-
-# posts
-permalink: /blog/:year/:month/:day/:title/
diff --git a/_includes/header.html b/_includes/header.html
deleted file mode 100644
index 4e2243e..0000000
--- a/_includes/header.html
+++ /dev/null
@@ -1,51 +0,0 @@
-{% capture content %}
-<header>
- <nav class="navbar navbar-expand-sm navbar-dark bg-dark">
- <div class="container">
- <button class="navbar-toggler navbar-toggler-right" type="button"
- data-toggle="collapse" data-target="#navbar-content">
- <span class="navbar-toggler-icon"></span>
- </button>
- <a class="navbar-brand" href="/">Jakob Odersky</a>
- <div class="collapse navbar-collapse" id="navbar-content">
- <ul class="navbar-nav mr-auto">
- <li class="nav-item{% if page.id == "about" %} active{% endif %}">
- <a class="nav-link" href="/">About Me</a>
- </li>
- <li class="nav-item{% if page.id == "projects" %} active{% endif %}">
- <a class="nav-link" href="/projects/">Projects</a>
- </li>
- <li class="nav-item{% if page.id == "talks" %} active{% endif %}">
- <a class="nav-link" href="/talks/">Talks</a>
- </li>
- <!--<li class="nav-item{% if page.id == "blog" %} active{% endif %}">
- <a class="nav-link" href="/blog">Blog</a>
- </li>-->
- </ul>
- <ul class="navbar-nav ml-auto">
- <li class="nav-item">
- <a class="nav-link" href="/" title="Contact"><i class="fa fa-inverse fa-lg fa-envelope"></i></a>
- </li>
- <li class="nav-item">
- <a class="nav-link" href="https://www.github.com/jodersky" title="GitHub"><i class="fa fa-inverse fa-lg fa-github"></i></a>
- </li>
- <li class="nav-item">
- <a class="nav-link" href="https://twitter.com/jodersky" title="Twitter"><i class="fa fa-inverse fa-lg fa-twitter"></i></a>
- </li>
- <li class="nav-item">
- <a class="nav-link" href="https://www.linkedin.com/in/jodersky" title="LinkedIn"><i class="fa fa-inverse fa-lg fa-linkedin-square"></i></a>
- </li>
- <li class="nav-item">
- <a class="nav-link" href="https://keybase.io/jodersky" title="Keybase"><i class="fa fa-inverse fa-lg fa-key"></i></a>
- </li>
- </ul>
-
- </div>
- </div>
- </nav>
-</header>
-<main class="container">
- {{ content }}
-</main>
-{% endcapture %}
-{% include main.html %}
diff --git a/_includes/main.html b/_includes/main.html
deleted file mode 100644
index 7245362..0000000
--- a/_includes/main.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-
-<html lang="en">
- <head>
- <meta charset="utf-8">
- <title>{{ page.title }}</title>
- <link rel="shortcut icon" type="image/png" href="/assets/images/jo.png"/>
- <link rel="stylesheet" href="/assets/lib/bootstrap/css/bootstrap-reboot.min.css">
- <link rel="stylesheet" href="/assets/lib/bootstrap/css/bootstrap-grid.min.css">
- <link rel="stylesheet" href="/assets/lib/bootstrap/css/bootstrap.min.css">
- <link rel="stylesheet" href="/assets/lib/fontawesome/css/font-awesome.min.css">
- <script src="/assets/lib/jquery/js/jquery-3.2.1.min.js"></script>
- <script src="/assets/lib/bootstrap/js/bootstrap.bundle.min.js"></script>
- <script src="/assets/lib/bootstrap/js/bootstrap.min.js"></script>
- </head>
- <body>
- {{ content }}
- </body>
-</html>
diff --git a/_layouts/empty.html b/_layouts/empty.html
deleted file mode 100644
index baf32d7..0000000
--- a/_layouts/empty.html
+++ /dev/null
@@ -1,4 +0,0 @@
-{% capture content %}
-{{ content }}
-{% endcapture %}
-{% include main.html %} \ No newline at end of file
diff --git a/_layouts/page.html b/_layouts/page.html
deleted file mode 100644
index 4cae8bb..0000000
--- a/_layouts/page.html
+++ /dev/null
@@ -1,4 +0,0 @@
-{% capture content %}
-{{ content }}
-{% endcapture %}
-{% include header.html %} \ No newline at end of file
diff --git a/_layouts/post.html b/_layouts/post.html
deleted file mode 100644
index 4cae8bb..0000000
--- a/_layouts/post.html
+++ /dev/null
@@ -1,4 +0,0 @@
-{% capture content %}
-{{ content }}
-{% endcapture %}
-{% include header.html %} \ No newline at end of file
diff --git a/_posts/2015-04-09-hello-world.md b/_posts/2015-04-09-hello-world.md
deleted file mode 100644
index 4da967c..0000000
--- a/_posts/2015-04-09-hello-world.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-layout: post
-title: Hello World
----
-# Hello World
-This is a test post. \ No newline at end of file
diff --git a/_projects/2010-sims.md b/_projects/2010-sims.md
deleted file mode 100644
index 247f7a0..0000000
--- a/_projects/2010-sims.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: A Simple Mechanics Simulator (SiMS)
-site: https://github.com/jodersky/sims
-description: A real-time mechanics simulator, my final year school project.
-year: 2010
-logo: sims.jpg
----
diff --git a/_projects/2011-vhc.md b/_projects/2011-vhc.md
deleted file mode 100644
index af7a835..0000000
--- a/_projects/2011-vhc.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Virtual Hadron Collider
-site: https://github.com/jodersky/vhc
-description: A particle simulator with 3D visualization, 1st year project in physics CS course.
-year: 2011
-logo: vhc.png
----
diff --git a/_projects/2012-k8055.md b/_projects/2012-k8055.md
deleted file mode 100644
index cecc13a..0000000
--- a/_projects/2012-k8055.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: k8055
-site: https://github.com/jodersky/k8055
-description: A linux compatible interface to the Velleman K8055 development board.
-year: 2012
---- \ No newline at end of file
diff --git a/_projects/2013-akka-serial.md b/_projects/2013-akka-serial.md
deleted file mode 100644
index 291dfe0..0000000
--- a/_projects/2013-akka-serial.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: akka-serial
-site: https://jodersky.github.io/akka-serial
-description: Library for serial communication from Scala, based on the actor model.
-year: 2013
----
diff --git a/_projects/2014-condor.md b/_projects/2014-condor.md
deleted file mode 100644
index 130ce45..0000000
--- a/_projects/2014-condor.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Project Condor
-site: https://project-condor.github.io
-description: Suite of projects related to engineering and navigating a quadrotor.
-year: 2014-2015
-logo: condor.png
----
diff --git a/blog/index.html b/blog/index.html
deleted file mode 100644
index 8cb2359..0000000
--- a/blog/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
----
-layout: page
-id: blog
----
-<h2>All Posts</h2>
-<ul>
-{% for post in site.posts %}
- <li>
- <a href="{{ post.url }}">{{ post.title }}</a>
- </li>
-{% endfor %}
-</ul> \ No newline at end of file
diff --git a/assets/cv.pdf b/cv.pdf
index 14d5154..14d5154 100644
--- a/assets/cv.pdf
+++ b/cv.pdf
Binary files differ
diff --git a/index.html b/index.html
index af77a7a..3a933df 100644
--- a/index.html
+++ b/index.html
@@ -1,17 +1,16 @@
---
-layout: page
title: Jakob Odersky
-id: about
---
+
<div class="row">
- <div class="my-3 col-md-6 col-lg-5">
- <img class="img-fluid" src="/assets/images/jakob.jpg" alt="Jakob Odersky">
+ <div class="col-md-6 col-lg-5">
+ <img class="img-fluid" src="assets/images/jakob.jpg" alt="Jakob Odersky">
</div>
- <div class="my-3 col-md-6 col-lg-7">
+ <div class="col-md-6 col-lg-7">
<h2>Hi,</h2>
<p>I'm Jakob Odersky.</p>
- <p>I'm building a treatment access platform for cancer patients at <a href="https://driver.xyz/">Driver</a>. In my free time I like working on various technology-related <a href="/projects/">projects</a>.</p>
+ <p>In my free time I like working on various technology-related <a href="projects.html">projects</a>.</p>
<p>The best way to contact me is by email, [first name]@[last name].com. I'm also active on <a href="https://www.github.com/jodersky">GitHub</a> and occasionally on <a href="https://twitter.com/jodersky">Twitter</a> and <a href="https://www.linkedin.com/in/jodersky">LinkedIn</a>.</p>
- <p><i class="fa fa-hand-o-right"></i> <a href="/assets/cv.pdf">Resume</a></p>
+ <p><i class="fa fa-hand-o-right"></i> <a href="cv.pdf">Resume</a></p>
</div>
</div>
diff --git a/layout.pandoc.html b/layout.pandoc.html
new file mode 100644
index 0000000..a210827
--- /dev/null
+++ b/layout.pandoc.html
@@ -0,0 +1,65 @@
+<!doctype html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
+ <link rel="shortcut icon" type="image/png" href="$base_path$/assets/images/jo.png"/>
+ <link rel="stylesheet" href="$base_path$/assets/lib/bootstrap/css/bootstrap-reboot.min.css">
+ <link rel="stylesheet" href="$base_path$/assets/lib/bootstrap/css/bootstrap-grid.min.css">
+ <link rel="stylesheet" href="$base_path$/assets/lib/bootstrap/css/bootstrap.min.css">
+ <link rel="stylesheet" href="$base_path$/assets/lib/fontawesome/css/font-awesome.min.css">
+ $for(css)$
+ <link rel="stylesheet" href="$css$"/>
+ $endfor$
+ <script src="$base_path$/assets/lib/jquery/js/jquery-3.2.1.min.js"></script>
+ <script src="$base_path$/assets/lib/bootstrap/js/bootstrap.bundle.min.js"></script>
+ <script src="$base_path$/assets/lib/bootstrap/js/bootstrap.min.js"></script>
+ </head>
+ <body>
+ <header class="mb-3">
+ <nav class="navbar navbar-expand-sm navbar-dark bg-dark">
+ <div class="container">
+ <button class="navbar-toggler navbar-toggler-right" type="button"
+ data-toggle="collapse" data-target="#navbar-content">
+ <span class="navbar-toggler-icon"></span>
+ </button>
+ <a class="navbar-brand" href="$base_path$/index.html">Jakob Odersky</a>
+ <div class="collapse navbar-collapse" id="navbar-content">
+ <ul class="navbar-nav mr-auto">
+ <li class="nav-item $if(navbar_index)$active$endif$">
+ <a class="nav-link" href="$base_path$/index.html">About Me</a>
+ </li>
+ <li class="nav-item $if(navbar_projects)$active$endif$">
+ <a class="nav-link" href="$base_path$/projects.html">Projects</a>
+ </li>
+ <li class="nav-item $if(navbar_talks)$active$endif$">
+ <a class="nav-link" href="$base_path$/talks.html">Talks</a>
+ </li>
+ </ul>
+ <ul class="navbar-nav ml-auto">
+ <li class="nav-item">
+ <a class="nav-link" href="$base_path$/index.html" title="Contact"><i class="fa fa-inverse fa-lg fa-envelope"></i></a>
+ </li>
+ <li class="nav-item">
+ <a class="nav-link" href="https://www.github.com/jodersky" title="GitHub"><i class="fa fa-inverse fa-lg fa-github"></i></a>
+ </li>
+ <li class="nav-item">
+ <a class="nav-link" href="https://twitter.com/jodersky" title="Twitter"><i class="fa fa-inverse fa-lg fa-twitter"></i></a>
+ </li>
+ <li class="nav-item">
+ <a class="nav-link" href="https://www.linkedin.com/in/jodersky" title="LinkedIn"><i class="fa fa-inverse fa-lg fa-linkedin-square"></i></a>
+ </li>
+ <li class="nav-item">
+ <a class="nav-link" href="https://keybase.io/jodersky" title="Keybase"><i class="fa fa-inverse fa-lg fa-key"></i></a>
+ </li>
+ </ul>
+
+ </div>
+ </div>
+ </nav>
+ </header>
+ <main class="container">
+ $body$
+ </main>
+ </body>
+</html>
diff --git a/projects.md b/projects.md
new file mode 100644
index 0000000..3bc6b67
--- /dev/null
+++ b/projects.md
@@ -0,0 +1,68 @@
+---
+title: Projects
+css: projects/main.css
+---
+
+I'm an enthusiast of free and open source software. Here is a list of select side projects I've been working on. Check out my [GitHub repositories](https://github.com/jodersky?tab=repositories) for a more extensive list of open source contributions.
+
+### Project Condor
+
+*2014-2015*
+
+![logo](projects/condor.png)\
+
+Suite of projects related to engineering and navigating a quadrotor.
+
+[project website](https://project-condor.github.io)
+
+---
+
+### akka-serial
+
+*2013*
+
+Library for serial communication from Scala, based on the actor model.
+
+[project website](https://jodersky.github.io/akka-serial)
+
+---
+
+### k8055
+
+*2012*
+
+A linux compatible interface to the Velleman K8055 development board.
+
+[project website](https://github.com/jodersky/k8055)
+
+---
+
+### Virtual Hadron Collider
+
+*2011*
+
+![logo](projects/vhc.png)\
+
+A particle simulator with 3D visualization, 1st year project in physics CS course.
+
+[project website](https://github.com/jodersky/vhc)
+
+---
+
+### A Simple Mechanics Simulator (SiMS)
+
+*2010*
+
+![logo](projects/sims.jpg)\
+
+A real-time mechanics simulator, my final year school project.
+
+[project website](https://github.com/jodersky/sims)
+
+---
+
+## Signature
+My public key's fingerprint is: `4E7D A7B5 A0F8 6992 D6EB 3F51 4601 8786 62E3 3372`
+
+<i class="fa fa-hand-o-right"></i> Check identity on [keybase.io](https://keybase.io/jodersky)
+
diff --git a/assets/images/condor.png b/projects/condor.png
index 2bc68ee..2bc68ee 100644
--- a/assets/images/condor.png
+++ b/projects/condor.png
Binary files differ
diff --git a/projects/index.html b/projects/index.html
deleted file mode 100644
index c3a14d2..0000000
--- a/projects/index.html
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: page
-title: Projects
-id: projects
----
-<div class="mt-3">
- I'm an enthusiast of free and open source software. Here is a list of side projects I've been working on.
- <h2 class="mt-3">Select Projects</h2>
- <p>These are the projects that are more involved and presentable.</p>
-
- <div class="card-columns">
- {% for project in site.projects reversed %}
- <div class="card" >
- {% if project.logo %}
- <img class="img-fluid mx-auto d-block" src="/assets/images/{{project.logo}}" alt="Project logo">
- {% endif %}
-
- <div class="card-body">
- <h4 class="card-title">{{ project.title }}</h4>
- <h6 class="card-subtitle mb-2 text-muted">{{ project.year }}</h6>
- <p class="card-text">{{ project.description }}</p>
- <a class="card-link" href="{{ project.site }}">project website</a>
- </div>
- </div>
- {% endfor %}
- </div>
-
- <h2>Other Projects</h2>
- <p>Check out <a href="https://github.com/jodersky?tab=repositories">GitHub repositories</a> for a more extensive list of open source contributions.</p>
-
- <h2 class="mt-3">Signature</h2>
- <p>My public key's fingerprint is: <code>4E7D A7B5 A0F8 6992 D6EB 3F51 4601 8786 62E3 3372</code></p>
- <p><i class="fa fa-hand-o-right"></i> Check identity on <a href="https://keybase.io/jodersky">keybase.io</a></p>
-</div>
diff --git a/projects/main.css b/projects/main.css
new file mode 100644
index 0000000..a216387
--- /dev/null
+++ b/projects/main.css
@@ -0,0 +1,4 @@
+img {
+ float: right;
+ max-width: 20rem;
+}
diff --git a/assets/images/sims.jpg b/projects/sims.jpg
index 68e66cd..68e66cd 100644
--- a/assets/images/sims.jpg
+++ b/projects/sims.jpg
Binary files differ
diff --git a/assets/images/vhc.png b/projects/vhc.png
index c192668..c192668 100644
--- a/assets/images/vhc.png
+++ b/projects/vhc.png
Binary files differ
diff --git a/talks/index.md b/talks.html
index 52b1804..d7a7439 100644
--- a/talks/index.md
+++ b/talks.html
@@ -1,7 +1,5 @@
---
-layout: page
title: Talks
-id: talks
---
### Channeling the Inner Complexity
@@ -12,8 +10,8 @@ efficient manner. This talk presents an overview of various such
models available in Scala, and their impact on program structure and
complexity. It then explores a way to model concurrency with less
complexity with an implementation of Communicating Sequential
-Processes (CSP), heavily inspired by Goroutines, scala-async and
+Processes (CSP), heavily inspired by goroutines, scala-async and
Clojure's core.async.
-[slides [pdf]](scala-channels.pdf) [[html]](scala-channels.html)
+[slides [pdf]](talks/scala-channels.pdf) [[html]](talks/scala-channels.html)
[project escale](https://github.com/jodersky/escale)