1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# 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.