From 2b4c45be7460c4955b13b51641b36b4b02101a77 Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Thu, 10 Apr 2025 12:16:53 -0700 Subject: [PATCH] web: conditionally wrap title when large words found --- web/src/view/mod.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/web/src/view/mod.rs b/web/src/view/mod.rs index b9539e0..dd72429 100644 --- a/web/src/view/mod.rs +++ b/web/src/view/mod.rs @@ -1097,11 +1097,18 @@ fn thread( let unread_thread_id = thread.thread_id.clone(); let spam_add_thread_id = thread.thread_id.clone(); let spam_unread_thread_id = thread.thread_id.clone(); + let mut title_break = None; + const TITLE_LENGTH_WRAP_LIMIT: usize = 40; + for w in subject.split_whitespace() { + if w.len() > TITLE_LENGTH_WRAP_LIMIT { + title_break = Some(C!["break-all", "text-pretty"]); + } + } div![ C!["lg:p-4", "max-w-4xl"], div![ C!["p-4", "lg:p-0"], - h3![C!["text-xl", "break-all", "text-pretty"], subject], + h3![C!["text-xl"], title_break, subject], span![removable_tags_chiclet(&thread.thread_id, &tags)], IF!(!catchup_mode => div![ C!["pt-4", "gap-2", "flex", "justify-around"], @@ -1397,11 +1404,18 @@ fn news_post( ] } + let mut title_break = None; + const TITLE_LENGTH_WRAP_LIMIT: usize = 40; + for w in subject.split_whitespace() { + if w.len() > TITLE_LENGTH_WRAP_LIMIT { + title_break = Some(C!["break-all", "text-pretty"]); + } + } div![ C!["lg:p-4", "max-w-4xl"], div![ C!["p-4", "lg:p-0"], - h3![C!["text-xl", "break-all", "text-pretty"], subject], + h3![C!["text-xl"], title_break, subject], span![tag(format!("News/{}", post.slug))], IF!(!catchup_mode => div![ C!["pt-4", "gap-2", "flex", "justify-around"],