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 5ff97e4f..8925ef1c 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,8 +35,15 @@ impl Bold { let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + let mut tags = start_iter.tags(); + tags.push(self.0.clone()); + buffer.delete(&mut start_iter, &mut end_iter); - buffer.insert_with_tags(&mut start_iter, &cap["text"], &[&self.0]) + buffer.insert_with_tags( + &mut start_iter, + &cap["text"], + &tags.iter().collect::>(), + ) } } } 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 8b7f534d..7bceaac3 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 @@ -95,7 +95,12 @@ impl Reference { .build() }; assert!(buffer.tag_table().add(&a)); - buffer.insert_with_tags(position, &self.alt, &[&a]); + + let mut tags = position.tags(); // @TODO seems does not work :) + tags.push(a.clone()); + + buffer.insert_with_tags(position, &self.alt, &tags.iter().collect::>()); + links.insert(a, self.uri); } } 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 02945a4c..8379c600 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,8 +40,15 @@ impl Strike { let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + let mut tags = start_iter.tags(); + tags.push(self.0.clone()); + buffer.delete(&mut start_iter, &mut end_iter); - buffer.insert_with_tags(&mut start_iter, &cap["text"], &[&self.0]) + buffer.insert_with_tags( + &mut start_iter, + &cap["text"], + &tags.iter().collect::>(), + ) } } } 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 b2c41c86..794b12bf 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,8 +36,15 @@ impl Underline { let mut start_iter = buffer.iter_at_offset(start_char_offset); let mut end_iter = buffer.iter_at_offset(end_char_offset); + let mut tags = start_iter.tags(); + tags.push(self.0.clone()); + buffer.delete(&mut start_iter, &mut end_iter); - buffer.insert_with_tags(&mut start_iter, &cap["text"], &[&self.0]) + buffer.insert_with_tags( + &mut start_iter, + &cap["text"], + &tags.iter().collect::>(), + ) } } }