mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-01-30 13:04:13 +00:00
remove extra members
This commit is contained in:
parent
f31dc84fe6
commit
2a0b9f194f
@ -10,20 +10,15 @@ Gemini::Gemini(
|
|||||||
NULL,
|
NULL,
|
||||||
NULL
|
NULL
|
||||||
) {
|
) {
|
||||||
// Init components
|
|
||||||
auto geminiReader = Gtk::make_managed<gemini::Reader>(
|
|
||||||
GEMTEXT
|
|
||||||
);
|
|
||||||
|
|
||||||
// Grab title
|
|
||||||
title = geminiReader->get_title();
|
|
||||||
|
|
||||||
// Init widget
|
// Init widget
|
||||||
set_scroll_to_focus(
|
set_scroll_to_focus(
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
set_child(
|
set_child(
|
||||||
* geminiReader
|
* Gtk::make_managed<gemini::Reader>(
|
||||||
|
GEMTEXT,
|
||||||
|
title
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
@ -3,8 +3,83 @@
|
|||||||
using namespace app::browser::main::tab::page::content::text::gemini;
|
using namespace app::browser::main::tab::page::content::text::gemini;
|
||||||
|
|
||||||
Reader::Reader(
|
Reader::Reader(
|
||||||
const Glib::ustring & GEMTEXT
|
const Glib::ustring & GEMTEXT,
|
||||||
|
Glib::ustring & title
|
||||||
) {
|
) {
|
||||||
|
// Build markup
|
||||||
|
Glib::ustring markup;
|
||||||
|
|
||||||
|
std::istringstream stream(
|
||||||
|
GEMTEXT
|
||||||
|
);
|
||||||
|
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
while (std::getline(stream, line))
|
||||||
|
{
|
||||||
|
// Header
|
||||||
|
int level;
|
||||||
|
Glib::ustring header;
|
||||||
|
|
||||||
|
if (Line::Match::header(line, level, header))
|
||||||
|
{
|
||||||
|
markup.append(
|
||||||
|
Make::header(
|
||||||
|
level,
|
||||||
|
header
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (title.empty())
|
||||||
|
{
|
||||||
|
title = header;
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Link
|
||||||
|
Glib::ustring address;
|
||||||
|
Glib::ustring date;
|
||||||
|
Glib::ustring alt;
|
||||||
|
|
||||||
|
if (Line::Match::link(line, address, date, alt))
|
||||||
|
{
|
||||||
|
markup.append(
|
||||||
|
Make::link(
|
||||||
|
address,
|
||||||
|
date,
|
||||||
|
alt
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Quote
|
||||||
|
Glib::ustring quote;
|
||||||
|
|
||||||
|
if (Line::Match::quote(line, quote))
|
||||||
|
{
|
||||||
|
markup.append(
|
||||||
|
Make::quote(
|
||||||
|
quote
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// @TODO other tags..
|
||||||
|
|
||||||
|
// Default
|
||||||
|
markup.append(
|
||||||
|
Make::plain(
|
||||||
|
line
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Init widget
|
// Init widget
|
||||||
set_valign(
|
set_valign(
|
||||||
Gtk::Align::START
|
Gtk::Align::START
|
||||||
@ -23,9 +98,7 @@ Reader::Reader(
|
|||||||
);
|
);
|
||||||
|
|
||||||
set_markup(
|
set_markup(
|
||||||
make(
|
markup
|
||||||
GEMTEXT
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// Connect CSS
|
// Connect CSS
|
||||||
@ -52,12 +125,6 @@ Reader::Reader(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getters
|
|
||||||
Glib::ustring Reader::get_title()
|
|
||||||
{
|
|
||||||
return title;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Match tools
|
// Match tools
|
||||||
bool Reader::Line::Match::header(
|
bool Reader::Line::Match::header(
|
||||||
const Glib::ustring & GEMTEXT,
|
const Glib::ustring & GEMTEXT,
|
||||||
@ -132,85 +199,6 @@ bool Reader::Line::Match::quote(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Markup tools
|
// Markup tools
|
||||||
Glib::ustring Reader::make(
|
|
||||||
const Glib::ustring & GEMTEXT
|
|
||||||
) {
|
|
||||||
Glib::ustring pango;
|
|
||||||
|
|
||||||
std::istringstream stream(
|
|
||||||
GEMTEXT
|
|
||||||
);
|
|
||||||
|
|
||||||
std::string line;
|
|
||||||
|
|
||||||
while (std::getline(stream, line))
|
|
||||||
{
|
|
||||||
// Header
|
|
||||||
int level;
|
|
||||||
Glib::ustring header;
|
|
||||||
|
|
||||||
if (Line::Match::header(line, level, header))
|
|
||||||
{
|
|
||||||
pango.append(
|
|
||||||
Make::header(
|
|
||||||
level,
|
|
||||||
header
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (title.empty())
|
|
||||||
{
|
|
||||||
title = header;
|
|
||||||
}
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Link
|
|
||||||
Glib::ustring address;
|
|
||||||
Glib::ustring date;
|
|
||||||
Glib::ustring alt;
|
|
||||||
|
|
||||||
if (Line::Match::link(line, address, date, alt))
|
|
||||||
{
|
|
||||||
pango.append(
|
|
||||||
Make::link(
|
|
||||||
address,
|
|
||||||
date,
|
|
||||||
alt
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Quote
|
|
||||||
Glib::ustring quote;
|
|
||||||
|
|
||||||
if (Line::Match::quote(line, quote))
|
|
||||||
{
|
|
||||||
pango.append(
|
|
||||||
Make::quote(
|
|
||||||
quote
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// @TODO other tags..
|
|
||||||
|
|
||||||
// Default
|
|
||||||
pango.append(
|
|
||||||
Make::plain(
|
|
||||||
line
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return pango;
|
|
||||||
}
|
|
||||||
|
|
||||||
Glib::ustring Reader::Make::header(
|
Glib::ustring Reader::Make::header(
|
||||||
const int & LEVEL,
|
const int & LEVEL,
|
||||||
const Glib::ustring & TEXT
|
const Glib::ustring & TEXT
|
||||||
|
@ -62,26 +62,15 @@ namespace app::browser::main::tab::page::content::text::gemini
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
Glib::ustring make(
|
|
||||||
const Glib::ustring & GEMTEXT
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Private members
|
|
||||||
*/
|
|
||||||
Glib::ustring title;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reader class API
|
* Reader class API
|
||||||
*/
|
*/
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Reader(
|
Reader(
|
||||||
const Glib::ustring & GEMTEXT
|
const Glib::ustring & GEMTEXT,
|
||||||
|
Glib::ustring & title
|
||||||
);
|
);
|
||||||
|
|
||||||
// Getters
|
|
||||||
Glib::ustring get_title();
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user