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