]> git.r.bdr.sh - rbdr/page/blobdiff - src/gemini_parser.rs
Add gemini parsing
[rbdr/page] / src / gemini_parser.rs
index 36abb169ed5788bfc5c1a4cfc82a8cd642ff5d78..5c204263bebede10c4c083ff70399ae1aa11b793 100644 (file)
@@ -7,7 +7,11 @@ pub fn parse(source: &str) -> String {
     let mut current_line_type: Option<LineType> = None;
 
     for line in lines {
-        let line_type = identify_line(&(line[..3]), is_preformatted);
+        let mut line_type = LineType::Text;
+        if line.len() > 2 {
+            let end = line.char_indices().map(|(i, _)| i).nth(2).unwrap();
+            line_type = identify_line(&(line[..end]), is_preformatted);
+        }
         match line_type {
             LineType::PreformattedToggle => is_preformatted = !is_preformatted,
             _ => {