aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml14
-rw-r--r--.gitmodules2
-rw-r--r--config.toml5
-rw-r--r--content.org58
-rw-r--r--publish.el12
-rw-r--r--static/blog/2016-03-24-note-reader.html8
-rw-r--r--static/blog/2016-10-03-mips-processor.html8
-rw-r--r--static/blog/2016-12-14-CPU-introduction.html8
-rw-r--r--static/blog/2017-02-20-compiler.html8
-rw-r--r--static/blog/2018-01-14-emacs-email-client.html8
-rw-r--r--static/blog/2018-01-20-yage.html8
-rw-r--r--static/blog/2018-02-23-emotion-classification.html8
-rw-r--r--static/blog/2018-03-23-fmark.html8
-rw-r--r--static/blog/2018-03-23-noise-silencer.html8
-rw-r--r--static/blog/2018-07-08-jekyll-for-portfolio-website.html8
-rw-r--r--static/blog/2019-02-24-realistic-graphics.html8
-rw-r--r--static/blog/2019-06-19-verismith.html8
-rw-r--r--static/blog/2019-11-26-msr-phd-workshop-next-generation-cloud-infrastructure.html8
-rw-r--r--static/blog/2020-02-15-nix-for-coq-development.html8
-rw-r--r--static/blog/2020-12-21-introduction-to-luhmanns-zettelkasten.html8
-rw-r--r--static/papers/fvhls_oopsla21.pdfbin806785 -> 703358 bytes
21 files changed, 60 insertions, 151 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..9b6ccfa
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,14 @@
+image: ymherklotz/hugo:latest
+
+variables:
+ GIT_SUBMODULE_STRATEGY: recursive
+
+pages:
+ script:
+ - emacs --batch --no-init --file content.org --load publish.el
+ - hugo
+ artifacts:
+ paths:
+ - public
+ only:
+ - master
diff --git a/.gitmodules b/.gitmodules
index e46a25c..79e427a 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,3 @@
[submodule "themes/ymherklotz"]
path = themes/ymherklotz
- url = https://gitlab.com/ymherklotz/ymherklotz-theme
+ url = https://gitlab.com/ymherklotz/hugo-ymherklotz
diff --git a/config.toml b/config.toml
index 28ee2e5..7b932eb 100644
--- a/config.toml
+++ b/config.toml
@@ -1,4 +1,4 @@
-baseURL = "http://example.org/"
+baseURL = "https://yannherklotz.com"
languageCode = "en-uk"
title = "Yann Herklotz"
theme = "ymherklotz"
@@ -8,6 +8,9 @@ theme = "ymherklotz"
katex = true
offen = true
+[permalinks]
+ blog = '/:year/:month/:title/'
+
[markup.goldmark.renderer]
unsafe = true
diff --git a/content.org b/content.org
index 777ce28..1923907 100644
--- a/content.org
+++ b/content.org
@@ -34,7 +34,7 @@ to the input. If these differ, the design is automatically reduced until the bug
Here you can find all my previous posts:
-** Vericert :coq:hardware:FPGA:verilog:
+** TODO Vericert :coq:hardware:FPGA:verilog:
:PROPERTIES:
:EXPORT_DATE: 2021-09-07
:EXPORT_FILE_NAME: 2021-09-07-vericert
@@ -84,9 +84,9 @@ well.
** Introduction to Luhmann's Zettelkasten :writing:emacs:
:PROPERTIES:
:EXPORT_DATE: 2020-12-21
-:EXPORT_FILE_NAME: 2020-12-21-introduction-to-luhmanns-zettelkasten
+:EXPORT_FILE_NAME: introduction-to-luhmanns-zettelkasten
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Niklas Luhmann's Zettelkasten is becoming increasingly popular for being a great note taking technique. However, it is often misunderstood as taking notes without any structure, whereas Luhmann actually structured his notes hierarchically, but also allowed for arbitrary links between notes."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Niklas Luhmann's Zettelkasten is becoming increasingly popular for being a great note taking technique. However, it is often misunderstood as taking notes without any structure, whereas Luhmann actually structured his notes hierarchically, but also allowed for arbitrary links between notes." :aliases '("/blog/2020-12-21-introduction-to-luhmanns-zettelkasten.html")
:CUSTOM_ID: introduction-to-luhmanns-zettelkasten
:END:
@@ -380,9 +380,9 @@ these notes.
** Nix for Coq Development :nix:coq:
:PROPERTIES:
:EXPORT_DATE: 2020-02-15
-:EXPORT_FILE_NAME: 2020-02-15-nix-for-coq-development
+:EXPORT_FILE_NAME: nix-for-coq-development
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Nix is a great package manager that can be used to control various complex environments easily, such as Coq development with ocaml extraction with various dependencies."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Nix is a great package manager that can be used to control various complex environments easily, such as Coq development with ocaml extraction with various dependencies." :aliases '("/blog/2020-02-15-nix-for-coq-development.html")
:CUSTOM_ID: nix-for-coq-development
:END:
@@ -632,9 +632,9 @@ Coq.
** MSR PhD Workshop on Next-Generation Cloud Infrastructure :workshop:FPGA:
:PROPERTIES:
:EXPORT_DATE: 2019-11-26
-:EXPORT_FILE_NAME: 2019-11-26-msr-phd-workshop-next-generation-cloud-infrastructure
+:EXPORT_FILE_NAME: msr-phd-workshop-next-generation-cloud-infrastructure
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Summary of the microsoft talks and posters presented at the MSR PhD Workshop on Next-Generation Cloud Infrastructure."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Summary of the microsoft talks and posters presented at the MSR PhD Workshop on Next-Generation Cloud Infrastructure." :aliases '("/blog/2019-11-26-msr-phd-workshop-next-generation-cloud-infrastructure.html")
:CUSTOM_ID: msr-phd-workshop-on-next-generation-cloud-infrastructure
:END:
@@ -760,9 +760,9 @@ straightforward as they are thinking.
** Verismith :verilog:synthesis:haskell:FPGA:
:PROPERTIES:
:EXPORT_DATE: 2019-06-19
-:EXPORT_FILE_NAME: 2019-06-19-verismith
+:EXPORT_FILE_NAME: verismith
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Verilog Fuzzer to test the major verilog compilers by generating random, valid Verilog."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Verilog Fuzzer to test the major verilog compilers by generating random, valid Verilog." :aliases '("/blog/2019-06-19-verismith.html")
:CUSTOM_ID: verismith
:END:
@@ -852,9 +852,9 @@ The following resources provide more context about Verismith:
** Realistic Graphics :graphics:
:PROPERTIES:
:EXPORT_DATE: 2019-02-24
-:EXPORT_FILE_NAME: 2019-02-24-realistic-graphics
+:EXPORT_FILE_NAME: realistic-graphics
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Environment maps can be used to render objects with realistic lighting by indexing into the map."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Environment maps can be used to render objects with realistic lighting by indexing into the map." :aliases '("/blog/2019-02-24-realistic-graphics.html")
:CUSTOM_ID: realistic-graphics
:END:
@@ -925,9 +925,9 @@ sample a few lights.
** Jekyll to create a portfolio website :web:
:PROPERTIES:
:EXPORT_DATE: 2018-07-08
-:EXPORT_FILE_NAME: 2018-07-08-jekyll-for-portfolio-website
+:EXPORT_FILE_NAME: jekyll-for-portfolio-website
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Jekyll can be effectively used to publish a static website, even containing multiple pages such as a portfolio."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Jekyll can be effectively used to publish a static website, even containing multiple pages such as a portfolio." :aliases '("/blog/2018-07-08-jekyll-for-portfolio-website.html")
:CUSTOM_ID: jekyll-to-create-a-portfolio-website
:END:
@@ -1039,9 +1039,9 @@ the descriptions and blogs using markdown.
** Noise Silencer :DSP:
:PROPERTIES:
:EXPORT_DATE: 2018-03-23
-:EXPORT_FILE_NAME: 2018-03-23-noise-silencer
+:EXPORT_FILE_NAME: noise-silencer
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "A real-time noise cancelling processor that reduces noise from audio."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "A real-time noise cancelling processor that reduces noise from audio." :aliases '("/blog/2018-03-23-noise-silencer.html")
:CUSTOM_ID: noise-silencer
:END:
@@ -1054,9 +1054,9 @@ original spectrum of the signal.
** FMark :markdown:F#:
:PROPERTIES:
:EXPORT_DATE: 2018-03-23
-:EXPORT_FILE_NAME: 2018-03-23-fmark
+:EXPORT_FILE_NAME: fmark
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "FMark is a markdown engine in F#, supporting various extensions such as latex rendered math and macros."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "FMark is a markdown engine in F#, supporting various extensions such as latex rendered math and macros." :aliases '("/blog/2018-03-23-fmark.html")
:CUSTOM_ID: fmark
:END:
@@ -1121,9 +1121,9 @@ over once something changes.
** Emotion Classification using Images :ML:
:PROPERTIES:
:EXPORT_DATE: 2018-02-23
-:EXPORT_FILE_NAME: 2018-02-23-emotion-classification
+:EXPORT_FILE_NAME: emotion-classification
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "A convolutional neural network was trained to classify images based on 6 emotions, achieving an accuracy of about 60%."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "A convolutional neural network was trained to classify images based on 6 emotions, achieving an accuracy of about 60%." :aliases '("/blog/2018-02-23-emotion-classification.html")
:CUSTOM_ID: emotion-classification-using-images
:END:
@@ -1133,9 +1133,9 @@ tensorflow and python to design the network and train it.
** YAGE :graphics:
:PROPERTIES:
:EXPORT_DATE: 2018-01-20
-:EXPORT_FILE_NAME: 2018-01-20-yage
+:EXPORT_FILE_NAME: yage
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "YAGE is a game engine that was built in C++ using OpenGL as a back end."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "YAGE is a game engine that was built in C++ using OpenGL as a back end." :aliases '("/blog/2018-01-20-yage.html")
:CUSTOM_ID: yage
:END:
@@ -1159,9 +1159,9 @@ that can be drawn high.
** Emacs as an Email Client :emacs:
:PROPERTIES:
:EXPORT_DATE: 2018-01-14
-:EXPORT_FILE_NAME: 2018-01-14-emacs-email-client
+:EXPORT_FILE_NAME: emacs-email-client
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Emacs can be used effectively as an email client to quickly write emails using familiar keybindings, as well as easily linking emails to org files for reminders."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Emacs can be used effectively as an email client to quickly write emails using familiar keybindings, as well as easily linking emails to org files for reminders." :aliases '("/blog/2018-01-14-emacs-email-client.html")
:CUSTOM_ID: emacs-as-an-email-client
:END:
@@ -1288,9 +1288,9 @@ Emacs is now ready to be used as a full featured email client.
** CPU Introduction :hardware:
:PROPERTIES:
:EXPORT_DATE: 2016-12-14
-:EXPORT_FILE_NAME: 2016-12-14-CPU-introduction
+:EXPORT_FILE_NAME: CPU-introduction
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Introduction to how a CPU works, following the MIPS I architecture and explaining properties such as pipelining."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Introduction to how a CPU works, following the MIPS I architecture and explaining properties such as pipelining." :aliases '(/blog/2016-12-14-CPU-introduction.html)
:CUSTOM_ID: cpu-introduction
:END:
@@ -1402,9 +1402,9 @@ TODO Part about compiler
** Mips Processor :hardware:
:PROPERTIES:
:EXPORT_DATE: 2016-10-03
-:EXPORT_FILE_NAME: 2016-10-03-mips-processor
+:EXPORT_FILE_NAME: mips-processor
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Implemented a MIPS I CPU simulator in C++ which can execute assembly code."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "Implemented a MIPS I CPU simulator in C++ which can execute assembly code." :aliases '("/blog/2016-10-03-mips-processor.html")
:CUSTOM_ID: mips-processor
:END:
@@ -1419,9 +1419,9 @@ instructions.
** FPGA Note Reader :hardware:FPGA:
:PROPERTIES:
:EXPORT_DATE: 2016-03-24
-:EXPORT_FILE_NAME: 2016-03-24-note-reader
+:EXPORT_FILE_NAME: note-reader
:EXPORT_HUGO_SECTION: blog
-:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "We built a real-time music note reader using an FPGA and a camera. It can read custom sheet music and play it back in real-time. The pitch is also adjustable using a blue marker placed anywhere in front of the camera."
+:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary "We built a real-time music note reader using an FPGA and a camera. It can read custom sheet music and play it back in real-time. The pitch is also adjustable using a blue marker placed anywhere in front of the camera." :aliases '("/blog/2016-03-24-note-reader.html")
:CUSTOM_ID: fpga-note-reader
:END:
diff --git a/publish.el b/publish.el
new file mode 100644
index 0000000..f18c449
--- /dev/null
+++ b/publish.el
@@ -0,0 +1,12 @@
+(require 'package)
+(package-initialize)
+(add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/") t)
+(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
+(package-refresh-contents)
+(package-install 'ox-hugo)
+
+(require 'org)
+(require 'ox)
+(require 'ox-hugo)
+
+(org-hugo-export-wim-to-md :all-subtrees)
diff --git a/static/blog/2016-03-24-note-reader.html b/static/blog/2016-03-24-note-reader.html
deleted file mode 100644
index 501214e..0000000
--- a/static/blog/2016-03-24-note-reader.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2016-03-24-note-reader/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2016-10-03-mips-processor.html b/static/blog/2016-10-03-mips-processor.html
deleted file mode 100644
index 67ee82a..0000000
--- a/static/blog/2016-10-03-mips-processor.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2016-10-03-mips-processor/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2016-12-14-CPU-introduction.html b/static/blog/2016-12-14-CPU-introduction.html
deleted file mode 100644
index 7720c43..0000000
--- a/static/blog/2016-12-14-CPU-introduction.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2016-12-14-CPU-introduction/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2017-02-20-compiler.html b/static/blog/2017-02-20-compiler.html
deleted file mode 100644
index 4463e15..0000000
--- a/static/blog/2017-02-20-compiler.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2017-02-20-compiler/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2018-01-14-emacs-email-client.html b/static/blog/2018-01-14-emacs-email-client.html
deleted file mode 100644
index 01aa3b1..0000000
--- a/static/blog/2018-01-14-emacs-email-client.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2018-01-14-emacs-email-client/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2018-01-20-yage.html b/static/blog/2018-01-20-yage.html
deleted file mode 100644
index 54ddced..0000000
--- a/static/blog/2018-01-20-yage.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2018-01-20-yage/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2018-02-23-emotion-classification.html b/static/blog/2018-02-23-emotion-classification.html
deleted file mode 100644
index 741cbef..0000000
--- a/static/blog/2018-02-23-emotion-classification.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2018-02-23-emotion-classification/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2018-03-23-fmark.html b/static/blog/2018-03-23-fmark.html
deleted file mode 100644
index 63c803c..0000000
--- a/static/blog/2018-03-23-fmark.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2018-03-23-fmark/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2018-03-23-noise-silencer.html b/static/blog/2018-03-23-noise-silencer.html
deleted file mode 100644
index 1802d61..0000000
--- a/static/blog/2018-03-23-noise-silencer.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2018-03-23-noise-silencer/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2018-07-08-jekyll-for-portfolio-website.html b/static/blog/2018-07-08-jekyll-for-portfolio-website.html
deleted file mode 100644
index a08d89f..0000000
--- a/static/blog/2018-07-08-jekyll-for-portfolio-website.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2018-07-08-jekyll-for-portfolio-website/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2019-02-24-realistic-graphics.html b/static/blog/2019-02-24-realistic-graphics.html
deleted file mode 100644
index be937c3..0000000
--- a/static/blog/2019-02-24-realistic-graphics.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2019-02-24-realistic-graphics/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2019-06-19-verismith.html b/static/blog/2019-06-19-verismith.html
deleted file mode 100644
index ec6d045..0000000
--- a/static/blog/2019-06-19-verismith.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2019-06-19-verismith/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2019-11-26-msr-phd-workshop-next-generation-cloud-infrastructure.html b/static/blog/2019-11-26-msr-phd-workshop-next-generation-cloud-infrastructure.html
deleted file mode 100644
index b09b2a2..0000000
--- a/static/blog/2019-11-26-msr-phd-workshop-next-generation-cloud-infrastructure.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2019-11-26-msr-phd-workshop-next-generation-cloud-infrastructure/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2020-02-15-nix-for-coq-development.html b/static/blog/2020-02-15-nix-for-coq-development.html
deleted file mode 100644
index 3e47f9d..0000000
--- a/static/blog/2020-02-15-nix-for-coq-development.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2020-02-15-nix-for-coq-development/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/blog/2020-12-21-introduction-to-luhmanns-zettelkasten.html b/static/blog/2020-12-21-introduction-to-luhmanns-zettelkasten.html
deleted file mode 100644
index 3bb77dc..0000000
--- a/static/blog/2020-12-21-introduction-to-luhmanns-zettelkasten.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta http-equiv="Refresh" content="0; url='https://yannherklotz.com/blog/2020-12-21-introduction-to-luhmanns-zettelkasten/'" />
- </head>
- <body>
- </body>
-</html>
diff --git a/static/papers/fvhls_oopsla21.pdf b/static/papers/fvhls_oopsla21.pdf
index 1b78c6b..c434555 100644
--- a/static/papers/fvhls_oopsla21.pdf
+++ b/static/papers/fvhls_oopsla21.pdf
Binary files differ