# Revision history for Balkón ## 1.0.0.0 -- TBD * Added new `Data.Text.ParagraphLayout.Rich` interface to support rich text. * Supports multiple fonts in the same paragraph. Where line height varies, text will be aligned by its top edge. * Requires user to set base text direction (LTR or RTL). * Moved existing plain text interface into `Data.Text.ParagraphLayout.Plain` submodule and marked it as deprecated. * Marked `Data.Text.ParagraphLayout.ParagraphConstruction` as deprecated. * Input text spans can now have arbitrary user data attached to them. All related data types (`Paragraph`, `Span`, `Fragment`, `SpanLayout`, `ParagraphLayout`) have been extended with a type variable. * Future-proofed `ParagraphOptions` and `SpanOptions` by hiding their constructors. Use `defaultParagraphOptions` and `defaultSpanOptions` instead. * Added line numbers to laid out fragments. ## 0.3.0.1 -- TBD * Increased font size for the "shaped runs" output so that it better fits a window with 640 pixels of width. * Fixed compatibility with base < 4.15. ## 0.3.0.0 -- 2023-04-13 * Added partial support for bidirectional text (LTR and RTL in the same paragraph). * The paragraph direction is assumed to be LTR. This will be configurable in a future interface. * Only strong directional characters are used to determine text direction. * The direction of weak directional characters and neutral characters is determined by the nearest preceding strong directional character, or if none is found, the nearest following strong directional character. * Explicit bidirectional formatting characters are ignored. * Exposed functions to allow verification of correct input text slicing: `paragraphSpanBounds`, `paragraphSpanTexts`, and `paragraphText`. ## 0.2.1.0 -- 2023-04-04 * Added pagination. ## 0.2.0.0 -- 2023-03-28 * Added support for forced (hard) line breaks in the input text. * Now also trimming white space at the beginning of lines. * Internally, language tags will be cut at the first invalid character before being passed to ICU. * Tests will generate output in "shaped runs" format which can be passed to a text rendering application. ## 0.1.0.0 -- 2023-03-13 * Text shaping using HarfBuzz. * Breaking text on line and character boundaries using the International Components for Unicode (ICU) library. * Trimming white space at the end of lines. * Calculation of containing block bounds and fragment bounds. * Support for plain text (single font and line height) in one horizontal direction (LTR or RTL). * Input can be divided into spans. This division will be preserved in the output. * Each span can use a different language for text shaping and line breaking.