commit d245be320ac65cfcea12d9ccc3463203c904f57f
parent 003f8171f91cd9a8b25590e80b23f0d48af232df
Author: Luke Willis <lukejw@loquat.dev>
Date: Tue, 19 Aug 2025 21:02:01 -0400
Write new post about programming grug
Diffstat:
2 files changed, 55 insertions(+), 1 deletion(-)
diff --git a/grug.scm b/grug.scm
@@ -1,5 +1,6 @@
(use-modules (grug site)
(grug builders)
+ (grug publishers)
(srfi srfi-19))
(define (stylesheet name)
@@ -58,4 +59,9 @@
(copy-directory
"css")
(copy-directory
- "img")))
+ "img"))
+ #:publishers (list (rsync-publisher #:user "lukejw"
+ #:host "loquat.dev"
+ #:destination "/var/www/htdocs/www.loquat.dev/"
+ #:flags (cons "--rsync-path=openrsync"
+ %default-rsync-flags))))
diff --git a/posts/grug-publishing.md b/posts/grug-publishing.md
@@ -0,0 +1,48 @@
+`((title . "Writing a static site generator has made me thankful for programming") (date . "2025-08-19"));`
+I just hacked together a publishing mechanism for my static site generator,
+[grug](https://git.loquat.dev/grug). I hadn't actually modified the code for it
+in a while, so it took me a second to get back into the flow of writing Scheme.
+It's always a great experience, though! Now, building my site is as simple as
+running `grug build` and publishing it is as simple as running `grug publish`.
+
+I think some people think writing code is boring. It can be, but working on
+practical projects that you can actually use in your own life is a really
+awesome experience. It's taken me a few minutes to write this post, and because
+of my project, I can do all the processing with ease! It's a simple thing, but
+it's really given me that feeling of accomplishment. I imagine this is what my
+ancestors felt like when they built chairs and tables with their own hands.
+Although, this is much less difficult (I think so).
+
+This beats trying to remake quake for the millionth time by far, haha. I
+encourage whoever is reading this to try and make something that they can use.
+In my experience, I frequently get lost trying to make something that I think
+would be cool. I've always wanted to make a videogame, but it's not exactly
+something that you can practically use in your day-to-day life. I think this is
+part of the reason I love tinkering with my Linux setup. It has a direct
+correlation to my productivity. I can spend a while setting something up exactly
+how I want it, and now I can use it with ease.
+
+A simple example of this is shell aliases. It takes you a minute to get it set
+up, but now you can just write `yta` and paste a YouTube link in my terminal to
+automatically download the audio from that link and put it in the folder that
+correlates to its channel. You don't even need to browse YouTube anymore. You
+just have that audio now. I download podcasts all the time now using this. It's
+great.
+
+It takes time, yeah. But the ROI is good enough, in my opinion. I hope this
+makes sense to you. It does to me, haha.
+
+Grug still has a long way to go. The code is mostly crap and doesn't really
+handle errors. If you put in a command that doesn't exist, it will just dump a
+bunch of errors and give you an obscure warning message. I need to fix that.
+But, it works! It's a process. I never really got software development as a
+whole until I did this. So, moral of the story? Make projects that you can use.
+You'll (probably) have fun.
+
+More writing coming soon!
+
+In Christ,
+
+Luke
+
+