aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2019-11-27 21:27:46 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2019-11-27 21:31:53 -0800
commit0d0ec98dd5657ac6679fc2cfb326601950e5c760 (patch)
tree490d416e250e9162fb8ff7d74b240a7e8c82c618 /tools
parentbd175d13b6004086ccd3862822f97c7f090cadb4 (diff)
downloadpandoc-0d0ec98dd5657ac6679fc2cfb326601950e5c760.tar.gz
Generate Emoji module with TH.
- Add Text.Pandoc.Emoji.TH. - Replace long literal list in Text.Pandoc.Emoji with one-liner generating it from data/emoji.json using TH. - Add Makefile target to download data/emoji.json. - Remove tools/emoji.hs.
Diffstat (limited to 'tools')
-rwxr-xr-xtools/emojis.hs36
1 files changed, 0 insertions, 36 deletions
diff --git a/tools/emojis.hs b/tools/emojis.hs
deleted file mode 100755
index 9926a9047..000000000
--- a/tools/emojis.hs
+++ /dev/null
@@ -1,36 +0,0 @@
--- Script to generate the list of emojis in T.P.Emoji.hs.
--- to run:
--- curl https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json -o emoji.json
--- stack script --resolver lts-13.17 --package aeson --package bytestring --package text --package containers tools/emojis.hs < emoji.json
-
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE OverloadedStrings #-}
-import Data.Aeson
-import qualified Data.ByteString.Lazy as B
-import Data.Text (Text)
-import Data.Map as M
-
-data Emoji = Emoji Text [Text]
- deriving Show
-
-instance FromJSON Emoji where
- parseJSON = withObject "Emoji" $ \v -> Emoji
- <$> v .: "emoji"
- <*> v .: "aliases"
-
-main :: IO ()
-main = do
- bs <- B.getContents
- case eitherDecode bs of
- Left e -> error e
- Right (emoji :: [Emoji]) -> do
- let emojis = M.fromList $
- [(alias, txt) | Emoji txt aliases <- emoji, alias <- aliases]
- putStrLn $ prettify $ dropWhile (/='[') $ show emojis
-
-prettify :: String -> String
-prettify [] = ""
-prettify ('[':xs) = '\n':' ':' ':'[':prettify xs
-prettify (']':xs) = '\n':' ':' ':']':prettify xs
-prettify (',':'(':xs) = '\n':' ':' ':',':'(':prettify xs
-prettify (x:xs) = x:prettify xs