From 4803c2d68ef9880968a944c863bacf5e0b7303cf Mon Sep 17 00:00:00 2001 From: Youwen Wu Date: Sat, 2 Nov 2024 03:10:02 -0700 Subject: [PATCH] feat: rebrand to conditional finality --- README.md | 2 +- flake.nix | 2 +- src/images/conditional-finality.png | Bin 0 -> 43791 bytes src/images/gradient-ascent.jpg | Bin 19016 -> 0 bytes src/posts/2024-05-25-haskell-blog.md | 21 ++++++--------------- src/templates/default.html | 4 ++-- ssg/src/Main.hs | 4 ++-- 7 files changed, 12 insertions(+), 21 deletions(-) create mode 100644 src/images/conditional-finality.png delete mode 100644 src/images/gradient-ascent.jpg diff --git a/README.md b/README.md index 0ca8f30..b68ecbc 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# gradient ascent - yet another developer blog +# conditional finality - yet another developer blog This repository hosts the source code for my blog, written in Haskell and powered by [hakyll](https://jaspervdj.be/hakyll/) and diff --git a/flake.nix b/flake.nix index 4413dd2..1876ce4 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "gradient ascent"; + description = "conditional finality"; nixConfig = { allow-import-from-derivation = "true"; diff --git a/src/images/conditional-finality.png b/src/images/conditional-finality.png new file mode 100644 index 0000000000000000000000000000000000000000..6673b5865f1738cb34f5b3e8e03353748189ed09 GIT binary patch literal 43791 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 literal 0 HcmV?d00001 diff --git a/src/images/gradient-ascent.jpg b/src/images/gradient-ascent.jpg deleted file mode 100644 index b52db7f1f9bae95554ab64f6ca905afaf5e82e94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19016 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 F{{t{R3xogw diff --git a/src/posts/2024-05-25-haskell-blog.md b/src/posts/2024-05-25-haskell-blog.md index 727a76b..1a7dc2f 100644 --- a/src/posts/2024-05-25-haskell-blog.md +++ b/src/posts/2024-05-25-haskell-blog.md @@ -2,25 +2,21 @@ author: "Youwen Wu" authorTwitter: "@youwen" desc: "a purely functional...blog?" -image: "./images/gradient-ascent.jpg" +image: "./images/conditional-finality.png" keywords: "haskell, blog, functional programming" lang: "en" -title: "why I made my blog in haskell" +title: "a haskellian blog" updated: "2024-05-25T12:00:00Z" --- -Welcome! This is the first post on _gradient ascent_ and also one that tests all +Welcome! This is the first post on _conditional finality_ and also one that tests all of the features. gradient ascent -I'll be writing about computers, code, math, video games, and whatever else -here. - > A monad is just a monoid in the category of endofunctors, what's the problem? ## haskell? @@ -59,11 +55,6 @@ The code highlighting is also generated by hakyll. Haskell is a purely functional language with no mutable state. Its syntax actually makes it pretty elegant for declaring routes and "rendering" pipelines. -I originally wanted to build this entire blog myself. I had a working version -with the Svelte framework, complete with GFM rendering, table of contents, KaTeX -math, code highlighting, static generation, and other goodies. However, it -seemed like a little too much work to maintain. I switched to hakyll because - 1. Haskell is cool. 2. It comes with enough features that I don't feel like I have to build everything from scratch. @@ -77,7 +68,7 @@ seemed like a little too much work to maintain. I switched to hakyll because ### speaking of math We can have math inline, like so: -$\int_\infty^\infty \, e^{-x^2}\,dx = \sqrt{\pi}$. This site ships semantic +$\int_\infty^{-\infty} \, e^{-x^2}\,dx = \sqrt{\pi}$. This site ships semantic MathML math with its HTML, and the MathJax script to the client. It'd be nice if MathML could just be used and supported across all browsers, but diff --git a/src/templates/default.html b/src/templates/default.html index 7df6d20..45f53ad 100644 --- a/src/templates/default.html +++ b/src/templates/default.html @@ -1,7 +1,7 @@ - $title$ | gradient ascent + $title$ | conditional finality @@ -116,7 +116,7 @@ Gradient Ascent.Conditional Finality.