Just another little update to the site. Added tags to posts! Check them out in the head of each post.
There’s also some more polish all around.
- A 404 page
- A link back to the top of the page
- Image labels

Put a label on this cat.
You do it with this syntax which is apparently part of Markdown.

This required hooking into how pulldown-cmark handles tags, which is only a little awkward. There’s no built-in way to do so, but working with Rust iterators makes it easy to turn image tags into raw html tags. Note how the match turns all Event::Start(Tag::Image) into Event::Html.
fn parse_markdown_custom<'a, I: Iterator<Item = pulldown_cmark::Event<'a>>>( iter: I, ) -> impl Iterator<Item = pulldown_cmark::Event<'a>> { use pulldown_cmark::{CowStr, Event, Tag}; iter.map(|event| match event { Event::Start(Tag::Image(_link_type, url, title)) => { let v = html! { img src=(url) title=(title); @if title.as_ref().trim().len() > 0 { p class="markdown-image-title" { (title) } } }; Event::Html(CowStr::from(v.0)) } v => v, }) }
