From 7a302eb69bfef1ecd0a17e16085bd4359a0ae717 Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Thu, 12 Sep 2019 18:49:03 -0400 Subject: [PATCH] Series and tags (#74) * initial support for tags and series * tagging support * oops * Update main.go --- blog/OVE-20190623-0001.md | 4 ++ ...-those-that-bullied-me-2018-06-16.markdown | 2 + blog/atom-as-vim-2014-11-18.markdown | 5 ++- blog/beauty-in-ugly-2018-04-23.markdown | 4 +- blog/beego-2014-11-28.markdown | 3 ++ ...nd-men-and-an-elephant-2018-11-29.markdown | 1 + ...brain-fmri-to-3d-model-2019-08-23.markdown | 4 ++ blog/career-advice-2019-06-18.markdown | 2 + ...chaos-magick-debugging-2018-11-13.markdown | 1 + ...questria-orchestration-2015-03-13.markdown | 2 + ...coding-on-an-ipad-2018-04-14-2018.markdown | 4 +- blog/coming-out-2015-12-01.markdown | 2 + blog/crazy-experiment-2017-01-09.markdown | 3 ++ blog/creators-code-2018-09-18.markdown | 3 ++ blog/cursing-out-god-2018-11-21.markdown | 3 +- blog/death-08-19-2018.markdown | 1 + ...-notice-elemental-ircd-2019-02-11.markdown | 2 + blog/dev-2014-10-24.markdown | 2 + .../farewell-email-heroku-2019-03-08.markdown | 3 ++ blog/fear-07-24-2018.markdown | 1 + ...nim-for-fun-and-profit-2015-12-20.markdown | 4 ++ blog/formal-grammar-of-h-2019-05-19.markdown | 1 + ...etting-started-with-go-2015-01-28.markdown | 1 + blog/gratitude-07-20-2018.markdown | 1 + blog/h-language-2019-06-30.markdown | 3 ++ ...w-does-into-meditation-2017-12-10.markdown | 1 + blog/how-send-email-nim-2019-08-28.markdown | 4 ++ ...e-discord-webhook-cron-2018-03-29.markdown | 1 + blog/howto-usermode-linux-2019-07-07.markdown | 1 + ...smart-keyboard-accents-2019-05-10.markdown | 1 + ...and-1-syscalls-file-io-2018-06-18.markdown | 3 ++ blog/let-it-snow-2018-12-17.markdown | 2 + blog/life-update-2019-05-16.markdown | 4 +- blog/lokahi-2018-02-08.markdown | 5 +++ ...-beast-postmodern-gold-2019-06-05.markdown | 4 ++ .../narrative-of-sickness-2018-08-13.markdown | 1 + blog/olin-1-why-09-1-2018.markdown | 1 + blog/olin-2-the-future-09-5-2018.markdown | 1 + blog/one-day-2018-11-01.markdown | 3 +- blog/plt-1-the-beginning-2015-02-14.markdown | 1 + ...lt-2-entering-the-cave-2015-02-14.markdown | 1 + blog/quinoa-taco-bowls-2019-08-16.markdown | 1 + blog/rss-feed-generation-2017-03-29.markdown | 3 ++ ...-site-wireguard-part-1-2019-04-02.markdown | 1 + ...-site-wireguard-part-2-2019-04-07.markdown | 1 + ...-site-wireguard-part-3-2019-04-11.markdown | 1 + blog/sorting-time-2018-08-26.markdown | 4 ++ blog/tarot-for-hackers-2019-07-24.markdown | 1 + ...allation-and-basic-use-2019-05-20.markdown | 1 + blog/ten-thousand-laughs-2018-12-01.markdown | 1 + ...the-cult-of-kubernetes-2019-09-07.markdown | 5 +++ ...ervice-is-already-down-2018-10-13.markdown | 1 + blog/v-vaporware-2019-06-23.markdown | 3 ++ ...mbly-talk-video-posted-2019-08-15.markdown | 2 + cmd/site/html.go | 41 +++++++++++++++++++ cmd/site/main.go | 7 +++- internal/blog/blog.go | 24 +++++++++++ templates/blogindex.html | 2 + templates/blogpost.html | 11 +++++ templates/series.html | 16 ++++++++ templates/serieslist.html | 16 ++++++++ 61 files changed, 231 insertions(+), 7 deletions(-) create mode 100644 templates/series.html create mode 100644 templates/serieslist.html diff --git a/blog/OVE-20190623-0001.md b/blog/OVE-20190623-0001.md index 2817f92..62ed4dd 100644 --- a/blog/OVE-20190623-0001.md +++ b/blog/OVE-20190623-0001.md @@ -1,6 +1,10 @@ --- title: "OVE-20190623-0001" date: 2019-06-24 +tags: + - v + - security + - release --- # OVE-20190623-0001 diff --git a/blog/a-letter-to-those-that-bullied-me-2018-06-16.markdown b/blog/a-letter-to-those-that-bullied-me-2018-06-16.markdown index 4f50591..7ef0276 100644 --- a/blog/a-letter-to-those-that-bullied-me-2018-06-16.markdown +++ b/blog/a-letter-to-those-that-bullied-me-2018-06-16.markdown @@ -2,6 +2,8 @@ title: A Letter to Those That Bullied Me date: 2018-06-16 for: Elizabeth +tags: + - offmychest --- # A Letter to Those Who Bullied Me diff --git a/blog/atom-as-vim-2014-11-18.markdown b/blog/atom-as-vim-2014-11-18.markdown index 87749ad..a4cf9dd 100644 --- a/blog/atom-as-vim-2014-11-18.markdown +++ b/blog/atom-as-vim-2014-11-18.markdown @@ -1,7 +1,10 @@ --- title: My Experience with Atom as A Vim User date: 2014-11-18 -from: medium +series: medium-archive +tags: + - atom + - vim --- My Experience with Atom as A Vim User diff --git a/blog/beauty-in-ugly-2018-04-23.markdown b/blog/beauty-in-ugly-2018-04-23.markdown index 1ead059..2c57ede 100644 --- a/blog/beauty-in-ugly-2018-04-23.markdown +++ b/blog/beauty-in-ugly-2018-04-23.markdown @@ -2,6 +2,8 @@ title: The Beautiful in the Ugly date: 2018-04-23 for: Silver +tags: + - shell --- # The Beautiful in the Ugly @@ -85,4 +87,4 @@ function deploy { } $* -``` \ No newline at end of file +``` diff --git a/blog/beego-2014-11-28.markdown b/blog/beego-2014-11-28.markdown index 4e950c0..1d03cc2 100644 --- a/blog/beego-2014-11-28.markdown +++ b/blog/beego-2014-11-28.markdown @@ -1,6 +1,9 @@ --- title: Web Application Development with Beego date: 2014-11-28 +tags: + - go + - beego --- Web Application Development with Beego diff --git a/blog/blind-men-and-an-elephant-2018-11-29.markdown b/blog/blind-men-and-an-elephant-2018-11-29.markdown index b33e6fb..7c599e4 100644 --- a/blog/blind-men-and-an-elephant-2018-11-29.markdown +++ b/blog/blind-men-and-an-elephant-2018-11-29.markdown @@ -1,6 +1,7 @@ --- title: "Blind Men and an Elephant" date: 2018-11-29 +series: conlangs --- # Blind Men and an Elephant diff --git a/blog/brain-fmri-to-3d-model-2019-08-23.markdown b/blog/brain-fmri-to-3d-model-2019-08-23.markdown index 3c7ac33..52d11ec 100644 --- a/blog/brain-fmri-to-3d-model-2019-08-23.markdown +++ b/blog/brain-fmri-to-3d-model-2019-08-23.markdown @@ -1,6 +1,10 @@ --- title: How I Converted my Brain fMRI to a 3D Model date: 2019-08-23 +series: howto +tags: + - python + - blender --- # How I Converted my Brain fMRI to a 3D Model diff --git a/blog/career-advice-2019-06-18.markdown b/blog/career-advice-2019-06-18.markdown index a8c13cc..f73b8a3 100644 --- a/blog/career-advice-2019-06-18.markdown +++ b/blog/career-advice-2019-06-18.markdown @@ -1,6 +1,8 @@ --- title: Advice to People Nurturing a Career in Computering date: 2019-06-18 +tags: + - career --- # Advice to People Nurturing a Career in Computering diff --git a/blog/chaos-magick-debugging-2018-11-13.markdown b/blog/chaos-magick-debugging-2018-11-13.markdown index 8dc3d91..cc26ef1 100644 --- a/blog/chaos-magick-debugging-2018-11-13.markdown +++ b/blog/chaos-magick-debugging-2018-11-13.markdown @@ -2,6 +2,7 @@ title: "Chaos Magick Debugging" date: 2018-11-13 thanks: CelestialBoon +series: magick --- # Chaos Magick Debugging diff --git a/blog/cinemaquestria-orchestration-2015-03-13.markdown b/blog/cinemaquestria-orchestration-2015-03-13.markdown index 9a16bfb..4508c49 100644 --- a/blog/cinemaquestria-orchestration-2015-03-13.markdown +++ b/blog/cinemaquestria-orchestration-2015-03-13.markdown @@ -1,6 +1,8 @@ --- title: CinemaQuestria Orchestration date: 2015-03-13 +tags: + - cinemaquestria --- CinemaQuestria Orchestration diff --git a/blog/coding-on-an-ipad-2018-04-14-2018.markdown b/blog/coding-on-an-ipad-2018-04-14-2018.markdown index bbb14c7..51a6fce 100644 --- a/blog/coding-on-an-ipad-2018-04-14-2018.markdown +++ b/blog/coding-on-an-ipad-2018-04-14-2018.markdown @@ -1,6 +1,8 @@ --- title: Coding on an iPad date: 2018-04-14 +tags: + - ipad --- # Coding on an iPad @@ -130,4 +132,4 @@ You just do thing and it does thing. [texastic]: https://itunes.apple.com/us/app/textastic-code-editor-6/id1049254261?mt=8 [workingcopy]: https://itunes.apple.com/us/app/working-copy/id896694807?mt=8 [workflow]: https://www.workflow.is -[ceruleiscloud]: https://elliot.pro/blog/working-in-the-cloud.html \ No newline at end of file +[ceruleiscloud]: https://elliot.pro/blog/working-in-the-cloud.html diff --git a/blog/coming-out-2015-12-01.markdown b/blog/coming-out-2015-12-01.markdown index 115ca6b..5731096 100644 --- a/blog/coming-out-2015-12-01.markdown +++ b/blog/coming-out-2015-12-01.markdown @@ -1,6 +1,8 @@ --- title: Coming Out date: 2015-12-01 +tags: + - personal --- Coming Out diff --git a/blog/crazy-experiment-2017-01-09.markdown b/blog/crazy-experiment-2017-01-09.markdown index 0a5b95b..c80ac44 100644 --- a/blog/crazy-experiment-2017-01-09.markdown +++ b/blog/crazy-experiment-2017-01-09.markdown @@ -1,6 +1,9 @@ --- title: "Crazy Experiment: Ship the Frontend as an asar document" date: "2017-01-09" +tags: + - asar + - frontend --- Crazy Experiment: Ship the Frontend as an asar document diff --git a/blog/creators-code-2018-09-18.markdown b/blog/creators-code-2018-09-18.markdown index ac943e6..4ba62d7 100644 --- a/blog/creators-code-2018-09-18.markdown +++ b/blog/creators-code-2018-09-18.markdown @@ -2,6 +2,9 @@ title: "Creator's Code" author: Christine Dodrill date: 2018-09-17 +tags: + - release + - coc --- # [Creator's Code](https://github.com/Xe/creators-code) diff --git a/blog/cursing-out-god-2018-11-21.markdown b/blog/cursing-out-god-2018-11-21.markdown index ab55527..39b9840 100644 --- a/blog/cursing-out-god-2018-11-21.markdown +++ b/blog/cursing-out-god-2018-11-21.markdown @@ -1,6 +1,7 @@ --- title: My Experience Cursing Out God date: 2018-11-21 +series: dreams --- # My Experience Cursing Out God @@ -37,4 +38,4 @@ I was floored and must have amused Him, given that He started to chuckle: "Creat He looked at his wrist as if He was looking at a watch, even though He was not wearing one. "Oh dear, it looks like it's time for you to wake up now. Remember Creator, no time but the present." He snapped His hands and then the volcano started to erupt. -The world instantly snapped out of existence and I awoke in a sweat, my blankets evenly distributed in my room. \ No newline at end of file +The world instantly snapped out of existence and I awoke in a sweat, my blankets evenly distributed in my room. diff --git a/blog/death-08-19-2018.markdown b/blog/death-08-19-2018.markdown index 27c1b1c..209b8dd 100644 --- a/blog/death-08-19-2018.markdown +++ b/blog/death-08-19-2018.markdown @@ -2,6 +2,7 @@ title: Death date: 2018-08-19 thanks: Sygma +series: magick --- # Death diff --git a/blog/deprecation-notice-elemental-ircd-2019-02-11.markdown b/blog/deprecation-notice-elemental-ircd-2019-02-11.markdown index 067c472..4c343f2 100644 --- a/blog/deprecation-notice-elemental-ircd-2019-02-11.markdown +++ b/blog/deprecation-notice-elemental-ircd-2019-02-11.markdown @@ -1,6 +1,8 @@ --- title: "Deprecation Notice: Elemental-IRCd" date: 2019-02-11 +tags: + - release --- # Deprecation Notice: Elemental-IRCd diff --git a/blog/dev-2014-10-24.markdown b/blog/dev-2014-10-24.markdown index 26232f6..22da4fb 100644 --- a/blog/dev-2014-10-24.markdown +++ b/blog/dev-2014-10-24.markdown @@ -1,6 +1,8 @@ --- title: Instant Development Environments in Docker date: 2014-10-24 +tags: + - release --- Instant Development Environments in Docker diff --git a/blog/farewell-email-heroku-2019-03-08.markdown b/blog/farewell-email-heroku-2019-03-08.markdown index ca2928f..b83373e 100644 --- a/blog/farewell-email-heroku-2019-03-08.markdown +++ b/blog/farewell-email-heroku-2019-03-08.markdown @@ -3,6 +3,9 @@ title: "Farewell Email - Heroku" date: 2019-03-08 for: Herokai subject: May our paths cross again +tags: + - personal + - heroku --- # Farewell Email - Heroku diff --git a/blog/fear-07-24-2018.markdown b/blog/fear-07-24-2018.markdown index fd315b4..960bccf 100644 --- a/blog/fear-07-24-2018.markdown +++ b/blog/fear-07-24-2018.markdown @@ -3,6 +3,7 @@ title: Fear date: 2018-07-24 thanks: CelestialBoon, no really this guy is amazing and doesn't get enough credit, I'm so grateful for him. for: Twilight Sparkle +series: stories --- # Fear diff --git a/blog/ffi-ing-golang-from-nim-for-fun-and-profit-2015-12-20.markdown b/blog/ffi-ing-golang-from-nim-for-fun-and-profit-2015-12-20.markdown index 0397ee2..c8753b7 100644 --- a/blog/ffi-ing-golang-from-nim-for-fun-and-profit-2015-12-20.markdown +++ b/blog/ffi-ing-golang-from-nim-for-fun-and-profit-2015-12-20.markdown @@ -1,6 +1,10 @@ --- title: FFI-ing Go from Nim for Fun and Profit date: 2015-12-20 +series: howto +tags: + - go + - nim --- FFI-ing Golang from Nim for Fun and Profit diff --git a/blog/formal-grammar-of-h-2019-05-19.markdown b/blog/formal-grammar-of-h-2019-05-19.markdown index 54a389a..23784a7 100644 --- a/blog/formal-grammar-of-h-2019-05-19.markdown +++ b/blog/formal-grammar-of-h-2019-05-19.markdown @@ -1,6 +1,7 @@ --- title: A Formal Grammar of h date: 2019-05-19 +series: conlangs --- # A Formal Grammar of `h` diff --git a/blog/getting-started-with-go-2015-01-28.markdown b/blog/getting-started-with-go-2015-01-28.markdown index fa22f79..5ae84f2 100644 --- a/blog/getting-started-with-go-2015-01-28.markdown +++ b/blog/getting-started-with-go-2015-01-28.markdown @@ -1,6 +1,7 @@ --- title: Getting Started with Go date: 2015-01-28 +series: howto --- Getting Started with Go diff --git a/blog/gratitude-07-20-2018.markdown b/blog/gratitude-07-20-2018.markdown index 1f53cdf..80fe63c 100644 --- a/blog/gratitude-07-20-2018.markdown +++ b/blog/gratitude-07-20-2018.markdown @@ -3,6 +3,7 @@ title: Gratitude date: 2018-07-20 thanks: CelestialBoon for: Mother Aya +series: magick --- # Gratitude diff --git a/blog/h-language-2019-06-30.markdown b/blog/h-language-2019-06-30.markdown index 5968783..916b664 100644 --- a/blog/h-language-2019-06-30.markdown +++ b/blog/h-language-2019-06-30.markdown @@ -1,6 +1,9 @@ --- title: The h Programming Language date: 2019-06-30 +tags: + - wasm + - release --- # The h Programming Language diff --git a/blog/how-does-into-meditation-2017-12-10.markdown b/blog/how-does-into-meditation-2017-12-10.markdown index 96a16ba..2ffc1d3 100644 --- a/blog/how-does-into-meditation-2017-12-10.markdown +++ b/blog/how-does-into-meditation-2017-12-10.markdown @@ -1,6 +1,7 @@ --- title: How does into Meditation date: 2017-12-10 +series: when-then-zen --- # How does into Meditation diff --git a/blog/how-send-email-nim-2019-08-28.markdown b/blog/how-send-email-nim-2019-08-28.markdown index c2e397f..6757447 100644 --- a/blog/how-send-email-nim-2019-08-28.markdown +++ b/blog/how-send-email-nim-2019-08-28.markdown @@ -1,6 +1,10 @@ --- title: How to Send Email with Nim date: 2019-08-28 +series: howto +tags: + - nim + - email --- # How to Send Email with Nim diff --git a/blog/howto-automate-discord-webhook-cron-2018-03-29.markdown b/blog/howto-automate-discord-webhook-cron-2018-03-29.markdown index e18fbb4..b34d325 100644 --- a/blog/howto-automate-discord-webhook-cron-2018-03-29.markdown +++ b/blog/howto-automate-discord-webhook-cron-2018-03-29.markdown @@ -1,6 +1,7 @@ --- title: How to Automate Discord Message Posting With Webhooks and Cron date: 2018-03-29 +series: howto --- # How to Automate Discord Message Posting With Webhooks and Cron diff --git a/blog/howto-usermode-linux-2019-07-07.markdown b/blog/howto-usermode-linux-2019-07-07.markdown index b8e9a12..2a59abd 100644 --- a/blog/howto-usermode-linux-2019-07-07.markdown +++ b/blog/howto-usermode-linux-2019-07-07.markdown @@ -1,6 +1,7 @@ --- title: How to Use User Mode Linux date: 2019-07-07 +series: howto --- # How to Use User Mode Linux diff --git a/blog/ipad-smart-keyboard-accents-2019-05-10.markdown b/blog/ipad-smart-keyboard-accents-2019-05-10.markdown index 262ca94..d487349 100644 --- a/blog/ipad-smart-keyboard-accents-2019-05-10.markdown +++ b/blog/ipad-smart-keyboard-accents-2019-05-10.markdown @@ -1,6 +1,7 @@ --- title: "iPad Smart Keyboard: French Accents/Ligatures" date: 2019-05-10 +series: howto --- # iPad Smart Keyboard: French Accents/Ligatures diff --git a/blog/land-1-syscalls-file-io-2018-06-18.markdown b/blog/land-1-syscalls-file-io-2018-06-18.markdown index b50b9a7..3190789 100644 --- a/blog/land-1-syscalls-file-io-2018-06-18.markdown +++ b/blog/land-1-syscalls-file-io-2018-06-18.markdown @@ -1,6 +1,9 @@ --- title: "Land 1: Syscalls & File I/O" date: 2018-06-18 +series: olin +tags: + - wasm --- # Land 1: Syscalls & File I/O diff --git a/blog/let-it-snow-2018-12-17.markdown b/blog/let-it-snow-2018-12-17.markdown index e7bce00..f8f86f5 100644 --- a/blog/let-it-snow-2018-12-17.markdown +++ b/blog/let-it-snow-2018-12-17.markdown @@ -2,6 +2,8 @@ title: Let it Snow date: 2018-12-17 for: the lols +tags: + - fluff --- # Let it Snow diff --git a/blog/life-update-2019-05-16.markdown b/blog/life-update-2019-05-16.markdown index 04e0318..b604395 100644 --- a/blog/life-update-2019-05-16.markdown +++ b/blog/life-update-2019-05-16.markdown @@ -2,6 +2,8 @@ title: "Life Update - Montréal" date: "2019-05-16" for: "Vic" +tags: + - personal --- # Life Update - Montréal @@ -40,4 +42,4 @@ Something of note is that this is the first time I've moved without having to ge Things are looking up for me. I'm really happy. My new job is great. The people I work with are great. I'm working towards French fluency (hopefully going to be writing blogposts in French by this time two years from now at most). Everything is looking up from here, and I'm so happy for it. -Can't wait to see what's next! \ No newline at end of file +Can't wait to see what's next! diff --git a/blog/lokahi-2018-02-08.markdown b/blog/lokahi-2018-02-08.markdown index d538f8c..c7c7c9e 100644 --- a/blog/lokahi-2018-02-08.markdown +++ b/blog/lokahi-2018-02-08.markdown @@ -2,6 +2,11 @@ title: Introducing Lokahi date: 2018-02-08 github_issue: https://github.com/Xe/lokahi/issues/15 +tags: + - hackweek + - release + - go + - monitoring --- # Introducing Lokahi diff --git a/blog/mr-beast-postmodern-gold-2019-06-05.markdown b/blog/mr-beast-postmodern-gold-2019-06-05.markdown index 086ca7f..5c20d8c 100644 --- a/blog/mr-beast-postmodern-gold-2019-06-05.markdown +++ b/blog/mr-beast-postmodern-gold-2019-06-05.markdown @@ -1,6 +1,10 @@ --- title: MrBeast is Postmodern Gold date: 2019-06-05 +tags: + - mrbeast + - postmodern + - youtube --- Author's note: I've been going through a lot lately. This Monday I was in the emergency room after having a panic attack. I have a folder of writing in my notes that I use to help work off steam. I don't know why, but writing this article really helped me feel better. I can only hope it helps make your day feel better too. diff --git a/blog/narrative-of-sickness-2018-08-13.markdown b/blog/narrative-of-sickness-2018-08-13.markdown index faa73b9..8faef4c 100644 --- a/blog/narrative-of-sickness-2018-08-13.markdown +++ b/blog/narrative-of-sickness-2018-08-13.markdown @@ -2,6 +2,7 @@ title: Narrative of Sickness date: 2018-08-13 for: awakening +series: magick --- # Narrative of Sickness diff --git a/blog/olin-1-why-09-1-2018.markdown b/blog/olin-1-why-09-1-2018.markdown index 0a7db8b..74da501 100644 --- a/blog/olin-1-why-09-1-2018.markdown +++ b/blog/olin-1-why-09-1-2018.markdown @@ -1,6 +1,7 @@ --- title: "Olin: 1: Why" date: 2018-09-01 +series: olin --- # [Olin][olin]: 1: Why diff --git a/blog/olin-2-the-future-09-5-2018.markdown b/blog/olin-2-the-future-09-5-2018.markdown index f0c00ae..9ba0e1d 100644 --- a/blog/olin-2-the-future-09-5-2018.markdown +++ b/blog/olin-2-the-future-09-5-2018.markdown @@ -1,6 +1,7 @@ --- title: "Olin: 2: The Future" date: 2018-09-05 +series: olin --- # [Olin](https://github.com/Xe/olin): 2: The Future diff --git a/blog/one-day-2018-11-01.markdown b/blog/one-day-2018-11-01.markdown index 9d1b04b..c5b1d55 100644 --- a/blog/one-day-2018-11-01.markdown +++ b/blog/one-day-2018-11-01.markdown @@ -2,6 +2,7 @@ title: "One Day" date: 2018-11-01 for: "Nicole" +series: stories --- # One Day @@ -24,4 +25,4 @@ It asked me "do that again", so I did. I did it more intensely than before someh Probably the most significant part though was being told "I love you". -I felt **loved**. I still do. I try to love others the way I am loved. \ No newline at end of file +I felt **loved**. I still do. I try to love others the way I am loved. diff --git a/blog/plt-1-the-beginning-2015-02-14.markdown b/blog/plt-1-the-beginning-2015-02-14.markdown index 6427a7e..2fae99f 100644 --- a/blog/plt-1-the-beginning-2015-02-14.markdown +++ b/blog/plt-1-the-beginning-2015-02-14.markdown @@ -1,6 +1,7 @@ --- title: The Saga of plt, Part 1 date: 2015-02-14 +series: plt --- The Saga of plt, Part 1 diff --git a/blog/plt-2-entering-the-cave-2015-02-14.markdown b/blog/plt-2-entering-the-cave-2015-02-14.markdown index de829a9..33aa54c 100644 --- a/blog/plt-2-entering-the-cave-2015-02-14.markdown +++ b/blog/plt-2-entering-the-cave-2015-02-14.markdown @@ -1,6 +1,7 @@ --- title: The Saga of plt, Part 2 date: 2015-02-14 +series: plt --- The Saga of plt, Part 2 diff --git a/blog/quinoa-taco-bowls-2019-08-16.markdown b/blog/quinoa-taco-bowls-2019-08-16.markdown index 930de7b..3586b0a 100644 --- a/blog/quinoa-taco-bowls-2019-08-16.markdown +++ b/blog/quinoa-taco-bowls-2019-08-16.markdown @@ -1,6 +1,7 @@ --- title: "Instant Pot Quinoa Taco Bowls" date: 2019-08-16 +series: recipes --- # Instant Pot Quinoa Taco Bowls diff --git a/blog/rss-feed-generation-2017-03-29.markdown b/blog/rss-feed-generation-2017-03-29.markdown index ec4d30a..39838f8 100644 --- a/blog/rss-feed-generation-2017-03-29.markdown +++ b/blog/rss-feed-generation-2017-03-29.markdown @@ -1,6 +1,9 @@ --- title: "RSS Feed Generation" date: "2017-03-29" +tags: + - rss + - atom --- RSS Feed Generation diff --git a/blog/site-to-site-wireguard-part-1-2019-04-02.markdown b/blog/site-to-site-wireguard-part-1-2019-04-02.markdown index 7fa5471..4dab752 100644 --- a/blog/site-to-site-wireguard-part-1-2019-04-02.markdown +++ b/blog/site-to-site-wireguard-part-1-2019-04-02.markdown @@ -1,6 +1,7 @@ --- title: "Site to Site WireGuard: Part 1 - Names and Numbers" date: "2019-04-02" +series: site-to-site-wireguard --- # Site to Site WireGuard: Part 1 - Names and Numbers diff --git a/blog/site-to-site-wireguard-part-2-2019-04-07.markdown b/blog/site-to-site-wireguard-part-2-2019-04-07.markdown index beeabfd..9ec9625 100644 --- a/blog/site-to-site-wireguard-part-2-2019-04-07.markdown +++ b/blog/site-to-site-wireguard-part-2-2019-04-07.markdown @@ -1,6 +1,7 @@ --- title: "Site to Site WireGuard: Part 2 - DNS" date: 2019-04-07 +series: site-to-site-wireguard --- # Site to Site WireGuard: Part 2 - DNS diff --git a/blog/site-to-site-wireguard-part-3-2019-04-11.markdown b/blog/site-to-site-wireguard-part-3-2019-04-11.markdown index ec37d8b..8345269 100644 --- a/blog/site-to-site-wireguard-part-3-2019-04-11.markdown +++ b/blog/site-to-site-wireguard-part-3-2019-04-11.markdown @@ -1,6 +1,7 @@ --- title: "Site to Site WireGuard: Part 3 - Custom TLS Certificate Authority" date: 2019-04-11 +series: site-to-site-wireguard --- # Site to Site WireGuard: Part 3 - Custom TLS Certificate Authority diff --git a/blog/sorting-time-2018-08-26.markdown b/blog/sorting-time-2018-08-26.markdown index 01dd24a..1800a34 100644 --- a/blog/sorting-time-2018-08-26.markdown +++ b/blog/sorting-time-2018-08-26.markdown @@ -1,6 +1,10 @@ --- title: Sorting Time date: 2018-08-26 +tags: + - time + - javascript + - tale-of-woe --- # Sorting Time diff --git a/blog/tarot-for-hackers-2019-07-24.markdown b/blog/tarot-for-hackers-2019-07-24.markdown index 0b32753..86501b6 100644 --- a/blog/tarot-for-hackers-2019-07-24.markdown +++ b/blog/tarot-for-hackers-2019-07-24.markdown @@ -1,6 +1,7 @@ --- title: Tarot for Hackers date: 2019-07-24 +series: magick --- # Tarot for Hackers diff --git a/blog/templeos-1-installation-and-basic-use-2019-05-20.markdown b/blog/templeos-1-installation-and-basic-use-2019-05-20.markdown index a878128..6645ec7 100644 --- a/blog/templeos-1-installation-and-basic-use-2019-05-20.markdown +++ b/blog/templeos-1-installation-and-basic-use-2019-05-20.markdown @@ -1,6 +1,7 @@ --- title: "TempleOS: 1 - Installation" date: 2019-05-20 +series: templeos --- # TempleOS: 1 - Installation diff --git a/blog/ten-thousand-laughs-2018-12-01.markdown b/blog/ten-thousand-laughs-2018-12-01.markdown index 3701ac4..10cd182 100644 --- a/blog/ten-thousand-laughs-2018-12-01.markdown +++ b/blog/ten-thousand-laughs-2018-12-01.markdown @@ -1,6 +1,7 @@ --- title: "Ten Thousand Laughs" date: "2018-12-01" +series: conlangs --- # Ten Thousand Laughs diff --git a/blog/the-cult-of-kubernetes-2019-09-07.markdown b/blog/the-cult-of-kubernetes-2019-09-07.markdown index b4d5df3..0e8f9cd 100644 --- a/blog/the-cult-of-kubernetes-2019-09-07.markdown +++ b/blog/the-cult-of-kubernetes-2019-09-07.markdown @@ -1,6 +1,11 @@ --- title: The Cult of Kubernetes date: 2019-09-07 +series: howto +tags: + - kubernetes + - digitalocean + - githubactions --- # The Cult of Kubernetes diff --git a/blog/the-service-is-already-down-2018-10-13.markdown b/blog/the-service-is-already-down-2018-10-13.markdown index 6a905df..6d36f18 100644 --- a/blog/the-service-is-already-down-2018-10-13.markdown +++ b/blog/the-service-is-already-down-2018-10-13.markdown @@ -1,6 +1,7 @@ --- title: The Service is Already Down date: 2018-10-13 +series: stories --- # The Service is Already Down diff --git a/blog/v-vaporware-2019-06-23.markdown b/blog/v-vaporware-2019-06-23.markdown index 183a225..7cc1dc0 100644 --- a/blog/v-vaporware-2019-06-23.markdown +++ b/blog/v-vaporware-2019-06-23.markdown @@ -1,6 +1,9 @@ --- title: V is for Vaporware date: 2019-06-23 +tags: + - v + - rant --- # V is for Vaporware diff --git a/blog/webassembly-talk-video-posted-2019-08-15.markdown b/blog/webassembly-talk-video-posted-2019-08-15.markdown index 9a25607..2acce16 100644 --- a/blog/webassembly-talk-video-posted-2019-08-15.markdown +++ b/blog/webassembly-talk-video-posted-2019-08-15.markdown @@ -1,6 +1,8 @@ --- title: WebAssembly Talk Video Posted date: 2019-08-15 +tags: + - wasm --- # WebAssembly Talk Video Posted diff --git a/cmd/site/html.go b/cmd/site/html.go index 33bdd0f..a1d5040 100644 --- a/cmd/site/html.go +++ b/cmd/site/html.go @@ -6,6 +6,7 @@ import ( "html/template" "net/http" "path/filepath" + "strings" "time" "christine.website/internal" @@ -69,6 +70,34 @@ var postView = promauto.NewCounterVec(prometheus.CounterOpts{ Help: "The number of views per post or talk", }, []string{"base"}) +func (s *Site) listSeries(w http.ResponseWriter, r *http.Request) { + s.renderTemplatePage("series.html", s.Series).ServeHTTP(w, r) +} + +func (s *Site) showSeries(w http.ResponseWriter, r *http.Request) { + if r.RequestURI == "/blog/series/" { + http.Redirect(w, r, "/blog/series", http.StatusSeeOther) + return + } + + series := filepath.Base(r.URL.Path) + var posts []blog.Post + + for _, p := range s.Posts { + if p.Series == series { + posts = append(posts, p) + } + } + + s.renderTemplatePage("serieslist.html", struct { + Name string + Posts []blog.Post + }{ + Name: series, + Posts: posts, + }).ServeHTTP(w, r) +} + func (s *Site) showTalk(w http.ResponseWriter, r *http.Request) { if r.RequestURI == "/talks/" { http.Redirect(w, r, "/talks", http.StatusSeeOther) @@ -136,17 +165,29 @@ func (s *Site) showPost(w http.ResponseWriter, r *http.Request) { return } + var tags string + + if len(p.Tags) != 0 { + for _, t := range p.Tags { + tags = tags + " #" + strings.ReplaceAll(t, "-", "") + } + } + const dateFormat = `2006-01-02` s.renderTemplatePage("blogpost.html", struct { Title string Link string BodyHTML template.HTML Date string + Series string + Tags string }{ Title: p.Title, Link: p.Link, BodyHTML: p.BodyHTML, Date: p.Date.Format(dateFormat), + Series: strings.ReplaceAll(p.Series, "-", ""), + Tags: tags, }).ServeHTTP(w, r) postView.With(prometheus.Labels{"base": filepath.Base(p.Link)}).Inc() } diff --git a/cmd/site/main.go b/cmd/site/main.go index 04d8bc4..391b56b 100644 --- a/cmd/site/main.go +++ b/cmd/site/main.go @@ -58,6 +58,7 @@ type Site struct { Posts blog.Posts Talks blog.Posts Resume template.HTML + Series []string rssFeed *feeds.Feed jsonFeed *jsonfeed.Feed @@ -81,7 +82,7 @@ func (s *Site) ServeHTTP(w http.ResponseWriter, r *http.Request) { middleware.RequestID(s.xffmw.Handler(ex.HTTPLog(s.mux))).ServeHTTP(w, r) } -var arbDate = time.Date(2019, time.May, 20, 18, 0, 0, 0, time.UTC) +var arbDate = time.Date(2019, time.September, 12, 0, 0, 0, 0, time.UTC) // Build creates a new Site instance or fails. func Build() (*Site, error) { @@ -147,6 +148,8 @@ func Build() (*Site, error) { return nil, err } s.Posts = posts + s.Series = posts.Series() + sort.Strings(s.Series) talks, err := blog.LoadPosts("./talks", "talks") if err != nil { @@ -210,6 +213,8 @@ func Build() (*Site, error) { s.mux.Handle("/blog.atom", middleware.Metrics("blog.atom", http.HandlerFunc(s.createAtom))) s.mux.Handle("/blog.json", middleware.Metrics("blog.json", http.HandlerFunc(s.createJSONFeed))) s.mux.Handle("/blog/", middleware.Metrics("blogpost", http.HandlerFunc(s.showPost))) + s.mux.Handle("/blog/series", http.HandlerFunc(s.listSeries)) + s.mux.Handle("/blog/series/", http.HandlerFunc(s.showSeries)) s.mux.Handle("/talks/", middleware.Metrics("talks", http.HandlerFunc(s.showTalk))) s.mux.Handle("/css/", http.FileServer(http.Dir("."))) s.mux.Handle("/static/", http.FileServer(http.Dir("."))) diff --git a/internal/blog/blog.go b/internal/blog/blog.go index eac5d64..7d4f93c 100644 --- a/internal/blog/blog.go +++ b/internal/blog/blog.go @@ -20,6 +20,8 @@ type Post struct { Summary string `json:"summary,omitifempty"` Body string `json:"-"` BodyHTML template.HTML `json:"body"` + Series string `json:"series"` + Tags []string `json:"tags"` SlidesLink string `json:"slides_link"` Date time.Time DateString string `json:"date"` @@ -28,6 +30,24 @@ type Post struct { // Posts implements sort.Interface for a slice of Post objects. type Posts []Post +func (p Posts) Series() []string { + names := map[string]struct{}{} + + for _, ps := range p { + if ps.Series != "" { + names[ps.Series] = struct{}{} + } + } + + var result []string + + for name := range names { + result = append(result, name) + } + + return result +} + func (p Posts) Len() int { return len(p) } func (p Posts) Less(i, j int) bool { iDate := p[i].Date @@ -42,6 +62,8 @@ func LoadPosts(path string, prepend string) (Posts, error) { type postFM struct { Title string Date string + Series string + Tags []string SlidesLink string `yaml:"slides_link"` } var result Posts @@ -91,6 +113,8 @@ func LoadPosts(path string, prepend string) (Posts, error) { Body: string(remaining), BodyHTML: template.HTML(output), SlidesLink: fm.SlidesLink, + Series: fm.Series, + Tags: fm.Tags, } result = append(result, p) diff --git a/templates/blogindex.html b/templates/blogindex.html index 3e8159a..917eb39 100644 --- a/templates/blogindex.html +++ b/templates/blogindex.html @@ -7,6 +7,8 @@

If you have a compatible reader, be sure to check out my RSS Feed for automatic updates. Also check out the JSONFeed.

+

For a breakdown by post series, see here.

+