Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/obsidiansystems/hs-openmoji-data
OpenMoji for Haskell
https://github.com/obsidiansystems/hs-openmoji-data
emoji haskell openmoji
Last synced: 24 days ago
JSON representation
OpenMoji for Haskell
- Host: GitHub
- URL: https://github.com/obsidiansystems/hs-openmoji-data
- Owner: obsidiansystems
- License: bsd-3-clause
- Created: 2020-12-28T22:21:25.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-01-26T15:01:13.000Z (12 months ago)
- Last Synced: 2024-12-24T21:35:12.099Z (28 days ago)
- Topics: emoji, haskell, openmoji
- Language: Haskell
- Homepage:
- Size: 266 KB
- Stars: 2
- Watchers: 16
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.lhs
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
hs-openmoji-data
================
[![Built with Nix](https://img.shields.io/static/v1?logo=nixos&logoColor=white&label=&message=Built%20with%20Nix&color=41439a)](https://nixos.org) [![Haskell](https://img.shields.io/badge/language-Haskell-orange.svg)](https://haskell.org) [![Hackage](https://img.shields.io/hackage/v/hs-openmoji-data.svg)](https://hackage.haskell.org/package/hs-openmoji-data) [![Github CI](https://github.com/obsidiansystems/hs-openmoji-data/workflows/github-action/badge.svg)](https://github.com/obsidiansystems/hs-openmoji-data/actions) [![BSD3 License](https://img.shields.io/badge/license-BSD3-blue.svg)](https://github.com/obsidiansystems/hs-openmoji-data/blob/master/LICENSE)The OpenMoji emoji dataset for use in Haskell programs.
For emoji fonts, images, and spritesheets, please consult the documentation at [openmoji.org](https://openmoji.org/).
* [Updating the emojis](#updating-the-emojis)
* [Versioning](#versioning)
* [Example Usage](#example-usage)
* [About the Emojis](#about-the-emojis)Updating the emojis
-------------------Use [nix-thunk](https://github.com/obsidiansystems/nix-thunk) to update the pinned version of openmoji and then use the generator script to produce a new `Data.hs` file:
```bash
nix-thunk update ./openmoji
./gen.sh
```Versioning
-------------------Versions of this package should correspond to the OpenMoji version number used to generate the data.
Example Usage
-------------------```haskell
> {-# Language LambdaCase #-}
> {-# Language OverloadedStrings #-}
>
> import Control.Monad
> import Data.Map (Map)
> import qualified Data.Map as Map
> import Data.Text (Text)
> import qualified Data.Text as T
> import System.Environment
> import Text.Emoji (emojiFromAlias)
> import Text.Emoji.OpenMoji.Data
> import Text.Emoji.OpenMoji.Types
>
> emojiMap :: Map Text OpenMoji
> emojiMap = Map.fromList $ map (\x -> (_openMoji_emoji x, x)) openmojis
>
> main :: IO ()
> main = do
> requestedAliases <- getArgs
> when (null requestedAliases) $
> putStrLn "Please search for at least one emoji alias (e.g., \"bricks\")"
> forM_ requestedAliases $ \alias ->
> case (\e -> Map.lookup e emojiMap) =<< emojiFromAlias (T.pack alias) of
> Nothing -> putStrLn $ "Results for '" <> alias <> "': None"
> Just openmoji -> do
> putStrLn $ "Results for '" <> alias <> "':"
> printOpenMojiInfo openmoji
>
> versionedSvg :: Text -> Text -> Text
> versionedSvg rev hex = mconcat
> [ "https://raw.githubusercontent.com/hfg-gmuend/openmoji/"
> , rev
> , "/color/svg/"
> , hex
> , ".svg"
> ]
>
> pinnedRevision :: Text
> pinnedRevision = "4a80b536eb62a78822548a2aa371426f912d7e9d" -- v13
>
> printOpenMojiInfo :: OpenMoji -> IO ()
> printOpenMojiInfo o = putStrLn $ T.unpack $ T.unlines
> [ "Emoji: " <> _openMoji_emoji o
> , "Hexcode: " <> _openMoji_hexcode o
> , "Annotation: " <> _openMoji_annotation o
> , "Group: " <> _openMoji_group o
> , "Sub-Group: " <> _openMoji_subgroups o
> , "Tags: " <> T.intercalate ", " (_openMoji_tags o)
> , "SVG: " <> versionedSvg pinnedRevision (_openMoji_hexcode o)
> ]```
This program will do something like the following:
```
Results for 'bricks':
Emoji: 🧱
Hexcode: 1F9F1
Annotation: brick
Group: travel-places
Sub-Group: place-building
Tags: bricks, clay, mortar, wall
SVG: https://raw.githubusercontent.com/hfg-gmuend/openmoji/4a80b536eb62a78822548a2aa371426f912d7e9d/color/svg/1F9F1.svgResults for 'pilot':
Emoji: 🧑✈️
Hexcode: 1F9D1-200D-2708-FE0F
Annotation: pilot
Group: people-body
Sub-Group: person-role
Tags: plane
SVG: https://raw.githubusercontent.com/hfg-gmuend/openmoji/4a80b536eb62a78822548a2aa371426f912d7e9d/color/svg/1F9D1-200D-2708-FE0F.svg
```About the Emojis
-------------------All emojis designed by OpenMoji – the open-source emoji and icon project. License: CC BY-SA 4.0