mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-03-31 08:35:28 +00:00
skip escaped tags
This commit is contained in:
parent
c64f2d9a9b
commit
88a3e94f42
8 changed files with 120 additions and 0 deletions
|
|
@ -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());
|
||||
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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])
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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])
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue