diff options
author | Jakob Odersky <jakob@odersky.com> | 2018-11-19 13:29:15 -0800 |
---|---|---|
committer | Jakob Odersky <jakob@odersky.com> | 2018-11-19 13:29:15 -0800 |
commit | 31ecae8b901060644175f39241c65a06b78b2a83 (patch) | |
tree | f01bd382c30905fa4be21dc72cc879aeafa72412 | |
parent | 14da66191f12755de633fe839aadd6bb2f09fd57 (diff) | |
download | website-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.html | 8 | ||||
-rw-r--r-- | Makefile | 60 | ||||
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | _config.yml | 6 | ||||
-rw-r--r-- | _includes/header.html | 51 | ||||
-rw-r--r-- | _includes/main.html | 19 | ||||
-rw-r--r-- | _layouts/empty.html | 4 | ||||
-rw-r--r-- | _layouts/page.html | 4 | ||||
-rw-r--r-- | _layouts/post.html | 4 | ||||
-rw-r--r-- | _posts/2015-04-09-hello-world.md | 6 | ||||
-rw-r--r-- | _projects/2010-sims.md | 7 | ||||
-rw-r--r-- | _projects/2011-vhc.md | 7 | ||||
-rw-r--r-- | _projects/2012-k8055.md | 6 | ||||
-rw-r--r-- | _projects/2013-akka-serial.md | 6 | ||||
-rw-r--r-- | _projects/2014-condor.md | 7 | ||||
-rw-r--r-- | blog/index.html | 12 | ||||
-rw-r--r-- | cv.pdf (renamed from assets/cv.pdf) | bin | 154565 -> 154565 bytes | |||
-rw-r--r-- | index.html | 13 | ||||
-rw-r--r-- | layout.pandoc.html | 65 | ||||
-rw-r--r-- | projects.md | 68 | ||||
-rw-r--r-- | projects/condor.png (renamed from assets/images/condor.png) | bin | 35706 -> 35706 bytes | |||
-rw-r--r-- | projects/index.html | 34 | ||||
-rw-r--r-- | projects/main.css | 4 | ||||
-rw-r--r-- | projects/sims.jpg (renamed from assets/images/sims.jpg) | bin | 6456 -> 6456 bytes | |||
-rw-r--r-- | projects/vhc.png (renamed from assets/images/vhc.png) | bin | 21423 -> 21423 bytes | |||
-rw-r--r-- | talks.html (renamed from talks/index.md) | 6 |
26 files changed, 209 insertions, 190 deletions
@@ -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 @@ -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 Binary files differ@@ -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 Binary files differindex 2bc68ee..2bc68ee 100644 --- a/assets/images/condor.png +++ b/projects/condor.png 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 Binary files differindex 68e66cd..68e66cd 100644 --- a/assets/images/sims.jpg +++ b/projects/sims.jpg diff --git a/assets/images/vhc.png b/projects/vhc.png Binary files differindex c192668..c192668 100644 --- a/assets/images/vhc.png +++ b/projects/vhc.png 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) |