about summary refs log tree commit diff
path: root/splorm/src/handler/quark/mod.rs
diff options
context:
space:
mode:
authorgennyble <gen@nyble.dev>2026-10-01 02:29:03 -0500
committergennyble <gen@nyble.dev>2026-10-01 02:29:03 -0500
commitffc831fa44274d4fd6cb9c30fa34e25e590cff44 (patch)
tree97ec56af8efca04b2c19fcd80ff9d72cb86678d2 /splorm/src/handler/quark/mod.rs
parent7513c3f9067a0916786bf8f852432d17d5db4f1e (diff)
splorm: opengraph using frontmatter
Diffstat (limited to 'splorm/src/handler/quark/mod.rs')
-rw-r--r--splorm/src/handler/quark/mod.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/splorm/src/handler/quark/mod.rs b/splorm/src/handler/quark/mod.rs
index 815bf2b..f7160d4 100644
--- a/splorm/src/handler/quark/mod.rs
+++ b/splorm/src/handler/quark/mod.rs
@@ -6,6 +6,8 @@ mod api;
 pub mod index;
 mod markup;
 
+pub use markup::PageFrontmatter;
+
 use std::{str::FromStr, sync::Arc};
 
 use axum::{
@@ -28,7 +30,7 @@ use crate::{
 	config::Settings,
 	extractor::Wrap,
 	fs::{self, RequestPath, SafePath},
-	handler::temporary_redirect,
+	handler::{quark::markup::Source, temporary_redirect},
 	state::SplormState,
 };
 
@@ -144,14 +146,19 @@ async fn page_edit(
 	let edit = fs::read_file_to_string(rp.system_path()).await?;
 	let mut page_template = open_template(&edit, rp.system_path(), &settings).await?;
 
-	let src = match wik.source(&page).await {
+	let src = match Source::from_wik(wik, &page).await {
 		//FIXME: Make a variant for unfound wiki pages
 		Err(_e) => return Err(RuntimeError::Generic404),
 		Ok(src) => src,
 	};
 
 	page_template.set("page-editing", page);
-	page_template.set("page-content", src.data);
+	page_template.set("page-content", src.content());
+
+	match src.frontmatter().description() {
+		Some(desc) => page_template.set("og-description", desc),
+		None => page_template.set("og-description", ""),
+	}
 
 	template.set("mainClass", "main-create");
 	template.set("quarkForm", "true");