+ <%s! body %>
+
+
+
+
\ No newline at end of file
diff --git a/render/render.ml b/render/render.ml
index 270842a..019bdfa 100644
--- a/render/render.ml
+++ b/render/render.ml
@@ -105,20 +105,6 @@ let handle_error e =
let handle_not_found () =
Dream.html ?code:(Some 404) not_found_template
-let render_blog_post request =
- let slug = Dream.param request "post" in
- let post_t = Database.get_blog_post_by_slug slug in
- post_t >>= fun post ->
- match post with
- | Error e -> handle_error e
- | Ok p_opt ->
- match p_opt with
- | None -> handle_not_found ()
- | Some p ->
- Printf.sprintf "
%s
\r\n%s" p.title p.content
- |> render_page
- |> Dream.html
-
let render_blog_index (_ : Dream.request) =
let buff = Buffer.create 512 in
let () = Buffer.add_string buff "
Blog
I have an rss feed too." in
@@ -168,5 +154,17 @@ let render_rss_feed (_ : Dream.request) =
let render_simple (module R : SimpleRender) =
R.render () |> Layout.render |> Dream.html
+let render_blog_post ~slug =
+ let%lwt post = Database.get_blog_post_by_slug slug in
+ match post with
+ | Ok p_opt ->
+ begin match p_opt with
+ | None -> handle_not_found ()
+ | Some p ->
+ Dream.html @@ Post_layout.render ~title:p.title ~body:p.content ~tags:[p.title]
+ end
+ | Error e -> handle_error e
+
+
let render_index () =
render_simple (module Index)
diff --git a/render/render.mli b/render/render.mli
deleted file mode 100644
index 8887f0f..0000000
--- a/render/render.mli
+++ /dev/null
@@ -1,18 +0,0 @@
-module BlogPost = Database.BlogPost
-module type SimpleRender = sig val render : unit -> string end
-val header_template : string
-val footer_template : string
-val replace_sequence : string -> string -> string -> string
-val html_unescape : string -> string
-val not_found_template : string
-val error_template : string
-val render_page : string -> string
-val generate_link : BlogPost.t -> string
-val generate_rss_item : BlogPost.t -> string
-val handle_error : [< Caqti_error.t ] -> Dream.response Lwt.t
-val handle_not_found : unit -> Dream.response Lwt.t
-val render_blog_post : Dream.request -> Dream.response Lwt.t
-val render_blog_index : Dream.request -> Dream.response Lwt.t
-val render_rss_feed : Dream.request -> Dream.response Lwt.t
-val render_simple : (module SimpleRender) -> Dream.response Lwt.t
-val render_index : unit -> Dream.response Lwt.t