diff options
Diffstat (limited to 'src/posts/mod.rs')
-rw-r--r-- | src/posts/mod.rs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/posts/mod.rs b/src/posts/mod.rs index 7f8e6c4..c75dd53 100644 --- a/src/posts/mod.rs +++ b/src/posts/mod.rs @@ -6,7 +6,7 @@ use std::collections::HashSet; use async_trait::async_trait; use chrono::{DateTime, Utc}; -use markdown::{mdast::Node, Constructs, Options, ParseOptions}; +use markdown::{mdast::Node, CompileOptions, Constructs, Options, ParseOptions}; use rocket::http::Status; use serde::{ser::SerializeStruct, Deserialize, Serialize}; use tokio::fs; @@ -22,7 +22,7 @@ enum PostType { #[derive(Debug)] pub struct Post<D: Content> { - // id: i64, + id: String, subject: Option<String>, created_at: DateTime<Utc>, updated_at: Option<DateTime<Utc>>, @@ -182,11 +182,15 @@ impl Content for Article { parse: ParseOptions { constructs: Constructs { frontmatter: true, - ..Constructs::default() + ..Constructs::gfm() }, ..ParseOptions::default() }, - ..Options::default() + compile: CompileOptions { + gfm_task_list_item_checkable: true, + allow_dangerous_html: true, + ..CompileOptions::default() + }, }; Ok(markdown::to_html_with_options(&buf, &options).unwrap()) } @@ -211,6 +215,7 @@ impl Post<Article> { }; Ok(Post { + id: article.name.to_owned(), subject: Some(metadata.title), created_at: metadata.created_at.parse::<DateTime<Utc>>()?, updated_at, |