aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r--src/Text/Pandoc/Emoji.hs14
-rw-r--r--src/Text/Pandoc/Emoji/TH.hs40
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"