typesetting

module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 2, 2024 License: BSD-3-Clause, Unlicense

README

typesetting

This library provides typesetting capabilities in pure Go. It is appropriate for use in GUI applications, and is shared by multiple Go UI toolkits including Fyne, Gio, and Ebitengine.

Development cycle

This project, although already used in production by UI toolkits, still evolves rapidly. As such, the library uses unstable versions v0.x.y : the required breaking changes will bump the minor version number (x); the bug fixes and performance improvements the patch number (y).

Review guidelines

Go-text is a collaboration between many individuals and projects, it is important to us that designs and decisions are right for the broadest possible audience. As a result the project will always have 3 maintainers that represent different projects (currently Fyne.io, Gio and an independent developer).

API and Architectural decisions

Changes to any core go-text repositories (not including utility or generator repos) will require sign-off from at least 2 of these 3 maintainers to be approved. "typesetting" and "render" are currently considered core. Upon approval the second thumbs up will typically merge the change into the repository.

Decisions or API discussions are best carried out within the context of a GitHub issue or pull request for greatest visibility in the future.

Smaller changes and quality of life improvements

For speed of acceptance on smaller issues it is not always required to have complete consensus. When a change is deemed to be of minor impact (for example documentation corrections, trivial bug fixes and straight forward refactoring of content) an expedited review is supported. In this situation the contribution only requires a single approval (not from the individual proposing the change).

If in doubt please seek approval of two maintainers - and feel free to ask questions in the #go-text channel of gophers Slack server.

Directories

Path Synopsis
Package harfbuzz provides advanced text layout for various scripts and languages, with font-aware substitutions and positionning.
Package harfbuzz provides advanced text layout for various scripts and languages, with font-aware substitutions and positionning.
opentype
api
Package font provides an high level API to access Opentype font properties.
Package font provides an high level API to access Opentype font properties.
api/font/cff/interpreter
Package psinterpreter implement a Postscript interpreter required to parse .CFF files, and Type1 and Type2 Charstrings.
Package psinterpreter implement a Postscript interpreter required to parse .CFF files, and Type1 and Type2 Charstrings.
loader
Package opentype provides the low level routines required to read Opentype font files, including collections.
Package opentype provides the low level routines required to read Opentype font files, including collections.
Package segmenter implements Unicode rules used to segment a paragraph of text according to several criteria.
Package segmenter implements Unicode rules used to segment a paragraph of text according to several criteria.
Package unicodedata provides additional lookup functions for unicode properties, not covered by the standard package unicode.
Package unicodedata provides additional lookup functions for unicode properties, not covered by the standard package unicode.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL