Commit 650589a4 authored by Nicolas Lenz's avatar Nicolas Lenz

Add smallcaps style.

parent 0ee2b62b
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE OverloadedStrings, LambdaCase #-}
module Mock (styles, mockAlternate, mockRandom, letterspace, toDouble) where
......@@ -24,6 +24,7 @@ styles = [
("lower", T.toLower),
("double", T.map toDouble),
("dedouble", T.map fromDouble),
("smallcaps", T.map toSmallCap),
("cc", mockCC),
("b", mockB),
("square", mockSquare)]
......@@ -77,6 +78,35 @@ fromDouble c = case ord c of
| 120146 <= code && code <= 120171 -> chr $ code - 120146 + 97
code -> chr code
toSmallCap :: Char -> Char
toSmallCap = \case
'a' -> chr 7424
'b' -> chr 665
'c' -> chr 7428
'd' -> chr 7429
'e' -> chr 7431
'f' -> chr 42800
'g' -> chr 610
'h' -> chr 668
'i' -> chr 618
'j' -> chr 7434
'k' -> chr 7435
'l' -> chr 671
'm' -> chr 7437
'n' -> chr 628
'o' -> chr 7439
'p' -> chr 7448
'q' -> chr 491
'r' -> chr 640
's' -> chr 42801
't' -> chr 7451
'u' -> chr 7452
'v' -> chr 7456
'w' -> chr 7457
'y' -> chr 655
'z' -> chr 7458
c -> c
-- |Replaces all occurences of lowercase "ck" and "k" in a string with "cc"s.
mockCC :: T.Text -> T.Text
mockCC = T.replace "k" "cc" . T.replace "ck" "cc"
......
......@@ -17,6 +17,7 @@ styleHelp styleName = case styleName of
"lower" -> "Turns all characters into lowercase ones."
"double" -> "Turns characters (latin letters and numbers) into their double-struck variants (𝕖𝕩𝕒𝕞𝕡𝕝𝕖). Also known as blackboard bold."
"dedouble" -> "Turns double-struck characters (like from the \"double\" style) back into normal ones."
"smallcaps" -> "Turns lowercase letters into small capitals."
"cc" -> "Replaces all occurences of lowercase \"c\", \"ck\" and \"k\" with \"cc\"."
"b" -> "Replaces all occurences of Bs (lower- and uppercase) with B-button emojis (🅱)."
"square" -> "Shows the input spaced in the first line and the tail of the input lined afterwards."
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment