this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

more

+36
+36
stack/river/lib/markdown_converter.ml
··· 144 144 need_space := false 145 145 (* Inline elements - preserve space tracking *) 146 146 | "strong" | "b" -> 147 + (* Add space before if needed *) 148 + if !need_space then begin 149 + match last_char () with 150 + | Some (' ' | '\n') -> () 151 + | _ -> Buffer.add_char buffer ' ' 152 + end; 147 153 Buffer.add_string buffer "**"; 148 154 need_space := false; 149 155 Soup.children elem |> Soup.iter process_node; 150 156 Buffer.add_string buffer "**"; 151 157 mark_space_needed () 152 158 | "em" | "i" -> 159 + (* Add space before if needed *) 160 + if !need_space then begin 161 + match last_char () with 162 + | Some (' ' | '\n') -> () 163 + | _ -> Buffer.add_char buffer ' ' 164 + end; 153 165 Buffer.add_string buffer "*"; 154 166 need_space := false; 155 167 Soup.children elem |> Soup.iter process_node; 156 168 Buffer.add_string buffer "*"; 157 169 mark_space_needed () 158 170 | "code" -> 171 + (* Add space before if needed *) 172 + if !need_space then begin 173 + match last_char () with 174 + | Some (' ' | '\n') -> () 175 + | _ -> Buffer.add_char buffer ' ' 176 + end; 159 177 Buffer.add_string buffer "`"; 160 178 need_space := false; 161 179 Soup.children elem |> Soup.iter process_node; ··· 172 190 let href = Soup.attribute "href" elem in 173 191 (match href with 174 192 | Some href -> 193 + (* Add space before link if needed *) 194 + if !need_space then begin 195 + match last_char () with 196 + | Some (' ' | '\n') -> () 197 + | _ -> Buffer.add_char buffer ' ' 198 + end; 199 + need_space := false; 200 + 201 + (* Add the link markdown *) 175 202 if text = "" then 176 203 Buffer.add_string buffer (Printf.sprintf "<%s>" href) 177 204 else 178 205 Buffer.add_string buffer (Printf.sprintf "[%s](%s)" text href); 206 + 207 + (* Mark that space may be needed after link *) 179 208 mark_space_needed () 180 209 | None -> 181 210 add_text text) ··· 205 234 Buffer.add_string buffer "\n\n"; 206 235 need_space := false 207 236 | "img" -> 237 + (* Add space before if needed *) 238 + if !need_space then begin 239 + match last_char () with 240 + | Some (' ' | '\n') -> () 241 + | _ -> Buffer.add_char buffer ' ' 242 + end; 208 243 let alt = Soup.attribute "alt" elem |> Option.value ~default:"" in 209 244 let src = Soup.attribute "src" elem |> Option.value ~default:"" in 210 245 Buffer.add_string buffer (Printf.sprintf "![%s](%s)" alt src); 246 + need_space := false; 211 247 mark_space_needed () 212 248 | "hr" -> 213 249 need_space := false;