[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