]> git.r.bdr.sh - rbdr/page/blobdiff - src/html_renderer.rs
Format and lint the code
[rbdr/page] / src / html_renderer.rs
index 47d36bb68a699743aadf4b466bb91d5dec87f9bb..1b26bff79d856a36015c468d757592195639a037 100644 (file)
@@ -1,10 +1,10 @@
 use crate::gemini_parser::GeminiLine;
 
 /// Renders HTML from a vector of GeminiLine elements.
-/// 
+///
 /// # Arguments
 /// * `lines` - Vector of GeminiLine elements to render
-/// 
+///
 /// # Returns
 /// A String containing the rendered HTML.
 pub fn render_html(lines: Vec<GeminiLine>) -> String {
@@ -26,23 +26,19 @@ pub fn render_html(lines: Vec<GeminiLine>) -> String {
 fn line_preamble(
     line: &GeminiLine,
     last_line: Option<&GeminiLine>,
-    heading_stack: &mut Vec<u8>
+    heading_stack: &mut Vec<u8>,
 ) -> String {
     let mut html = String::new();
 
     if let Some(last_line) = last_line {
         match last_line {
-            GeminiLine::ListItem(_) => {
-                match line {
-                    GeminiLine::ListItem(_) => {},
-                    _ => html.push_str("</ul>\n"),
-                }
+            GeminiLine::ListItem(_) => match line {
+                GeminiLine::ListItem(_) => {}
+                _ => html.push_str("</ul>\n"),
             },
-            GeminiLine::Quote(_) => {
-                match line {
-                    GeminiLine::Quote(_) => {},
-                    _ => html.push_str("</blockquote>\n"),
-                }
+            GeminiLine::Quote(_) => match line {
+                GeminiLine::Quote(_) => {}
+                _ => html.push_str("</blockquote>\n"),
             },
             _ => {}
         }
@@ -66,18 +62,14 @@ fn line_preamble(
             }
             heading_stack.push(*level);
             html.push_str(&format!("<section class=\"h{}\">\n", level));
+        }
+        GeminiLine::ListItem(_) => match last_line {
+            Some(GeminiLine::ListItem(_)) => {}
+            _ => html.push_str("<ul>\n"),
         },
-        GeminiLine::ListItem(_) => {
-            match last_line {
-                Some(GeminiLine::ListItem(_)) => {},
-                _ => html.push_str("<ul>\n"),
-            }
-        },
-        GeminiLine::Quote(_) => {
-            match last_line {
-                Some(GeminiLine::Quote(_)) => {},
-                _ => html.push_str("<blockquote>\n"),
-            }
+        GeminiLine::Quote(_) => match last_line {
+            Some(GeminiLine::Quote(_)) => {}
+            _ => html.push_str("<blockquote>\n"),
         },
         _ => {}
     }
@@ -91,12 +83,14 @@ fn line_content(line: &GeminiLine) -> String {
         GeminiLine::Link(url, text) => {
             let display = if text.is_empty() { url } else { text };
             format!("<p class=\"a\"><a href=\"{}\">{}</a></p>", url, display)
-        },
+        }
         GeminiLine::Heading(level, content) => format!("<h{}>{}</h{}>", level, content, level),
         GeminiLine::ListItem(content) => format!("<li>{}</li>", content),
-        GeminiLine::PreformattedToggle(true, alt_text) => { format!("<pre aria-label=\"{}\">", alt_text) }
-        GeminiLine::PreformattedToggle(false, _) => { "</pre>".to_string() }
-        GeminiLine::Text(content, true) | GeminiLine::Quote(content) => format!("{}", content)
+        GeminiLine::PreformattedToggle(true, alt_text) => {
+            format!("<pre aria-label=\"{}\">", alt_text)
+        }
+        GeminiLine::PreformattedToggle(false, _) => "</pre>".to_string(),
+        GeminiLine::Text(content, true) | GeminiLine::Quote(content) => content.to_string(),
     }
 }
 
@@ -122,13 +116,8 @@ mod tests {
 
     #[test]
     fn test_simple_text() {
-        let input = vec![
-            GeminiLine::Text("Hello world".to_string(), false),
-        ];
-        assert_eq!(
-            render_html(input),
-            "<p>Hello world</p>\n"
-        );
+        let input = vec![GeminiLine::Text("Hello world".to_string(), false)];
+        assert_eq!(render_html(input), "<p>Hello world</p>\n");
     }
 
     #[test]