~julienxx/castor

fix using advanced line types inside preformatted ones v1 PROPOSED

Guillermo Bonvehí: 1
 fix using advanced line types inside preformatted ones

 1 files changed, 7 insertions(+), 7 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~julienxx/castor/patches/14796/mbox | git am -3
Learn more about email & git

[PATCH] fix using advanced line types inside preformatted ones Export this patch

Instead of keeping a state in parser, we replicate those control
characters that trigger element control.
There are several ways to solve this, you may want to drop the patch and
use a better/different approach like not removing the start of the line
at the parser and doing it when drawing.
Less intrusive would be to move these markers to constants and refer to
them from both draw.rs and parser.rs to avoid repeating them.

---
 src/draw.rs | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/draw.rs b/src/draw.rs
index d76ded9..dc36ea5 100644
--- a/src/draw.rs
+++ b/src/draw.rs
@@ -35,7 +35,7 @@ pub fn gemini_content(
            Ok(crate::gemini::parser::TextElement::H1(header)) => {
                let mut end_iter = buffer.get_end_iter();
                if mono_toggle {
                    buffer.insert_markup(&mut end_iter, &mono_span(header));
                    buffer.insert_markup(&mut end_iter, &mono_span(format!("#{}", header)));
                } else {
                  buffer.insert_markup(
                      &mut end_iter,
@@ -54,7 +54,7 @@ pub fn gemini_content(
            Ok(crate::gemini::parser::TextElement::H2(header)) => {
                let mut end_iter = buffer.get_end_iter();
                if mono_toggle {
                    buffer.insert_markup(&mut end_iter, &mono_span(header));
                    buffer.insert_markup(&mut end_iter, &mono_span(format!("##{}", header)));
               } else {
                  buffer.insert_markup(
                      &mut end_iter,
@@ -73,7 +73,7 @@ pub fn gemini_content(
            Ok(crate::gemini::parser::TextElement::H3(header)) => {
                let mut end_iter = buffer.get_end_iter();
                if mono_toggle {
                    buffer.insert_markup(&mut end_iter, &mono_span(header));
                    buffer.insert_markup(&mut end_iter, &mono_span(format!("###{}", header)));
                } else {
                    buffer.insert_markup(
                        &mut end_iter,
@@ -92,7 +92,7 @@ pub fn gemini_content(
            Ok(crate::gemini::parser::TextElement::ListItem(item)) => {
                let mut end_iter = buffer.get_end_iter();
                if mono_toggle {
                    buffer.insert_markup(&mut end_iter, &mono_span(item));
                    buffer.insert_markup(&mut end_iter, &mono_span(format!("*{}", item)));
                } else {
                    buffer.insert_markup(
                      &mut end_iter,
@@ -111,7 +111,7 @@ pub fn gemini_content(
            Ok(crate::gemini::parser::TextElement::Quote(text)) => {
                let mut end_iter = buffer.get_end_iter();
                if mono_toggle {
                    buffer.insert_markup(&mut end_iter, &mono_span(text));
                    buffer.insert_markup(&mut end_iter, &mono_span(format!(">{}", text)));
                } else {
                    buffer.insert_markup(
                        &mut end_iter,
@@ -130,7 +130,7 @@ pub fn gemini_content(
            Ok(crate::gemini::parser::TextElement::Text(text)) => {
                let mut end_iter = buffer.get_end_iter();
                if mono_toggle {
                    buffer.insert_markup(&mut end_iter, &mono_span(colors::colorize(&text)));
                    buffer.insert_markup(&mut end_iter, &mono_span(text));
                } else {
                    buffer.insert_markup(
                        &mut end_iter,
@@ -147,7 +147,7 @@ pub fn gemini_content(
            Ok(crate::gemini::parser::TextElement::LinkItem(link_item)) => {
                if mono_toggle {
                    let mut end_iter = buffer.get_end_iter();
                    buffer.insert_markup(&mut end_iter, &mono_span(escape_text(&link_item)));
                    buffer.insert_markup(&mut end_iter, &mono_span(format!("=>{}", link_item)));
                } else {
                    gemini_link(&gui, link_item);
                }
-- 
2.25.1