aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/handlers/mod.rs1
-rw-r--r--src/handlers/tailwind.rs22
-rw-r--r--src/main.rs2
3 files changed, 25 insertions, 0 deletions
diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs
index dba9275..01811e3 100644
--- a/src/handlers/mod.rs
+++ b/src/handlers/mod.rs
@@ -18,6 +18,7 @@ pub mod feeds;
pub mod gallery;
pub mod streams;
pub mod talks;
+pub mod tailwind;
fn weekday_to_name(w: Weekday) -> &'static str {
use Weekday::*;
diff --git a/src/handlers/tailwind.rs b/src/handlers/tailwind.rs
new file mode 100644
index 0000000..621565a
--- /dev/null
+++ b/src/handlers/tailwind.rs
@@ -0,0 +1,22 @@
+use std::sync::Arc;
+use axum::response::IntoResponse;
+use axum::{Extension, extract::Path};
+use encre_css::Config;
+use http::{HeaderMap, header};
+use crate::app::State;
+use super::blog;
+
+#[instrument(skip(state, headers))]
+pub async fn post_view(
+ Path(name): Path<String>,
+ Extension(state): Extension<Arc<State>>,
+ headers: HeaderMap,
+) -> impl IntoResponse {
+ let mut config = Config::default();
+
+ encre_css_typography::register(&mut config);
+
+ let (_code, body) = blog::post_view(Path(name), Extension(state), headers).await.unwrap();
+
+ ([(header::CONTENT_TYPE, "text/css")], encre_css::generate([body.0.as_str()], &config))
+}
diff --git a/src/main.rs b/src/main.rs
index 90f8fba..dbb7ab6 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -169,6 +169,8 @@ async fn main() -> Result<()> {
.route("/talks/:name", get(handlers::talks::post_view))
// junk google wants
.route("/sitemap.xml", get(handlers::feeds::sitemap))
+ // tailwind for Xedium
+ .route("/.within/css/blog/:name", get(handlers::tailwind::post_view))
// static files
.nest_service("/static", files)
.fallback(handlers::not_found)