add quote tags support

This commit is contained in:
yggverse 2024-09-14 08:01:35 +03:00
parent 5146eac9c1
commit 4ed7a0093b
2 changed files with 64 additions and 8 deletions

View File

@ -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(
"<span size=\"xx-large\">%s</span>\n",
Glib::Markup::escape_text(
VALUE
TEXT
)
);
@ -171,7 +207,7 @@ Glib::ustring Reader::Make::header(
return Glib::ustring::sprintf(
"<span size=\"x-large\">%s</span>\n",
Glib::Markup::escape_text(
VALUE
TEXT
)
);
@ -180,7 +216,7 @@ Glib::ustring Reader::Make::header(
return Glib::ustring::sprintf(
"<span size=\"large\">%s</span>\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(
"<i>%s</i>\n",
Glib::Markup::escape_text(
TEXT
)
);
}

View File

@ -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(