diff --git a/Cargo.lock b/Cargo.lock index 09cf4dfc..9c92be2d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -369,6 +369,7 @@ dependencies = [ "gdk 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "gdk-pixbuf 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "glib 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "md5 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "pango 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "pangocairo 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -831,6 +832,11 @@ name = "matches" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "md5" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "memchr" version = "2.0.1" @@ -2018,6 +2024,7 @@ dependencies = [ "checksum maplit 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08cbb6b4fef96b6d77bfc40ec491b1690c779e77b05cd9f07f787ed376fd4c43" "checksum markup5ever 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfedc97d5a503e96816d10fedcd5b42f760b2e525ce2f7ec71f6a41780548475" "checksum matches 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "100aabe6b8ff4e4a7e32c1c13523379802df0772b82466207ac25b013f193376" +"checksum md5 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "daa1004633f76cdcd5a9d83ffcfe615e30ca7a2a638fcc8b8039a2dac21289d7" "checksum memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "796fba70e76612589ed2ce7f45282f5af869e0fdd7cc6199fa1aa1f1d591ba9d" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum mime 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e2e00e17be181010a91dbfefb01660b17311059dc8c7f48b9017677721e732bd" diff --git a/fractal-gtk/src/app.rs b/fractal-gtk/src/app.rs index 4821382e..96174dec 100644 --- a/fractal-gtk/src/app.rs +++ b/fractal-gtk/src/app.rs @@ -1379,9 +1379,19 @@ impl AppOp { // Riot does not properly show emotes with Markdown; // Emotes with markdown have a newline after the username if m.mtype != "m.emote" && self.md_enabled { - let md_parsed_msg = markdown_to_html(&msg, &ComrakOptions::default()); + let mut md_parsed_msg = markdown_to_html(&msg, &ComrakOptions::default()); - if md_parsed_msg != String::from("
") + &msg + &String::from("
\n") { + // Removing wrap tag:..
\n + let limit = md_parsed_msg.len() - 5; + let trim = match (md_parsed_msg.get(0..3), md_parsed_msg.get(limit..)) { + (Some(open), Some(close)) if open == "" && close == "
\n" => { true } + _ => { false } + }; + if trim { + md_parsed_msg = md_parsed_msg.get(3..limit).unwrap_or(&md_parsed_msg).to_string(); + } + + if md_parsed_msg != msg { m.formatted_body = Some(md_parsed_msg); m.format = Some(String::from("org.matrix.custom.html")); }