From d7dcf0acf5df85cf76b4cd1df85547a846b175dd Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Mon, 24 Feb 2025 15:34:04 +0100 Subject: [PATCH] fix(widgets): fix erroneous whitespace in name widget --- src/Handler/Utils/Widgets.hs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Handler/Utils/Widgets.hs b/src/Handler/Utils/Widgets.hs index a9430257a..9012262e6 100644 --- a/src/Handler/Utils/Widgets.hs +++ b/src/Handler/Utils/Widgets.hs @@ -1,4 +1,4 @@ --- SPDX-FileCopyrightText: 2022 Gregor Kleen ,Winnie Ros +-- SPDX-FileCopyrightText: 2022-25 Gregor Kleen ,Winnie Ros ,Steffen Jost -- -- SPDX-License-Identifier: AGPL-3.0-or-later @@ -99,14 +99,14 @@ nameHtml displayName surname in [shamlet|$newline never #{prefix} # #{surname} - \ #{suffix} + #{withLeadingSpace suffix} |] | (suffix:prefixes) <- reverse $ T.splitOn (fullyNormalize surname) (fullyNormalize displayName), notNull prefixes -> let prefix = T.intercalate surname $ reverse prefixes in [shamlet|$newline never #{prefix} # #{surname} - \ #{suffix} + #{withLeadingSpace suffix} |] | otherwise -> [shamlet|$newline never #{displayName} ( @@ -115,15 +115,21 @@ nameHtml displayName surname (suffix:prefixes) -> let prefix = T.intercalate surname $ reverse prefixes in [shamlet|$newline never - #{prefix} # + #{prefix} #{surname} - \ #{suffix} + #{withLeadingSpace suffix} |] [] -> error "Data.Text.splitOn returned empty list in violation of specification." where fullyNormalize :: Text -> Text fullyNormalize = T.toTitle . T.unwords . map text2asciiAlphaNum . T.words + withLeadingSpace :: Text -> Text + withLeadingSpace t + | T.null t = t + | Just (' ', _) <- T.uncons t = t + | otherwise = T.cons ' ' t + nameHtml' :: HasUser u => u -> Html nameHtml' u = nameHtml (u ^. _userDisplayName) (u ^. _userSurname)