From 9938c0ee873a57325c745604c44ecd93490bdcc8 Mon Sep 17 00:00:00 2001
From: prescientmoon <git@moonythm.dev>
Date: Tue, 4 Mar 2025 18:05:30 +0100
Subject: [PATCH] Start working on angelfold february report

---
 .../echoes/angelfold-2025-february/index.dj   | 143 ++++++++++++++++++
 .../angelfold-2025-february/tokei-output.png  | Bin 0 -> 50863 bytes
 content/echoes/angelfold.dj                   |  19 +++
 content/echoes/arcaea-pookies/index.dj        |   6 +-
 content/echoes/arcaea.dj                      |   1 +
 content/echoes/games/index.dj                 |   5 +
 content/echoes/yugioh-my-beloved.dj           |  12 --
 src/html.rs                                   |  42 ++++-
 8 files changed, 208 insertions(+), 20 deletions(-)
 create mode 100644 content/echoes/angelfold-2025-february/index.dj
 create mode 100644 content/echoes/angelfold-2025-february/tokei-output.png
 create mode 100644 content/echoes/angelfold.dj
 delete mode 100644 content/echoes/yugioh-my-beloved.dj

diff --git a/content/echoes/angelfold-2025-february/index.dj b/content/echoes/angelfold-2025-february/index.dj
new file mode 100644
index 0000000..4b91444
--- /dev/null
+++ b/content/echoes/angelfold-2025-february/index.dj
@@ -0,0 +1,143 @@
+{ role=config }
+``` =toml
+```
+
+{ role=description }
+:::
+Rewriting a game from Rust to Odin, smooth screen transitions, plenty of UI rewrites, and planting the seeds of procedural animation.
+:::
+
+# Angelfold progress report — February '25
+
+Angelfold is a non-euclidean action/puzzle platformer I've been working on in my free time. For more details, check out the [main post][angelfold] about the game. I had been working on the game on and off for months, although a lot of it was (and still is!) exploratory work, or simply pondering the implications of the games' rules (ala [this talk][Jon Blow — truth in game design]).
+
+[angelfold]: /echoes/angelfold
+[Jon Blow — truth in game design]: https://www.youtube.com/watch?v=C5FUtrmO7gI
+
+::: toc
+:::
+
+## The Rust → Odin rewrite
+
+Most of my time last month has been taken by an effort to rewrite everything I had from Rust to Odin. While the number of lines of code is not a great metric for anything, this picture should give you an idea of the relative scale of the rewrite:
+
+{ src="tokei-output.png" alt="7413 lines of rust code (out of which 5959 are actual code), split across 36 files" }
+::: image-figure
+Summary of the lines of count I had as part of the Rust version of Angelfold. Generated using [tokei][].
+
+[tokei]: https://github.com/XAMPPRocky/tokei
+:::
+
+### Why???
+
+The main reason I went ahead with the rewrite is Rust's terrible compilation speeds, and the ecosystem's blunders when it comes to hot code reloading. When looking for advice on how to improve said compilation speeds, I came across two different styles of posts.
+
+For exhibit A, we have discussions like [this one][rust forum compilation speed discussion], where the general consensus is that compilation speeds are either not an issue in the first place, that they shouldn't matter (as the only important bit is the speed at which [RLS][rust-language-server] (in modern terms, [rust analyzer][]) or [cargo check][] produce their output), or that (and this is a [quote][perhaps we should practice the discipline of the mathematician]) "perhaps we should all practice more of the discipline of the mathematician and practice less of the "hack it and see" style of the JavaScript programmer". In particular, the sentiment of spending hours without compiling the code and relying on compilation errors to guide correctness is something I've seen echoed all over Reddit and similar platforms.
+
+Truth be told, I do think there's some truth to that! I am studying mathematics at uni, and there is a given discipline one forms when formalizing proofs (although that's not to say said discipline is perfect — that's why we have TAs checking students' proofs, or peer review for academic papers). Having a functional programming background, a side of me is sympathetic to the whole type driven development / "make impossible states unrepresentable" style of coding. At the same time, the truth is that a lot of coding just _isn't like that_.
+
+For instance, tweaking gameplay-related values / logic is something that requires countless modifications to the code. A 2x speedup in compilation speeds might sound insignificant, but it makes the process so much nicer! The rust ecosystem does provide a way to tweak inline values via the [inline_tweak][] crate, although that does require the foresight of including the macro in the code in the first place. Still, I just wanted to be able to modify behaviour code and be able to test the results instantly — something Rust fought really hard to prevent me from doing.
+
+[rust forum compilation speed discussion]: https://users.rust-lang.org/t/why-is-compilation-time-such-a-big-deal-for-you/41063/
+[rust-language-server]: https://github.com/rust-lang/rls
+[rust analyzer]: https://rust-analyzer.github.io/
+[cargo check]: https://doc.rust-lang.org/cargo/commands/cargo-check.html
+[perhaps we should practice the discipline of the mathematician]: https://users.rust-lang.org/t/why-is-compilation-time-such-a-big-deal-for-you/41063/18
+[inline_tweak]: https://docs.rs/inline_tweak/latest/inline_tweak/
+
+The second kind of posts I found were those giving concrete tips on improving compilation speeds (here's a good [example][tips for faster rust compile times]). I followed as many tips as I could from articles of the like. I removed big dependencies like [`serde`][serde] in favour of smaller alternatives like [`nanoserde`][nanoserde], I moved to compiling using [`cranelift`][cranelift], I switched my linker to [`mold`][mold], removed lots of uses of procedural macros (in my own code, at least), enabled experimental parallel compilation, played with different optimization levels for dependencies/dependencies that include procedural macros, and more. If a tip is missing from this list, it's likely because I forgot to include it, not because I haven't tried it. In the end, I ended up with compilation speed of around `3s`. For context, I'm coding on a laptop with an `Intel i7-8565U` and 8GB of RAM — a bit dated, but it is what it is.
+
+[tips for faster rust compile times]: https://corrode.dev/blog/tips-for-faster-rust-compile-times/
+[serde]: https://serde.rs/
+[nanoserde]: https://github.com/not-fl3/nanoserde
+[cranelift]: https://cranelift.dev/
+[mold]: https://github.com/rui314/mold
+
+### Rust hates hot code reloading
+
+Ok, the title might be a bit of a hyperbole, but hear me out. Even if compilation speeds were instant, having to recreate the same conditions to try something out after each tweak would be horrible. Hot code reloading allows swapping out most of the codebase for a newer version without throwing away the state. In Rust land, this is usually accomplished by compiling most of the codebase as a dynamic library, and having the static entrypoint swap it out between frames when changes are detected. An out of the box solution is provided by the [`hot_lib_reloader`][hot_lib_reloader] crate.
+
+[hot_lib_reloader]: https://docs.rs/hot-lib-reloader/latest/hot_lib_reloader/
+
+While the aforementioned crate works nicely in isolation, a lot of the ecosystem is... just not built with that in mind. The rust version of my codebase was using [`macroquad`][macroquad] for rendering (I'm planning to write my own once more of the gameplay is actually there), but macroquad holds internal state that simply goes away when swapping out the dynamic lib, oops! Were I using [`raylib`][raylib], I could simply enable the compilation flag that turns raylib into a dynamic library and have everything working (of course, all the changes I'm talking about here would be disabled in release mode)! Turning macroquad into a dynamic library is a very difficult task I'll talk about a bit later. The recommended solution (for example, the one described in the "If necessary, create indirections" section of [this article][hot reloading rust]) seems to be creating a layer of indirection, where the dynamic section of the codebase defines a `Renderer` trait, and then accepts a `Box<dyn Renderer>` from the static entrypoint in order to do all the rendering through. This way, all calls to the renderer are technically made by the static entrypoint, thus `macroquad` doesn't have to be reloaded each time.
+
+:::: figure
+``` rust
+pub trait Renderer {
+  fn alloc(&self) -> &bumpalo::Bump;
+  ...
+
+  fn is_key_down(&self, key: KeyCode) -> bool;
+  fn mouse_position(&self) -> Vec2;
+  ...
+
+  fn camera_stack(&self) -> &CameraStack;
+  fn push_camera(&mut self, transform: Affine2);
+  ...
+
+  fn clear_background(&mut self, color: Color);
+  fn draw_circle(&mut self, center: Vec2, r: f32, color: Color);
+  ...
+
+  fn screen_dimensions(&self) -> Vec2;
+  fn set_cursor(&mut self, cursor: CursorIcon);
+  ...
+}
+```
+::: caption
+Example `Renderer` trait for creating indirection when calling `macroquad`.
+:::
+::::
+
+[macroquad]: https://macroquad.rs/
+[raylib]: https://www.raylib.com/
+[hot reloading rust]: https://robert.kra.hn/posts/hot-reloading-rust/
+
+Notice the [`bumpalo`][bumpalo] usage in the code block above? `Bumpalo` is a crate that provides an arena allocator implementation. An arena allocator can be thought of as a preallocated block of memory, where allocations always happen by moving a pointer that tracks the amount of memory used so far forwards. At any point, we can trivially clear out the entire arena by simply moving the pointer back to the beginning of the region. This is super useful in games, where lots of state exists until the end of the current frame only. Moreover, bumping a pointer is much more efficient than asking the OS for more memory each time, while also simplifying memory management for the programmer (at least in theory — more on this later).
+
+[bumpalo]: https://docs.rs/bumpalo/latest/bumpalo/
+
+But guess what, it turns out `bumpalo` uses a static `EMPTY_CHUNK` pointer which it compares things to on cleanup, which means bad free errors start occurring the moment you try hot reloading it. I asked around in the official rust discord server, and people told me that is the intended behaviour, thus I didn't bother opening an issue (maybe I should've? Maybe the people in the discord were wrong?), and simply forked away the repo and fixed the issue myself. Having to fork libraries is a bit of a common theme with this project (I also had to fork `macroquad` for various issues, but those are less fundamental and thus beside the point).
+
+While [`egui`][egui] is one of the prototypical [examples][egui hot-reloading example] for hot-reloading, I couldn't for the life of me get [`egui-miniquad`][egui-miniquad] to hot reload without errors, and thus gave up on trying to use it for UI.
+
+[egui]: https://github.com/emilk/egui
+[egui hot-reloading example]: https://github.com/rksm/hot-lib-reloader-rs/tree/master/examples/hot-egui
+[egui-miniquad]: https://github.com/not-fl3/egui-miniquad
+
+The obvious solution to all these issues is to try loading the various problematic libraries dynamically. Heck, the [aforementioned article][tips for faster rust compile times] even recommends doing it to improve compile times! Oh, sweet summer child... If only it was this easy. First of all, in rust land, the consumer of a library cannot decide to simply force the library into being dynamic — the library has to declare that by itself inside `Cargo.toml`. Thankfully, a tool exists to automate the creation of dynamic wrapper libraries around crates — see [this article][speeding up incremental rust compilation with dylibs] for details. In reality, I couldn't get that to work for any of my important dependencies.
+
+The article does mention the [diamond dependency][] problem as a limitation of the tool, and for good reason — it is one hell of a limitation. The rust compiler does not allow a static library to be included more than once in the resulting artifacts, i.e. a dependency cannot be statically included both inside the main entrypoint _and_ inside one of its dynamically linked dependencies. This is... problematic to say the least. The rust ecosystem is filled with tiny NPM-style common dependencies that appear many levels down the dependency tree. The article recommends either forking all the libraries involved and making them point to a dynamic version of the common dependencies, or trying to PR the upstream library into enabling dynamic linking as a possibility for their library. Either of them is unfeasible when the issue occurs for a dozen of libraries, all many layers deep inside the dependency tree (that is, I would have to fork dozens of intermediate libraries, which is just not feasible...).
+
+[speeding up incremental rust compilation with dylibs]: https://robert.kra.hn/posts/2022-09-09-speeding-up-incremental-rust-compilation-with-dylibs/
+[diamond dependency]: https://robert.kra.hn/posts/2022-09-09-speeding-up-incremental-rust-compilation-with-dylibs/#limitation-the-diamond-dependency-problem
+
+If you do want to try hot reloading in rust, beware of the many footguns. For instance, my main binary depends on `macroquad`, while the dynamic library depends on [`glam`][glam] (a cool linear algebra library that `macroquad` depends on as well). "Everything sounds fine so far", I sense you thinking — WRONG. This will lead to horrible memory corruption and break all your rendering code. Why? Because `macroquad` disables the SIMD support in `glam` (in order to perform one less conversion when giving the data to the GPU, I've heard?), which in turn makes `glam` use a different memory layout for its vectors (since the memory alignment required for SIMD operations is no longer there). But guess what — since the dynamic library component of the codebase does not depend on `macroquad`, and SIMD is enabled by default in `glam`, the Rust compiler will simply compile `glam` with said feature flag active when compiling the dynamic library by itself (which is obviously something you'll be doing a lot of when hot code reloading), thus causing the two sides of the abyss that is dynamic linking to use different memory layouts...
+
+[glam]: https://docs.rs/glam/latest/glam/
+
+### You might not need the safety rust guarantees
+
+Rust's safety guarantees are super nice, but over the course of the last month, I've kind of came to terms with the fact that... I don't really need them — not for this project at least. I'm sure memory management becomes a real problem in non-tiny teams, but it feels trivial when working on a project by myself. I haven't encountered a single use-after-free error throughout my time with Odin. Although I've used Rust for many projects before starting this game, and I feel like I've very much internalised the way Rust treats lifetimes, I still have moments when I'm refactoring and Rust starts yelling at me for doing things the wrong way, only for me to have to spend way too long thinking about the best way to make the compiler happy. Now, "that's a good thing — it means the compiler is preventing potential errors", I hear you say. I'm sure there's cases when this is the case, but for this game, that just hasn't been true. Heck, my experience refactoring Odin code has proven that memory management bugs are like... not that hard to avoid when working on a project by yourself.
+
+The usual counter-argument to what I'm describing is that future-me is almost a different person than present-me, and that things will become a lot more dangerous when I'm revisiting pieces of code a few months into the future. I guess we'll have to revisit the issue in a few months, although I feel like the set of practices I've picked up along my Odin journey should help alleviate that a little, oh well...
+
+The other counter-argument I heard brought up is that unsafe-rust is much safer than the language's alternatives, and that I can always just throw `unsafe` at the issue. I disagree. Unsafe rust is incredible unergonomic to work with. I have considered just always using `*mut` instead of `&mut` throughout my codebase, but things as simple as accessing a struct's property are not possible with `*mut` without casting into a `&mut` first, which is just incredibly verbose.
+
+The other extreme I've heard people recommend is always wrapping things in `Arc<Mutex<_>>` or whatnot and calling it a day. While this does solve the issue to some extent, it's also incredibly unergonomic to work with, while also impacting (to a very very small extent) performance for no reason.
+
+There's also patterns you just... cannot express (nicely) in Rust. For instance, I cannot have a struct which stores a custom allocator together with two vectors allocated with said allocator. Ok, it _is_ possible by instead storing a reference to said allocator, and taking in a lifetime parameter and... let's stop for a second. This is all incredibly annoying to do, and trivial in Odin. That's not to mention how the [`allocator_api`][allocator_api] seems to have [stalled][allocator_api has stalled] long ago (which is fine by the way — this is a volunteer run project), while custom allocators are integrated into the language out of the box in Odin.
+
+[allocator_api]: https://doc.rust-lang.org/beta/unstable-book/library-features/allocator-api.html
+[allocator_api has stalled]: https://www.reddit.com/r/rust/comments/18yhmij/comment/kgb3jbt/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
+
+### Why Odin
+
+## Undo/redo
+
+## The many UI rewrites
+
+## Smooth screen transitions
+
+## The entity system
+## Further work — the seeds of procedural animation
diff --git a/content/echoes/angelfold-2025-february/tokei-output.png b/content/echoes/angelfold-2025-february/tokei-output.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3796de863c57c7ece294b1b0410bb596969cbdb
GIT binary patch
literal 50863
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
KWQ%29zWG1T{kIVS

literal 0
HcmV?d00001

diff --git a/content/echoes/angelfold.dj b/content/echoes/angelfold.dj
new file mode 100644
index 0000000..976422e
--- /dev/null
+++ b/content/echoes/angelfold.dj
@@ -0,0 +1,19 @@
+{ role=config }
+``` =toml
+created_at = "2025-03-04T11:46:53+01:00"
+```
+
+{ role=description }
+:::
+Angelfold is a non-euclidean action/puzzle platformer I'm working on in my free time.
+:::
+
+# Angelfold
+
+Angelfold is a non-euclidean action/puzzle platformer I'm working on in my free time (read: god knows if this will ever get finished lol). This page is still under construction (I need to add more details and whatnot).
+
+## Progress reports
+
+I try to write articles going over the challenges and victories I encounter each month. Here you can find a complete list!
+
+- [February '05](/echoes/angelfold-2025-february/)
diff --git a/content/echoes/arcaea-pookies/index.dj b/content/echoes/arcaea-pookies/index.dj
index d672aef..e6c1d05 100644
--- a/content/echoes/arcaea-pookies/index.dj
+++ b/content/echoes/arcaea-pookies/index.dj
@@ -22,21 +22,21 @@ Our server features a bunch of tweaks to the base game:
 - _Hikari & Tairitsu (reunion)_ now defaults to dark mode (namely, the _Arcana Eden_ background) on charts without a predefined inverse (i.e. you can finally play _Fracture Ray_ in dark mode!). The only known chart where this doesn't work well is _Ether Strike_, where the field doesn't change colors for some bizarre reason.
 
   { src="darkswansong.png" alt="Swan song played in dark mode" }
-  ::: figure
+  ::: image-figure
   _Swan song_ being played in dark mode.
   :::
 
 - When awakened, _Hikari & Tairitsu_'s world mode stats will be greatly improved. So is the case for _Lagrange (aria)_. Note that _Lagrange (aria)_ does not have an awakening in the base game, which means she'll be invisible when initially awakened (because of the lack of art). Use the button with two arrows as the icon to swap back to the original art. Together, these two partners can be used to blaze through any world-mode section no matter the preferred theme (i.e. light/dark) of play. We considered unlocking everything right away, but some people preferred to still have the ability to grind / experience the story as intended.
 
   { src="oplagrange.png" alt="Awakened Lagrange (aria) with her incredibly OP stats" }
-  ::: figure
+  ::: image-figure
   WYS- _gets shot_
   :::
 
 - PTT is computed as `B30 + B10`, hence it can never go down. For many long-term Arcaea players, this is a dream come true. This does mean your PTT will likely be slightly higher than in the base game, as the lack of a recency element removes the variance. As an upside, this does mean you can now play silly stuff without the constant fear of losing PTT. This also makes the server a perfect way to practice hard stuff, or to let someone new to try the game without starting to worry the instant you realise you forgot to turn on airplane mode.
 
   { src="insanepttgain.png" alt="A screenshot of a single play gaining an insane amount of PTT, implying the account is still new" }
-  ::: figure
+  ::: image-figure
   Remember how easy gaining PTT was on a new account...
   :::
 
diff --git a/content/echoes/arcaea.dj b/content/echoes/arcaea.dj
index e3a0f11..1e7575d 100644
--- a/content/echoes/arcaea.dj
+++ b/content/echoes/arcaea.dj
@@ -1,5 +1,6 @@
 { role=config }
 ``` =toml
+hidden = true
 ```
 
 { role=description }
diff --git a/content/echoes/games/index.dj b/content/echoes/games/index.dj
index 3e147d4..10c80d1 100644
--- a/content/echoes/games/index.dj
+++ b/content/echoes/games/index.dj
@@ -1,3 +1,8 @@
+{ role=config }
+``` =toml
+hidden = true
+```
+
 { role=description }
 :::
 A subjective tier-list style ranking of the games I've played, together with extensive reasoning regarding my choices.
diff --git a/content/echoes/yugioh-my-beloved.dj b/content/echoes/yugioh-my-beloved.dj
deleted file mode 100644
index cf273b1..0000000
--- a/content/echoes/yugioh-my-beloved.dj
+++ /dev/null
@@ -1,12 +0,0 @@
-# Why I love Yu-Gi-Oh!
-
-Lorem ipsum odor amet, consectetuer adipiscing elit. Per lacus at sociosqu curae varius nunc; magnis elit. Dictum dis tristique semper velit montes eleifend suscipit taciti. Himenaeos nunc morbi litora mi at molestie porttitor non sit. Convallis cursus ante tincidunt suspendisse class lobortis. Sodales fusce congue aliquet; eros lectus enim ullamcorper. Aptent fames laoreet odio pretium fermentum pharetra nisl fames sem.
-
-Phasellus hendrerit eleifend nibh cubilia accumsan bibendum donec. Etiam torquent consequat hendrerit rhoncus fringilla elit sociosqu habitasse. Sagittis interdum magna bibendum consectetur ante. Vivamus non ligula fusce parturient mattis vulputate potenti. Eleifend aenean imperdiet augue, velit cras ornare nam. Sociosqu malesuada potenti mattis primis sapien condimentum tempus. Magnis pellentesque gravida conubia mattis adipiscing dis pretium facilisi orci. Et interdum sodales curae porta facilisis; vehicula curae euismod. Cubilia diam sociosqu neque aliquam, elementum ullamcorper per iaculis. Ut conubia duis maximus hac urna amet euismod.
-
-Quisque rhoncus vitae scelerisque nostra sit eros est congue conubia. Ligula fusce vehicula rhoncus hac vel lacinia nisi porttitor. Gravida nisl neque rutrum efficitur sed leo ligula adipiscing. Eget et habitasse semper cursus, dictumst ex dis. Erat habitasse natoque adipiscing nulla lectus metus neque. Dolor vehicula consectetur aliquam quam sem cubilia purus elit. Himenaeos mauris vulputate facilisis at maecenas lacinia arcu nisl. Eu euismod ac metus suscipit ante. Interdum vitae per pellentesque rutrum finibus nisi feugiat. Duis dapibus amet condimentum; platea vestibulum laoreet.
-
-Eu facilisi in risus nulla posuere ultrices curabitur. Pharetra curae euismod dapibus venenatis lectus netus metus. Conubia conubia arcu dui, tempus quis mattis. Inceptos magna pretium consequat eleifend condimentum nibh. Neque lacinia suscipit dapibus nunc consequat. Rutrum leo senectus purus primis donec ornare faucibus sem. Maximus vitae inceptos ligula; luctus fusce eu.
-
-Ex metus dis est nisl; elementum fames cursus ligula platea. Quis porta enim conubia fermentum suspendisse a. Conubia eros fermentum vestibulum ultrices cubilia vestibulum. Himenaeos himenaeos conubia nunc curae netus nibh ante? Dui ex scelerisque praesent ultrices libero nunc lectus mattis. Arcu suspendisse dictum orci vivamus pretium taciti iaculis. Cras tincidunt ullamcorper litora lobortis hac cras maecenas ornare.
-
diff --git a/src/html.rs b/src/html.rs
index be10bf5..2d7b4a9 100644
--- a/src/html.rs
+++ b/src/html.rs
@@ -8,6 +8,7 @@ use anyhow::Context;
 use chrono::DateTime;
 use chrono::NaiveDate;
 use chrono::TimeZone;
+use chrono::Utc;
 use jotdown::Alignment;
 use jotdown::AttributeValue;
 use jotdown::Container;
@@ -42,7 +43,7 @@ pub enum State<'s> {
 	TextOnly,
 	Ignore,
 	Raw,
-	Figure,
+	ImageFigure,
 	Strikethrough,
 	Math(bool),
 	CodeBlock(String),
@@ -276,7 +277,18 @@ impl<'s> Writer<'s> {
 					// {{{ Post list
 					Container::Div { class: "posts" } => {
 						write!(out, r#"<ol class="article-list">"#)?;
-						for post in self.pages {
+
+						let mut pages = self.pages.iter().collect::<Vec<_>>();
+						pages.sort_by_key(|page| {
+							if let Some(created_at) = page.config.created_at {
+								(0, created_at)
+							} else {
+								(1, Utc::now().fixed_offset())
+							}
+						});
+						pages.reverse();
+
+						for post in pages {
 							// Skip non-posts
 							if !matches!(post.route, PageRoute::Post(_)) {
 								continue;
@@ -414,7 +426,17 @@ impl<'s> Writer<'s> {
 					// }}}
 					// {{{ Figure
 					Container::Div { class: "figure" } => {
-						self.states.push(State::Figure);
+						out.write_str("<figure>")?;
+					}
+					Container::Div { class: "caption" } => {
+						out.write_str("<figcaption>")?;
+					}
+					// }}}
+					// {{{ Image figure
+					Container::Div {
+						class: "image-figure",
+					} => {
+						self.states.push(State::ImageFigure);
 						let alt = attrs.get_value("alt").ok_or_else(|| {
 							anyhow!("Figure element encountered without an `alt` attribute")
 						})?;
@@ -559,8 +581,10 @@ impl<'s> Writer<'s> {
 					}
 					// }}}
 					// {{{ Figure
-					Container::Div { class: "figure" } => {
-						let State::Figure = self.states.pop().unwrap() else {
+					Container::Div {
+						class: "image-figure",
+					} => {
+						let State::ImageFigure = self.states.pop().unwrap() else {
 							panic!(
 								"Arrived at end of figure without being in the approriate state."
 							);
@@ -569,6 +593,14 @@ impl<'s> Writer<'s> {
 						write!(out, "</figcaption></figure>")?;
 					}
 					// }}}
+					// {{{ Figure
+					Container::Div { class: "figure" } => {
+						out.write_str("</figure>")?;
+					}
+					Container::Div { class: "caption" } => {
+						out.write_str("</figcaption>")?;
+					}
+					// }}}
 					Container::Heading { level, .. } => {
 						write!(out, "</h{}>", level)?;