- [ ] minify js and css when copying over instead of just copying - CSS - https://github.com/wereHamster/haskell-css-syntax - JS - Doing our own tokenizer lol - [ ] swap from using `draft` to using `date` for determing draft status, lack of date = draft - [ ] setup fingerprinting in file names for css and js - setup lambdas via: https://hackage-content.haskell.org/package/mustache-2.4.3.1/docs/Text-Mustache.html#v:overText - This may require a refactor of how we handle templates to use `object` instead of just using aeson integration from the mustache crate - [ ] process source code blocks to syntax highlight them - tree sitter https://hackage.haskell.org/package/tree-sitter - Alternatively do the Rust <-> Haskell binding myself - https://www.well-typed.com/blog/2023/03/purgatory/ - https://willmcpherson2.substack.com/p/calling-rust-from-haskell - https://github.com/BeFunctional/haskell-foreign-rust - https://github.com/BeFunctional/haskell-rust-ffi - Borsh - https://crates.io/crates/tree-sitter-highlight - Or potentially https://docs.rs/arborium/latest/arborium/ - Alternatively consider skylighting https://hackage.haskell.org/package/skylighting - [ ] dev server setup (with live reloading) - https://hackage-content.haskell.org/package/warp-3.4.10 - https://hackage.haskell.org/package/file-embed - https://hackage.haskell.org/package/fsnotify - [ ] Make a function which takes IR and spits out some kind of table of contents - [ ] Add rst or org support and convert markdown handling to custom parser instead of pandoc - [ ] Add in functionality for footnotes - [ ] see if performance can be improved, it shouldn't be necessary but if I'm looking at doing something for this and everything above this got checked off then this is a sensible next thing