mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-07 15:45:59 +00:00
The user can set a maximum length of the item notes to display in each card. If set to 0, it is hidden.
62 lines
1.0 KiB
Elm
62 lines
1.0 KiB
Elm
module Util.String exposing
|
|
( crazyEncode
|
|
, ellipsis
|
|
, isBlank
|
|
, isNothingOrBlank
|
|
, underscoreToSpace
|
|
, withDefault
|
|
)
|
|
|
|
import Base64
|
|
|
|
|
|
crazyEncode : String -> String
|
|
crazyEncode str =
|
|
let
|
|
b64 =
|
|
Base64.encode str
|
|
in
|
|
case String.right 2 b64 |> String.toList of
|
|
'=' :: '=' :: [] ->
|
|
String.dropRight 2 b64 ++ "0"
|
|
|
|
_ :: '=' :: [] ->
|
|
String.dropRight 1 b64 ++ "1"
|
|
|
|
_ ->
|
|
b64
|
|
|
|
|
|
ellipsis : Int -> String -> String
|
|
ellipsis len str =
|
|
if String.length str <= len then
|
|
str
|
|
|
|
else
|
|
String.left (len - 1) str ++ "…"
|
|
|
|
|
|
withDefault : String -> String -> String
|
|
withDefault default str =
|
|
if str == "" then
|
|
default
|
|
|
|
else
|
|
str
|
|
|
|
|
|
underscoreToSpace : String -> String
|
|
underscoreToSpace str =
|
|
String.replace "_" " " str
|
|
|
|
|
|
isBlank : String -> Bool
|
|
isBlank s =
|
|
s == "" || (String.trim s == "")
|
|
|
|
|
|
isNothingOrBlank : Maybe String -> Bool
|
|
isNothingOrBlank ms =
|
|
Maybe.map isBlank ms
|
|
|> Maybe.withDefault True
|