# This file defines various fragments of the blog, such as the header
# and footer, as functions that receive arguments to be templated into
# them.
#
# An entire post is rendered by `renderPost`, which assembles the
# fragments together in a runCommand execution.
#
# The post overview is rendered by 'postList'.
{ pkgs, lib, ... }:
let
inherit (builtins) filter map hasAttr replaceStrings toFile;
inherit (pkgs.third_party) runCommandNoCC writeText;
escape = replaceStrings [ "<" ">" "&" "'" ] [ "<" ">" "&" "'" ];
header = title: ''