💾 Archived View for breadpunk.club › ~bagel › Site_Generator.gmi captured on 2020-10-31 at 00:43:49. Gemini links have been rewritten to link to archived content
View Raw
More Information
-=-=-=-=-=-=-
Site Generator
This site is generated for both the web and gemini from a vimwiki using some scripts. They're written using babashka and bootleg, so you will need both of those to use them. These scripts are very specific to my site, although you are free to take whatever you want from them for your own. Download them from here.
gemini
Download them from here
Why Not [hugo/zola/jekyll/whatever other tool]?
I ran this site on a variety of those tools (first jekyll, then lb, then hugo, then zola) in the past. The main problem I had with all of them was that I would reach a point with all of them where this happened:
- I had a problem, or wanted to do [x].
- I looked up how to do [x] with [tool], and it was complicated.
- Something about how [tool] handled [x] seriously bugged me, and I couldn't fix it.
After switching between a few different tools I realised that I was coming across the exact same problems with all of them just at different times, so I decided to build my own.
Why these weird clojure tools and not [C/Rust/Haskell/Python/any other language]?
Because I already know clojure's web stuff fairly well, and it's a language that I can hack with quickly. The site generator isn't a robust tool, it's a hack I made for doing one thing. Also, hiccup is great.
Goals
- **Understandability**: I want to be able to understand every line of the program.
- **Simplicity**: No features I don't need, all the features I do need.
- **Immediate Editing**: An editing environment that is immediate. This is why I use a vimwiki as input. It allows me to edit in a way that I like.
- **Flexibility**: I want to be able to change anything about anything if I want.
- **Learning Exercise**: An opportunity to learn is always a good thing!
- **Modern Web (where it makes sense)**: This site is built with semantic HTML5 and some other modern features.
- **Avoid JS**: Some things (such as comments) obviously require JS. Everything that can be done without JS is done without it.
- **Gemini Support**: Gemini is awesome, let's use it!