(** Prose rendering façade. Detects documentation formats by filename extension and renders content as styled HTML. This module is the single entry point for prose rendering throughout ogit. *) let is_readme_filename filename = Filename.basename filename |> String.lowercase_ascii |> String.starts_with ~prefix:"readme" let is_doc_filename filename = match Filename.extension filename |> String.lowercase_ascii with | ".md" | ".markdown" | ".org" | ".mld" | ".txt" -> true | _ -> false let format_of_filename filename = match Filename.extension filename |> String.lowercase_ascii with | ".org" -> Org.format | ".mld" -> Mld.format | ".txt" -> Plaintext.format | _ -> Markdown.format let render ~filename content = let format = format_of_filename filename in Format.render format content