About 1749205344734 milliseconds have passed since midnight of the january the first in 1970. ------------------------------------------------------ &text, &markdown::ParseOptions { constructs: markdown::Constructs { math_flow: true, math_text: true, ..Default::default() }, ..Default::default() }, ) .map_err(|e| anyhow!("the server had trouble parsing markdown: {e}"))?; Ok(Scaffold { title: a.title, content: markup::new! { @node_to_render(&ast) p{i{ "Article written by metamuffin, text licenced under CC BY-ND 4.0, non-trivial code blocks under GPL-3.0-only except where indicated otherwise" }} }, }) } fn node_to_render<'a>(node: &'a Node) -> DynRender<'a> { match node { Node::Text(s) => markup::new!(@s.value), Node::Paragraph(el) => markup::new!(p { @for e in &el.children { @node_to_render(e) } }), Node::List(list) => markup::new!(ul { @for e in &list.children { @node_to_render(e) } }), Node::Root(el) => markup::new!(article { @for e in &el.children { @node_to_render(e) } }), Node::ListItem(el) => markup::new!(li { @for e in &el.children { @node_to_render(e) } }), Node::Emphasis(el) => markup::new!(i { @for e in &el.children { @node_to_render(e) } }), Node::Strong(el) => markup::new!(strong { @for e in &el.children { @node_to_render(e) } }),