From 29832b3595a96dcec5bb60e3ab782c2080fb79ff Mon Sep 17 00:00:00 2001 From: Travis Herbranson Date: Mon, 25 May 2026 13:22:27 -0400 Subject: [PATCH] web: source cards wrap long titles/URLs instead of truncating MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Travis prefers the cards to auto-resize to their content rather than ellipsis-clip the title + URL into a single line. Two places use the same card markup — both updated: - src/second_brain/web/templates/index.html — main sources list. - src/second_brain/web/templates/_dashboard_body.html — recent activity on the dashboard. Changes are minimal and identical on both: - title h3/p: drop `truncate`, add `break-words` so normal long titles wrap at word boundaries. - URL p: drop `truncate`, add `break-all` because URLs are typically one unbreakable token and `break-words` alone wouldn't split them. - `min-w-0 flex-1` on the left container kept — it lets the flex child shrink so the right column's status / domain / timestamp badges stay pinned and never get pushed off-screen by a long URL. - The optional Focus line also gets `break-words` defensively. Verified live on the rebuilt web container: - /dashboard: 0 truncate hits in the response, RepoWise URL renders intact with break-all applied. - /?status=analyzed: 0 truncate hits, title + URL both carry the new wrap classes. --- src/second_brain/web/templates/_dashboard_body.html | 6 ++++-- src/second_brain/web/templates/index.html | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/second_brain/web/templates/_dashboard_body.html b/src/second_brain/web/templates/_dashboard_body.html index f1d34ec..dfc1133 100644 --- a/src/second_brain/web/templates/_dashboard_body.html +++ b/src/second_brain/web/templates/_dashboard_body.html @@ -189,9 +189,11 @@ {% for source in recent %} + {# Wrap long titles/URLs instead of truncating. min-w-0 + keeps the flex child shrinkable so badges stay aligned. #}
-

{{ source.title }}

-

{{ source.url }}

+

{{ source.title }}

+

{{ source.url }}

+ {# min-w-0 keeps this flex child shrinkable; break-words / break-all + make the text wrap inside instead of forcing the parent wider. #}
-

+

{{ source.title }}

-

{{ source.url }}

+

{{ source.url }}

{% if source.focus %} -

Focus: {{ source.focus }}

+

Focus: {{ source.focus }}

{% endif %}