-- Leo's gemini proxy
-- Connecting to typed-hole.org:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini
commit ff424f53379c5fce729b26759ada07a8a38b23e9
Author: Julien Blanchard <julien@sideburns.eu>
Date: Fri May 1 12:43:24 2020 +0200
gemini | handle non text/gemini text files
diff --git a/src/main.rs b/src/main.rs
index 17c4a8b..fd3742c 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -195,7 +195,12 @@ fn visit_url<T: AbsoluteUrl + Protocol>(gui: &Arc<Gui>, url: T) {
let parsed_content = gemini::parser::parse(content_str);
clear_buffer(&content_view);
- draw_gemini_content(&gui, parsed_content);
+ if meta == "text/gemini" {
+ draw_gemini_content(&gui, parsed_content);
+ } else {
+ // just a text file
+ draw_gemini_text_content(&gui, parsed_content);
+ }
content_view.show_all();
} else {
@@ -390,6 +395,33 @@ fn draw_gemini_content(
buffer
}
+fn draw_gemini_text_content(
+ gui: &Arc<Gui>,
+ content: Vec<Result<gemini::parser::TextElement, gemini::parser::ParseError>>,
+) -> TextBuffer {
+ let content_view = gui.content_view();
+ let buffer = content_view.get_buffer().unwrap();
+
+ for el in content {
+ match el {
+ Ok(gemini::parser::TextElement::Text(text)) => {
+ let mut end_iter = buffer.get_end_iter();
+ buffer.insert_markup(
+ &mut end_iter,
+ &format!(
+ "<span foreground=\"{}\" font_family=\"monospace\">{}</span>\n",
+ settings::text_color(),
+ text
+ ),
+ );
+ },
+ Ok(_) => (),
+ Err(_) => println!("Something failed."),
+ }
+ }
+ buffer
+}
+
fn draw_gopher_content(
gui: &Arc<Gui>,
content: Vec<Result<gopher::parser::TextElement, gopher::parser::ParseError>>,
---
Served by Pollux Gemini Server.
-- Response ended
-- Page fetched on Sun May 19 05:30:43 2024