diff --git a/src/app/browser/main/tab/page/content/text/gemini/reader.cpp b/src/app/browser/main/tab/page/content/text/gemini/reader.cpp
index 756d8d00..05881f94 100644
--- a/src/app/browser/main/tab/page/content/text/gemini/reader.cpp
+++ b/src/app/browser/main/tab/page/content/text/gemini/reader.cpp
@@ -91,6 +91,28 @@ bool Reader::Line::Match::link(
return !address.empty();
}
+bool Reader::Line::Match::quote(
+ const Glib::ustring & GEMTEXT,
+ Glib::ustring & quote
+) {
+ auto match = Glib::Regex::split_simple(
+ R"regex(^>(.*)$)regex",
+ GEMTEXT
+ );
+
+ int index = 0; for (const Glib::ustring & MATCH : match)
+ {
+ switch (index)
+ {
+ case 1: quote = MATCH; break;
+ }
+
+ index++;
+ }
+
+ return !quote.empty();
+}
+
// Markup tools
Glib::ustring Reader::make(
const Glib::ustring & GEMTEXT
@@ -107,14 +129,14 @@ Glib::ustring Reader::make(
{
// Header
int level;
- Glib::ustring text;
+ Glib::ustring header;
- if (Line::Match::header(line, level, text))
+ if (Line::Match::header(line, level, header))
{
pango.append(
Make::header(
level,
- text
+ header
)
);
@@ -139,6 +161,20 @@ Glib::ustring Reader::make(
continue;
}
+ // Header
+ Glib::ustring quote;
+
+ if (Line::Match::quote(line, quote))
+ {
+ pango.append(
+ Make::quote(
+ quote
+ )
+ );
+
+ continue;
+ }
+
// @TODO other tags..
pango.append(
@@ -153,7 +189,7 @@ Glib::ustring Reader::make(
Glib::ustring Reader::Make::header(
const int & LEVEL,
- const Glib::ustring & VALUE
+ const Glib::ustring & TEXT
) {
switch (LEVEL)
{
@@ -162,7 +198,7 @@ Glib::ustring Reader::Make::header(
return Glib::ustring::sprintf(
"%s\n",
Glib::Markup::escape_text(
- VALUE
+ TEXT
)
);
@@ -171,7 +207,7 @@ Glib::ustring Reader::Make::header(
return Glib::ustring::sprintf(
"%s\n",
Glib::Markup::escape_text(
- VALUE
+ TEXT
)
);
@@ -180,7 +216,7 @@ Glib::ustring Reader::Make::header(
return Glib::ustring::sprintf(
"%s\n",
Glib::Markup::escape_text(
- VALUE
+ TEXT
)
);
@@ -223,4 +259,15 @@ Glib::ustring Reader::Make::link(
description
)
);
+}
+
+Glib::ustring Reader::Make::quote(
+ const Glib::ustring & TEXT
+) {
+ return Glib::ustring::sprintf(
+ "%s\n",
+ Glib::Markup::escape_text(
+ TEXT
+ )
+ );
}
\ No newline at end of file
diff --git a/src/app/browser/main/tab/page/content/text/gemini/reader.hpp b/src/app/browser/main/tab/page/content/text/gemini/reader.hpp
index 9ef1f8aa..feaf543e 100644
--- a/src/app/browser/main/tab/page/content/text/gemini/reader.hpp
+++ b/src/app/browser/main/tab/page/content/text/gemini/reader.hpp
@@ -31,6 +31,11 @@ namespace app::browser::main::tab::page::content::text::gemini
Glib::ustring & date,
Glib::ustring & alt
);
+
+ static bool quote(
+ const Glib::ustring & GEMTEXT,
+ Glib::ustring & text
+ );
};
};
@@ -38,7 +43,7 @@ namespace app::browser::main::tab::page::content::text::gemini
{
static Glib::ustring header(
const int & LEVEL,
- const Glib::ustring & VALUE
+ const Glib::ustring & TEXT
);
static Glib::ustring link(
@@ -46,6 +51,10 @@ namespace app::browser::main::tab::page::content::text::gemini
const Glib::ustring & DATE,
const Glib::ustring & ALT
);
+
+ static Glib::ustring quote(
+ const Glib::ustring & TEXT
+ );
};
static Glib::ustring make(