💾 Archived View for gemini.hitchhiker-linux.org › gemlog › zond_updates_02-2024.gmi captured on 2024-03-21 at 14:50:34. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Zond is my SSG for Gemini, and is used to build this capsule. It's been reliable for me for a few years now, but there are always some tweaks to be made. I'll be doing a new release in the not so distant future. There won't be a lot of changes, but some of them are nice little fixes to various small papercuts that have been there for a while.
Zond is written in Rust, and it leverages some Cargo magic to optionally build a `bootstrap` binary while it's building the main binary. This `bootstrap` will install the program, compile shell completions, translations and Unix man pages and install all of that into a prefix of your choosing, making packaging a breeze. However, there were some incorrect semantics in my Cargo.toml file which led to certain dependencies which are only used by the bootstrap binary always being compiled, even when you had this feature disabled. It didn't affect the size of the final binary but it did slow down compile times. This is fixed, and I took the opportunity to bring all of the other deps up to date as well.
Another small fix makes sure that there is a line break at the end of tinylog posts, which in turn makes sure that they have a blank line between them. This one was definitely annoying and it's now fixed.
One more little fix will go in before I do a release. When doing a tinylog draft, Zond creates a temporary file in /tmp with a random string. The random string is currently generated with the `tinyrand` crate. This crate is much smaller than the `rand` crate and has fewer dependencies, but I've created the `osrand` crate which gets it's entropy from the OS and has no dependencies at all. It might not be as fast, but for such light usage you will never notice the difference and it's going to cut down the dependency graph nicely.
My own capsule is built using Zond wrapped with a Makefile which calls Zond to build the site, uploads it using rsync and commits the changes using Git. Eventually I want to do away with the Makefile entirely, which means Zond will have to speak both SSH and Git. Both are possible - I just haven't done the work yet.
All content for this site is licensed as CC BY-SA.
© 2024 by JeanG3nie