aboutsummaryrefslogtreecommitdiff
path: root/src/templates.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/templates.rs')
-rw-r--r--src/templates.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/templates.rs b/src/templates.rs
new file mode 100644
index 0000000..bb285fa
--- /dev/null
+++ b/src/templates.rs
@@ -0,0 +1,35 @@
+use std::borrow::Cow;
+
+use askama::Template;
+
+use crate::state::State;
+
+#[derive(Template)]
+#[template(path = "index.html")]
+pub struct Index<'a> {
+ pub state: &'a State,
+}
+
+#[derive(Template)]
+#[template(path = "about.html")]
+pub struct About<'a> {
+ pub path: &'a str,
+ pub readme: Cow<'a, str>,
+}
+
+mod filters {
+ pub fn markdown(s: &str) -> ::askama::Result<String> {
+ use pulldown_cmark::{Parser, Options, html};
+
+ let mut options = Options::empty();
+ options.insert(Options::ENABLE_STRIKETHROUGH);
+ options.insert(Options::ENABLE_SMART_PUNCTUATION);
+ let parser = Parser::new_ext(s, options);
+
+ let mut result = String::new();
+ html::push_html(&mut result, parser);
+
+ // TODO mark as safe automatically
+ Ok(result)
+ }
+}