~jaro/balkon

ref: 6685687e83285cecdd0d0fdcb17be462cc6ec0a2 balkon/CHANGELOG.md -rw-r--r-- 2.7 KiB
6685687eJaro Make paragraph direction explicit in tests. 1 year, 5 months ago
                                                                                
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.