diff --git a/src/app/browser/window/tab/item/page/content/text/markdown/tags/bold.rs b/src/app/browser/window/tab/item/page/content/text/markdown/tags/bold.rs index 8925ef1c..56bd09c3 100644 --- a/src/app/browser/window/tab/item/page/content/text/markdown/tags/bold.rs +++ b/src/app/browser/window/tab/item/page/content/text/markdown/tags/bold.rs @@ -35,6 +35,18 @@ impl Bold { let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + if start_char_offset > 0 + && buffer + .text( + &buffer.iter_at_offset(start_char_offset - 1), + &end_iter, + false, + ) + .contains("\\") + { + continue; + } + let mut tags = start_iter.tags(); tags.push(self.0.clone()); diff --git a/src/app/browser/window/tab/item/page/content/text/markdown/tags/header.rs b/src/app/browser/window/tab/item/page/content/text/markdown/tags/header.rs index 5d558eb4..35be5cb3 100644 --- a/src/app/browser/window/tab/item/page/content/text/markdown/tags/header.rs +++ b/src/app/browser/window/tab/item/page/content/text/markdown/tags/header.rs @@ -105,6 +105,18 @@ impl Header { let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + if start_char_offset > 0 + && buffer + .text( + &buffer.iter_at_offset(start_char_offset - 1), + &end_iter, + false, + ) + .contains("\\") + { + continue; + } + buffer.delete(&mut start_iter, &mut end_iter); match cap["level"].chars().count() { diff --git a/src/app/browser/window/tab/item/page/content/text/markdown/tags/list.rs b/src/app/browser/window/tab/item/page/content/text/markdown/tags/list.rs index fc142275..304167c8 100644 --- a/src/app/browser/window/tab/item/page/content/text/markdown/tags/list.rs +++ b/src/app/browser/window/tab/item/page/content/text/markdown/tags/list.rs @@ -61,6 +61,18 @@ pub fn render(buffer: &TextBuffer) { let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + if start_char_offset > 0 + && buffer + .text( + &buffer.iter_at_offset(start_char_offset - 1), + &end_iter, + false, + ) + .contains("\\") + { + continue; + } + buffer.delete(&mut start_iter, &mut end_iter); let item = Item::parse( diff --git a/src/app/browser/window/tab/item/page/content/text/markdown/tags/pre.rs b/src/app/browser/window/tab/item/page/content/text/markdown/tags/pre.rs index 02825949..473067dc 100644 --- a/src/app/browser/window/tab/item/page/content/text/markdown/tags/pre.rs +++ b/src/app/browser/window/tab/item/page/content/text/markdown/tags/pre.rs @@ -53,6 +53,18 @@ impl Pre { let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + if start_char_offset > 0 + && buffer + .text( + &buffer.iter_at_offset(start_char_offset - 1), + &end_iter, + false, + ) + .contains("\\") + { + continue; + } + buffer.delete(&mut start_iter, &mut end_iter); buffer.insert_with_tags(&mut start_iter, &cap["text"], &[&self.0]) } diff --git a/src/app/browser/window/tab/item/page/content/text/markdown/tags/quote.rs b/src/app/browser/window/tab/item/page/content/text/markdown/tags/quote.rs index 3c854a1d..e7a79849 100644 --- a/src/app/browser/window/tab/item/page/content/text/markdown/tags/quote.rs +++ b/src/app/browser/window/tab/item/page/content/text/markdown/tags/quote.rs @@ -42,6 +42,18 @@ impl Quote { let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + if start_char_offset > 0 + && buffer + .text( + &buffer.iter_at_offset(start_char_offset - 1), + &end_iter, + false, + ) + .contains("\\") + { + continue; + } + buffer.delete(&mut start_iter, &mut end_iter); buffer.insert_with_tags(&mut start_iter, &cap["text"], &[&self.0]) } diff --git a/src/app/browser/window/tab/item/page/content/text/markdown/tags/reference.rs b/src/app/browser/window/tab/item/page/content/text/markdown/tags/reference.rs index 7bceaac3..b69622b1 100644 --- a/src/app/browser/window/tab/item/page/content/text/markdown/tags/reference.rs +++ b/src/app/browser/window/tab/item/page/content/text/markdown/tags/reference.rs @@ -129,6 +129,18 @@ pub fn render_images_links( let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + if start_char_offset > 0 + && buffer + .text( + &buffer.iter_at_offset(start_char_offset - 1), + &end_iter, + false, + ) + .contains("\\") + { + continue; + } + buffer.delete(&mut start_iter, &mut end_iter); if let Some(this) = Reference::parse( @@ -171,6 +183,18 @@ pub fn render_images( let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + if start_char_offset > 0 + && buffer + .text( + &buffer.iter_at_offset(start_char_offset - 1), + &end_iter, + false, + ) + .contains("\\") + { + continue; + } + buffer.delete(&mut start_iter, &mut end_iter); if let Some(this) = Reference::parse( @@ -210,6 +234,18 @@ pub fn render_links( let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + if start_char_offset > 0 + && buffer + .text( + &buffer.iter_at_offset(start_char_offset - 1), + &end_iter, + false, + ) + .contains("\\") + { + continue; + } + buffer.delete(&mut start_iter, &mut end_iter); if let Some(this) = Reference::parse( diff --git a/src/app/browser/window/tab/item/page/content/text/markdown/tags/strike.rs b/src/app/browser/window/tab/item/page/content/text/markdown/tags/strike.rs index 8379c600..13b4ef08 100644 --- a/src/app/browser/window/tab/item/page/content/text/markdown/tags/strike.rs +++ b/src/app/browser/window/tab/item/page/content/text/markdown/tags/strike.rs @@ -40,6 +40,18 @@ impl Strike { let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + if start_char_offset > 0 + && buffer + .text( + &buffer.iter_at_offset(start_char_offset - 1), + &end_iter, + false, + ) + .contains("\\") + { + continue; + } + let mut tags = start_iter.tags(); tags.push(self.0.clone()); diff --git a/src/app/browser/window/tab/item/page/content/text/markdown/tags/underline.rs b/src/app/browser/window/tab/item/page/content/text/markdown/tags/underline.rs index 794b12bf..fe7dbd3f 100644 --- a/src/app/browser/window/tab/item/page/content/text/markdown/tags/underline.rs +++ b/src/app/browser/window/tab/item/page/content/text/markdown/tags/underline.rs @@ -36,6 +36,18 @@ impl Underline { let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + if start_char_offset > 0 + && buffer + .text( + &buffer.iter_at_offset(start_char_offset - 1), + &end_iter, + false, + ) + .contains("\\") + { + continue; + } + let mut tags = start_iter.tags(); tags.push(self.0.clone());