Browse Source

add quote tags support

CPP-GTK4
yggverse 4 months ago
parent
commit
4ed7a0093b
  1. 61
      src/app/browser/main/tab/page/content/text/gemini/reader.cpp
  2. 11
      src/app/browser/main/tab/page/content/text/gemini/reader.hpp

61
src/app/browser/main/tab/page/content/text/gemini/reader.cpp

@ -91,6 +91,28 @@ bool Reader::Line::Match::link( @@ -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( @@ -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( @@ -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( @@ -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( @@ -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( @@ -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( @@ -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( @@ -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
)
);
}

11
src/app/browser/main/tab/page/content/text/gemini/reader.hpp

@ -31,6 +31,11 @@ namespace app::browser::main::tab::page::content::text::gemini @@ -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 @@ -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 @@ -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(

Loading…
Cancel
Save