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:

pub trait PostSerialize {
    /// Serialize this post into a valid Rust literal string.
    fn to_rust_literal(&self) -> String;

    /// Serialize a slice of posts into a Rust vec literal.
    fn serialize_list(posts: &[Self]) -> String
    where
        Self: Sized;

    /// Serialize a slice of posts into a Rust match arm map (for (lang, slug)
    /// lookup).
    fn serialize_map(posts: &[Self]) -> String
    where
        Self: Sized;
}

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

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