1 leaves the target feature scope unclear. This issue is not a development plan or goal, but merely an attempt to add perspective on what/where the project is.
Unfortunately there are few clear dividing lines between features in terms of complexity, thus grouping of items here is somewhat arbitrary.
Basic features:
[x] Simple typesetting with kerning
[x] Line wrapping
[x] Basic alignment
[x] (Simple) justified text
Advanced text features:
[ ] Hyphenation
[ ] Advanced justified text: e.g. Arabic justification should increase inter-letter distance, extending the baseline
[x] Bi-directional text support: breaking into "level runs" and reordering
[x] Glyph mirroring
[x] Shaping
[ ] Rotated text (could be done downstream)
[ ] Vertical text support
[ ] Emot-icons
[ ] Shaper and formatting inter-mixing: supporting format changes within a shaped run
Font features:
[x] Font fallback
[ ] Font discovery: current approach is a hack ignoring system configuration
[x] Font face selection from family: done but sub-optimal API
[ ] Inter-paragraph spacing (beyond an empty line)
[ ] Tabs (basic implementation but too limited to call done)
[ ] Embedding: supporting arbitrary content embedded within text flow
[ ] Composibility: supporting text or complex content over multiple Text/TextDisplay objects (possibly better supported by a downstream library)
Non-text objects (likely beyond scope):
[ ] Horizontal rules
[ ] Tables
[ ] Quote background box
There is no desired scope or use-case, but it is very unlikely that all the above will be implemented. Notes:
Font discovery, font synthesis, variable font support, hinting and rastering are all complex features which will never be implemented in this crate (but may have API wrapping a foreign impl)
Unclear how to handle indentation/tabs and inter-paragraph spaces. Possibly allow formatting tokens to specify indent/v-skip?
1 leaves the target feature scope unclear. This issue is not a development plan or goal, but merely an attempt to add perspective on what/where the project is.
Unfortunately there are few clear dividing lines between features in terms of complexity, thus grouping of items here is somewhat arbitrary.
Basic features:
Advanced text features:
Font features:
Text interaction:
O(n)
text editingText formatting:
Text parsing is mostly orthogonal to other features; never-the-less having an easy way to construct formatted texts is useful:
Rendering is mostly out-of-scope, but some features are supported:
Layout:
Text
/TextDisplay
objects (possibly better supported by a downstream library)Non-text objects (likely beyond scope):
There is no desired scope or use-case, but it is very unlikely that all the above will be implemented. Notes: