Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hapytex/unicode-tricks
Functions to work with unicode characters.
https://github.com/hapytex/unicode-tricks
characters haskell string unicode unicode-characters
Last synced: 2 months ago
JSON representation
Functions to work with unicode characters.
- Host: GitHub
- URL: https://github.com/hapytex/unicode-tricks
- Owner: hapytex
- License: bsd-3-clause
- Created: 2020-04-02T15:54:18.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-08-15T16:24:13.000Z (over 1 year ago)
- Last Synced: 2024-11-21T09:46:53.293Z (3 months ago)
- Topics: characters, haskell, string, unicode, unicode-characters
- Language: Haskell
- Homepage: https://hackage.haskell.org/package/unicode-tricks
- Size: 13.1 MB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# unicode-tricks
[![Build Status of the package by GitHub actions](https://github.com/hapytex/unicode-tricks/actions/workflows/build-ci.yml/badge.svg)](https://github.com/hapytex/unicode-tricks/actions/workflows/build-ci.yml)
[![Build Status of the package by Hackage](https://matrix.hackage.haskell.org/api/v2/packages/unicode-tricks/badge)](https://matrix.hackage.haskell.org/#/package/unicode-tricks)
[![Hackage version badge](https://img.shields.io/hackage/v/unicode-tricks.svg)](https://hackage.haskell.org/package/unicode-tricks)Based on the [**`unicode`** package](https://hackage.haskell.org/package/unicode) by *Henning Thielemann*.
This library aims to provide functionality to make working with certain blocks of
unicode characters more effective.Currently the package contains the following modules:
- **`Data.Char.Core`**: a module that defines common data structures;
- **`Data.Char.BallotBox`**: rendering boxes that are empty, with a checkmark, or a cross;
- **`Data.Char.Block`**: rendering a 2-by-2 block by a matrix of `Bool`s;
- **`Data.Char.Block.Sextant`**: render blocks that consists out of a 3 × 2 raster;
- **`Data.Char.Brackets`**: determine if a character is a bracket, and find the corresponding bracket;
- **`Data.Char.Braille`**: a module to render Braille characters with six or eight dot cells;
- **`Data.Char.Card`**: a module to work with playing cards;
- **`Data.Char.Chess`**: a module to render chess pieces (and some variants) in unicode;
- **`Data.Char.Control`**: a module that visualizes *control characters*;
- **`Data.Char.Combining`**: combine a character with a (sequence of) *combining* characters (diacritics, geometrical shapes, etc.);
- **`Data.Char.Currency`**: translate currencies to Unicode characters and vice versa;
- **`Data.Char.Dice`**: a module to render die unicode characters;
- **`Data.Char.Domino`**: a module to render domino unicode characters;
- **`Data.Char.Egyptian`**: a module that defines pattern synonyms for ancient Egyptian hieroglyphs;
- **`Data.Char.Emoji.*`**: modules that provide functions to render *emoji* characters (flags, objects, persons, etc.);
- **`Data.Char.Enclosed`**: functions to convert alphanumerical characters to characters where these are enclosed by circles, squares, parenthesis, etc.;
- **`Data.Char.Frame`**: typesetting frame elements. Lines of the frames can be `Light` or `Heavy`, and there are additional options to use arcs for corners;
- **`Data.Char.Math.*`**: a set of modules to render mathematical symbols and text, for example in *Fraktur*, *Blackboard bold*, etc.
- **`Data.Char.Number.Duodecimal`**: a module to work with [duodecimal numbers](https://en.wikipedia.org/wiki/Duodecimal);
- **`Data.Char.Number.Egyptian`**: a module to render [ancient Egyptian numerals](https://en.wikipedia.org/wiki/Egyptian_numerals);
- **`Data.Char.Number.Mayan`**: a module to render [Mayan numerals](https://en.wikipedia.org/wiki/Maya_numerals);
- **`Data.Char.Number.Roman`**: a module to render [Roman numerals](https://en.wikipedia.org/wiki/Roman_numerals);
- **`Data.Char.Number.Segmented`**: a module to render numbers on a [seven-segment display](https://en.wikipedia.org/wiki/Seven-segment_display);
- **`Data.Char.Number.Tally`**: a module to render [(Western) tally marks](https://en.wikipedia.org/wiki/Tally_marks);
- **`Data.Char.Number.VulgarFraction`**: a module to use *vulgar fractions* defined in the Unicode standard;
- **`Data.Char.Private`**: characters belonging to the *private usage area*;
- **`Data.Char.Private.Klingon`**: Klingon script characters;
- **`Data.Char.Small`**: making use of subscript and superscript in unicode, and for example formatting `Ratio` objects; and
- **`Data.Char.Tag`**: a unicode block that is used as emoji modifiers for regional flags.## `unicode-tricks` is *safe* Haskell
The modules are marked with the `{-# LANGUAGE Safe #-}` pragma, it thus provides
guarantees, for example about not using [`unsafePerformIO`](https://begriffs.com/posts/2015-05-24-safe-haskell.html).## Contribute
You can contribute by making a pull request on the [*GitHub
repository*](https://github.com/hapytex/unicode-tricks).You can contact the package maintainer by sending a mail to
[`[email protected]`](mailto:[email protected]).Contributors:
- [`@wismill`](https://github.com/wismill) found a bug and added tests for the
`Data.Char.Math` as well as the `Data.Char.Number.Segmented` module.