~jaro/balkon

ref: 547bbaac70f5801bf106ec771019a3672404efe3 balkon/CHANGELOG.md -rw-r--r-- 2.7 KiB
547bbaacJaro Implement finding box edges. 11 months ago

#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.