diff options
-rw-r--r-- | Cargo.toml | 1 | ||||
-rw-r--r-- | src/controllers/posts_controller.rs | 7 | ||||
-rw-r--r-- | src/main.rs | 1 | ||||
-rw-r--r-- | templates/show_post.html | 2 |
4 files changed, 10 insertions, 1 deletions
@@ -12,6 +12,7 @@ r2d2 = "0.8.2" r2d2-diesel = "1.0.0" bart = "0.1.4" bart_derive = "0.1.4" +comrak = "0.2.5" serde = "1.0" serde_derive = "1.0" serde_json = "1.0" diff --git a/src/controllers/posts_controller.rs b/src/controllers/posts_controller.rs index 47f9ca1..aca9d13 100644 --- a/src/controllers/posts_controller.rs +++ b/src/controllers/posts_controller.rs @@ -1,3 +1,4 @@ +use comrak::{markdown_to_html, ComrakOptions}; use rocket::request::Form; use rocket::response::{Flash, Redirect}; use utils; @@ -35,6 +36,12 @@ pub struct ShowPostTemplate { implement_responder_for!(ShowPostTemplate); +impl ShowPostTemplate { + pub fn rendered_body(&self) -> String { + markdown_to_html(&self.post.body, &ComrakOptions::default()) + } +} + #[get("/<id>", format = "text/html")] fn show(id: i32, conn: utils::DbConn) -> utils::Page<ShowPostTemplate> { let p = ::models::Post::get(id, conn); diff --git a/src/main.rs b/src/main.rs index af3063a..88aa160 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,7 @@ #[macro_use] extern crate diesel; #[macro_use] extern crate serde_derive; +extern crate comrak; extern crate dotenv; extern crate r2d2; extern crate r2d2_diesel; diff --git a/templates/show_post.html b/templates/show_post.html index 9e633cc..0db8981 100644 --- a/templates/show_post.html +++ b/templates/show_post.html @@ -5,7 +5,7 @@ {{> post_actions.html }} </header> <section class="teaser"> - {{ .body }} + {{{ rendered_body() }}} </section> {{/ post }} </article> |