text-icu-0.8.0.5: Bindings to the ICU library

Copyright | (c) 2018 Ondrej Palkovsky
License | BSD-style
Maintainer | bos@serpentine.com
Stability | experimental
Portability | GHC
Safe Haskell | None
Language | Haskell98

Data.Text.ICU.Shape

Description

Bindings for arabic shaping, implemented as bindings to the International Components for Unicode (ICU) libraries.

Synopsis

- shapeArabic :: [ShapeOption] -> Text -> Text
- data ShapeOption
  - = AggregateTaskheel
  - | DigitTypeAnExtended
  - | DigitsAlen2AnInitAl
  - | DigitsAlen2AnInitLr
  - | DigitsAn2En
  - | DigitsEn2An
  - | LengthFixedSpacesAtBeginning
  - | LengthFixedSpacesAtEnd
  - | LengthFixedSpacesNear
  - | LettersShape
  - | LettersUnshape
  - | LettersShapeTashkeelIsolated
  - | PreservePresentation
  - | TextDirectionVisualLTR

# Documentation

shapeArabic :: [ShapeOption] -> Text -> Text Source #

Shape Arabic text on a character basis.

Text-based shaping means that some character codepoints in the text are replaced by others depending on the context. It transforms one kind of text into another. In comparison, modern displays for Arabic text select appropriate, context-dependent font glyphs for each text element, which means that they transform text into a glyph vector.

You probably want to call this with the LettersShape option in the default case.

data ShapeOption Source #

Options for the `shapeArabic` function.

Constructors

AggregateTaskheel | Tashkeel aggregation option: Replaces any combination of U+0651 with one of U+064C, U+064D, U+064E, U+064F, U+0650 with U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 consecutively.
DigitTypeAnExtended | Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9).
DigitsAlen2AnInitAl | Replace European digits (U+0030...) by Arabic-Indic digits if the most recent strongly directional character is an Arabic letter (u_charDirection() result U_RIGHT_TO_LEFT_ARABIC [AL]).
DigitsAlen2AnInitLr | Digit shaping option: Replace European digits (U+0030...) by Arabic-Indic digits if the most recent strongly directional character is an Arabic letter (u_charDirection() result U_RIGHT_TO_LEFT_ARABIC [AL]).
DigitsAn2En | Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...).
DigitsEn2An | Digit shaping option: Replace European digits (U+0030...) by Arabic-Indic digits.
LengthFixedSpacesAtBeginning | If more room is necessary, then try to consume spaces at the beginning of the text.
LengthFixedSpacesAtEnd | If more room is necessary, then try to consume spaces at the end of the text.
LengthFixedSpacesNear | If more room is necessary, then try to consume spaces next to modified characters.
LettersShape | Letter shaping option: replace abstract letter characters by "shaped" ones.
LettersUnshape | Letter shaping option: replace "shaped" letter characters by abstract ones.
LettersShapeTashkeelIsolated | The only difference with LettersShape is that Tashkeel letters are always "shaped" into the isolated form instead of the medial form (selecting codepoints from the Arabic Presentation Forms-B block).
PreservePresentation | Presentation form option: Don't replace Arabic Presentation Forms-A and Arabic Presentation Forms-B characters with 0+06xx characters, before shaping.
TextDirectionVisualLTR | Direction indicator: the source is in visual LTR order, the leftmost displayed character stored first.

#### Instances

Instances details

Show ShapeOption Source # |
Instance details Defined in Data.Text.ICU.Shape Methods showsPrec :: Int -> ShapeOption -> ShowS Source # show :: ShapeOption -> String Source # showList :: [ShapeOption] -> ShowS Source #