From fd8bfa43c0c20e4af195824ff95503e41ddb82e8 Mon Sep 17 00:00:00 2001 From: René Kijewski Date: Tue, 1 Feb 2022 15:01:17 +0100 Subject: Add markdown filter --- testing/Cargo.toml | 5 +++- testing/tests/markdown.rs | 75 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 testing/tests/markdown.rs (limited to 'testing') diff --git a/testing/Cargo.toml b/testing/Cargo.toml index 008b200..bd7bbc9 100644 --- a/testing/Cargo.toml +++ b/testing/Cargo.toml @@ -7,10 +7,13 @@ edition = "2018" publish = false [features] -default = ["serde_json", "askama/serde-json"] +default = ["serde-json", "markdown"] +serde-json = ["serde_json", "askama/serde-json"] +markdown = ["comrak", "askama/markdown"] [dependencies] askama = { path = "../askama", version = "0.11.0-beta.1" } +comrak = { version = "0.12", default-features = false, optional = true } serde_json = { version = "1.0", optional = true } [dev-dependencies] diff --git a/testing/tests/markdown.rs b/testing/tests/markdown.rs new file mode 100644 index 0000000..e0150f6 --- /dev/null +++ b/testing/tests/markdown.rs @@ -0,0 +1,75 @@ +#![cfg(feature = "markdown")] + +use askama::Template; +use comrak::{ComrakOptions, ComrakRenderOptions}; + +#[derive(Template)] +#[template(source = "{{before}}{{content|markdown}}{{after}}", ext = "html")] +struct MarkdownTemplate<'a> { + before: &'a str, + after: &'a str, + content: &'a str, +} + +#[test] +fn test_markdown() { + let s = MarkdownTemplate { + before: "before", + after: "after", + content: "* 1\n* \n* 3", + }; + assert_eq!( + s.render().unwrap(), + "\ +before\ +\n\ +after", + ); +} + +#[derive(Template)] +#[template( + source = "{{before}}{{content|markdown(options)}}{{after}}", + ext = "html" +)] +struct MarkdownWithOptionsTemplate<'a> { + before: &'a str, + after: &'a str, + content: &'a str, + options: &'a ComrakOptions, +} + +#[test] +fn test_markdown_with_options() { + let s = MarkdownWithOptionsTemplate { + before: "before", + after: "after", + content: "* 1\n* \n* 3", + options: &ComrakOptions { + render: ComrakRenderOptions { + unsafe_: true, + ..Default::default() + }, + ..Default::default() + }, + }; + assert_eq!( + s.render().unwrap(), + "\ +before\ +\n\ +after", + ); +} -- cgit