the stack of this website
RAE (Rust, Askama, Emacs)
Rust
I think this one is obvious. Everything that is possible to be done in Rust easilly is done in rust here xD. I made heavy use of it’s build.rs, and proc-macros for metaprogramming. Instead of shipping the website as executable + assets, I embedded all assets into the binary iteslf, favoring compile-time rendering when possible. One of the things that I did for that is implementhing the following trait:
using a derive proc-macro.
Emacs
I use org-mode for all of my blog-posts, and then, using build.rs I do the following pipeline
- Collect all .org files
- Collect metadata
- Convert to Markdown using Emacs (init.el)
- Process (add alt-text, header ids, find TOC, etc)
- Convert to HTML using
pulldown-cmark - Hightlight the HTML codeblocks using
syntect - Serialize the resulting
Vec<Post>back into Rust code(a vec, and a map), that is outputed to$OUT/baked.rs, so that there is no deserialization overhead at runtime. - Success!
The reason for using org-mode, instead of markdown on this website is mostly me just liking the format, inline code execution in blogposts (bcs i find that cool!), and the syntax being better than the inconsistent hell that markdown is. Also TBLFM which I have not used YET (but i use extensively in my unreleased world-building project Li 1 A. However, despite this, on the next iteration of the website (this one is the 3rd one btw) I plan to make my own markup format, inspired by org-mode, gemtext and others, and then call it VUX (Vava’s Ultraopionated teXt).
Askama
A wonderfully fast, and ergonomic to use templating library, that made this entire website possible (not to say that I couldn’t have done this using vy hehe). And I think that I’ll continue using Askama for my needs in projects that need templates, that aren’t locked to HTML.
Others
- vanilla css
- (n)vim. despite me liking emacs i still use nvim for editing the code
- SPECTR (my own design language, not public yet)