blob: d7f1db41fcf4c6c9240ef3d6434f1fa1ebab1431 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
module Common.Util.Text
( search
, formatSearch
) where
import Data.Text (Text)
import qualified Data.Text as T
search :: Text -> Text -> Bool
search s t = (formatSearch s) `T.isInfixOf` (formatSearch t)
formatSearch :: Text -> Text
formatSearch = T.toLower . unaccent
unaccent :: Text -> Text
unaccent = T.map unaccentChar
unaccentChar :: Char -> Char
unaccentChar c = case c of
'à' -> 'a'
'á' -> 'a'
'â' -> 'a'
'ã' -> 'a'
'ä' -> 'a'
'ç' -> 'c'
'è' -> 'e'
'é' -> 'e'
'ê' -> 'e'
'ë' -> 'e'
'ì' -> 'i'
'í' -> 'i'
'î' -> 'i'
'ï' -> 'i'
'ñ' -> 'n'
'ò' -> 'o'
'ó' -> 'o'
'ô' -> 'o'
'õ' -> 'o'
'ö' -> 'o'
'š' -> 's'
'ù' -> 'u'
'ú' -> 'u'
'û' -> 'u'
'ü' -> 'u'
'ý' -> 'y'
'ÿ' -> 'y'
'ž' -> 'z'
_ -> c
|