Copyright | (c) 2015-2019 Aelve (c) 2019-2020 Kowainik |
---|---|
License | MPL-2.0 |
Maintainer | Kowainik <xrom.xkov@gmail.com> |
Safe Haskell | Safe |
Language | Haskell2010 |
Useful functions when writing your own link rules.
Synopsis
- replaceSpaces :: Char -> Text -> Text
- titleFirst :: Text -> Text
- tryStripPrefixCI :: Text -> Text -> Text
- stripPrefixCI :: Text -> Text -> Maybe Text
- orElse :: (Eq a, Monoid a) => a -> a -> a
- format :: FormatType r => Text -> r
- formatSlash :: FormatType r => r
Documentation
replaceSpaces :: Char -> Text -> Text Source #
Replace spaces in text with chosen character (useful when processing queries containing spaces – they are often turned into “+” or “_”).
>>>
replaceSpaces '_' "hi there"
"hi___there"
titleFirst :: Text -> Text Source #
Convert the 1st character of a string to upper case.
This function is dumber than it could've been; when the 1st character doesn't have a single-character uppercase form (like “ß”), it is left intact instead of being converted (“Ss” in the case of “ß”). This is good, however; for instance, if the “proper” capitalisation rule was applied to e.g. Wikipedia links, a link to the article on “ß” would've been rendered as “Ss”, which is a redirect to “Schutzstaffel”.
tryStripPrefixCI :: Text -> Text -> Text Source #
Strip given prefix from a string, or do nothing if the string doesn't have given prefix.
This function is case-insensitive.
>>>
tryStripPrefixCI "FOO" "FooBAR"
"BAR"
>>>
tryStripPrefixCI "foo" "quux"
"quux"
stripPrefixCI :: Text -> Text -> Maybe Text Source #
Strip given prefix from a string.
This function is case-insensitive.
>>>
stripPrefixCI "FOO" "FooBAR"
Just "BAR"
>>>
stripPrefixCI "foo" "quux"
Nothing
orElse :: (Eq a, Monoid a) => a -> a -> a Source #
Choose the 2nd value if the 1st is empty (equal to mempty
).
format :: FormatType r => Text -> r Source #
A printf
-like function which fully supports Text
as an input and
output format and which uses {}
instead of %
to indicate
placeholders. If you use it, don't forget to enable OverloadedStrings
.
This is a lightweight alternative to something like the text-format
package, and it's closer to printf
and simpler to use.
formatSlash :: FormatType r => r Source #