diff options
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 Binary files differindex 1b78c6b..c434555 100644 --- a/static/papers/fvhls_oopsla21.pdf +++ b/static/papers/fvhls_oopsla21.pdf |