summaryrefslogtreecommitdiff
path: root/src/generate_html.rs
diff options
context:
space:
mode:
authorBen Bridle <ben@derelict.engineering>2025-01-14 16:27:33 +1300
committerBen Bridle <ben@derelict.engineering>2025-01-14 16:27:33 +1300
commit26e5defb28cfae3ba7b3a3406c497757996b79c5 (patch)
treedb2b3743745568952749a30f926d4de5be9c4891 /src/generate_html.rs
parent6bec7be420aa070b903fa8c77b1c58c0259b1073 (diff)
downloadtoaster-26e5defb28cfae3ba7b3a3406c497757996b79c5.zip
Implement recipe parsing
Diffstat (limited to 'src/generate_html.rs')
-rw-r--r--src/generate_html.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/generate_html.rs b/src/generate_html.rs
index dd08885..19cf9a5 100644
--- a/src/generate_html.rs
+++ b/src/generate_html.rs
@@ -1,6 +1,7 @@
use crate::*;
use markdown::*;
+use recipe::*;
pub fn generate_html(document: &MarkdownDocument, page: &Page, website: &Website) -> String {
@@ -168,6 +169,14 @@ pub fn document_to_html(document: &MarkdownDocument, page: &Page, website: &Webs
"embed-css" => wrap!("style", html!("{content}")),
"embed-javascript"|"embed-js" => wrap!("script", html!("{content}")),
"hidden"|"todo"|"embed-html-head" => (),
+ "recipe" => {
+ let recipe = Recipe::parse(content);
+ html!("<div class='recipe'><ul>");
+ for ingredient in recipe.ingredients { html!("<li>{ingredient}</li>") }
+ html!("</ul><hr>");
+ for paragraph in recipe.process { html!("<p>{paragraph}</p>") }
+ html!("</div>");
+ },
_ => {
html!("<pre class='{}'>", language);
html!("{}", sanitize_text(content));