diff options
author | metamuffin <metamuffin@disroot.org> | 2022-09-25 20:42:10 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-09-25 20:42:10 +0200 |
commit | 0a18eae178a23e7f7bfd88c37502e5e8c1fdf64a (patch) | |
tree | fb5b1aa5f9a8d023b2edbc9e89b5d2e4844a42eb /code/src/markdown/render.rs | |
parent | e3edf18503b3975ccec3b33c0cb9e7f0888bd031 (diff) | |
download | metamuffin-blog-0a18eae178a23e7f7bfd88c37502e5e8c1fdf64a.tar metamuffin-blog-0a18eae178a23e7f7bfd88c37502e5e8c1fdf64a.tar.bz2 metamuffin-blog-0a18eae178a23e7f7bfd88c37502e5e8c1fdf64a.tar.zst |
(the commit before proper parsers will replace everything™™)
Diffstat (limited to 'code/src/markdown/render.rs')
-rw-r--r-- | code/src/markdown/render.rs | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/code/src/markdown/render.rs b/code/src/markdown/render.rs index 39f204f..f6b7686 100644 --- a/code/src/markdown/render.rs +++ b/code/src/markdown/render.rs @@ -15,7 +15,10 @@ pub fn span_to_html(ss: Vec<Span>) -> String { Span::Image(_, _) => todo!(), Span::Emphasis(c) => format!("<i>{}</i>", span_to_html(c)), Span::Strong(c) => format!("<b>{}</b>", span_to_html(c)), - Span::Latex(_) => format!("TODO: Inline Latex"), + Span::Latex(s) => fix_katex( + &katex::render_with_opts(&s, &katex::OptsBuilder::default().build().unwrap()) + .unwrap(), + ), } .as_str() } @@ -55,7 +58,16 @@ pub fn blocks_to_html(blocks: Vec<Block>) -> String { } Block::Raw(r) => r, Block::Hr => format!("<hr/>"), - Block::LatexBlock(_) => format!("TODO: Latex block"), + Block::LatexBlock(s) => fix_katex( + &katex::render_with_opts( + &s, + &katex::OptsBuilder::default() + .display_mode(true) + .build() + .unwrap(), + ) + .unwrap(), + ), } .as_str(); } @@ -69,3 +81,12 @@ pub fn escape(text: &str) -> String { .replace("'", "’") .replace("\"", """) } + +// TODO this is *really* bad fix +fn fix_katex<'a>(s: &str) -> String { + let e = s.find("<span class=\"katex-html\"").unwrap(); + s[0..e].replace( + "<mspace linebreak=\"newline\"></mspace>", + "</mrow></semantics></math><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow>", + ) +} |