diff options
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r-- | src/Text/Pandoc/Emoji.hs | 14 | ||||
-rw-r--r-- | src/Text/Pandoc/Emoji/TH.hs | 40 |
2 files changed, 7 insertions, 47 deletions
diff --git a/src/Text/Pandoc/Emoji.hs b/src/Text/Pandoc/Emoji.hs index 823f9450d..fe56dd356 100644 --- a/src/Text/Pandoc/Emoji.hs +++ b/src/Text/Pandoc/Emoji.hs @@ -14,14 +14,14 @@ Emoji symbol lookup from canonical string identifier. -} module Text.Pandoc.Emoji ( emojis, emojiToInline ) where import Prelude -import qualified Data.Map as M -import qualified Data.Text as T +import qualified Text.Emoji as E import Text.Pandoc.Definition (Inline (Span, Str)) -import Text.Pandoc.Emoji.TH (genEmojis) +import Data.Text (Text) +import qualified Data.Map as M -emojis :: M.Map T.Text T.Text -emojis = M.fromList $(genEmojis "emoji.json") +emojis :: M.Map Text Text +emojis = M.fromList E.emojis -emojiToInline :: T.Text -> Maybe Inline -emojiToInline emojikey = makeSpan <$> M.lookup emojikey emojis +emojiToInline :: Text -> Maybe Inline +emojiToInline emojikey = makeSpan <$> E.emojiFromAlias emojikey where makeSpan = Span ("", ["emoji"], [("data-emoji", emojikey)]) . (:[]) . Str diff --git a/src/Text/Pandoc/Emoji/TH.hs b/src/Text/Pandoc/Emoji/TH.hs deleted file mode 100644 index bf3ed0c16..000000000 --- a/src/Text/Pandoc/Emoji/TH.hs +++ /dev/null @@ -1,40 +0,0 @@ -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE TemplateHaskellQuotes #-} -{- | - Module : Text.Pandoc.Emoji.TH - Copyright : Copyright (C) 2019 John MacFarlane - License : GNU GPL, version 2 or above - - Maintainer : John MacFarlane <jgm@berkeley.edu> - Stability : alpha - Portability : portable - -Code generation for emoji list in Text.Pandoc.Emoji. --} -module Text.Pandoc.Emoji.TH ( genEmojis ) where -import Prelude -import Data.Aeson -import qualified Data.ByteString.Lazy as B -import Language.Haskell.TH -import Language.Haskell.TH.Syntax (addDependentFile) - -genEmojis :: FilePath -> Q Exp -genEmojis fp = do - addDependentFile fp - bs <- runIO $ B.readFile fp - case eitherDecode bs of - Left e -> error e - Right (emoji :: [Emoji]) -> [| emojis |] - where emojis = [ (alias, txt) - | Emoji txt aliases <- emoji - , alias <- aliases - ] - -data Emoji = Emoji String [String] - deriving Show - -instance FromJSON Emoji where - parseJSON = withObject "Emoji" $ \v -> Emoji - <$> v .: "emoji" - <*> v .: "aliases" |