From a47df86adea177b0232b239e0ec8953e12f5e30e Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Thu, 24 Aug 2023 09:43:32 +0200 Subject: [PATCH] events: Don't parse markdown twice --- crates/ruma-common/src/events/room/message.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/ruma-common/src/events/room/message.rs b/crates/ruma-common/src/events/room/message.rs index 4aa32009..3cccb61a 100644 --- a/crates/ruma-common/src/events/room/message.rs +++ b/crates/ruma-common/src/events/room/message.rs @@ -942,7 +942,8 @@ pub(crate) fn parse_markdown(text: &str) -> Option { let mut found_first_paragraph = false; - let has_markdown = Parser::new_ext(text, OPTIONS).any(|ref event| { + let parser_events: Vec<_> = Parser::new_ext(text, OPTIONS).collect(); + let has_markdown = parser_events.iter().any(|ref event| { let is_text = matches!(event, Event::Text(_)); let is_break = matches!(event, Event::SoftBreak | Event::HardBreak); let is_first_paragraph_start = if matches!(event, Event::Start(Tag::Paragraph)) { @@ -965,7 +966,7 @@ pub(crate) fn parse_markdown(text: &str) -> Option { } let mut html_body = String::new(); - pulldown_cmark::html::push_html(&mut html_body, Parser::new_ext(text, OPTIONS)); + pulldown_cmark::html::push_html(&mut html_body, parser_events.into_iter()); Some(html_body) }