Ce module fournit une chaîne d'outils pour disposer du texte. Il s'agit principalement d'un port des bibliothèques C HarfBuzz et Graphite.
Ce référentiel est une copie superficielle de https://github.com/benoitkugler/textlayout. Tous les crédits vont à Benoit Kugler et à d'autres (voir l'histoire détaillée).
En ce qui concerne V0.1.0, le contenu de ce référentiel a été divisé, avec un niveau supérieur, plus de packages expérimentaux sont passés à TextProcessing.
Les packages restants sont la logique plus stable et de bas niveau utilisée par le texte Go-Text.
En ce qui concerne V0.1.1, les fichiers de police utilisés uniquement pour les tests internes ont été déplacés dans un module séparé, afin que les versions régulières n'aient pas à télécharger ces fichiers volumineux (cela nécessite GO1.17 pour le chargement paresseux du module).
Les polices de package fournit les primitives de bas niveau pour charger et lire les fichiers de police. Une fois qu'une police est sélectionnée, HarfBuzz est responsable de la présentation d'une ligne de texte, qui transforme une séquence de points Unicode (runes) en une séquence de glyphes positionnés. Les polices en graphite sont prises en charge via le package Graphite. Une bibliothèque de niveau supérieur peut envelopper ces outils pour fournir une interface capable de présenter un texte entier.
Ce projet est un travail en cours. Certaines parties sont déjà utilisables: polices / trueType, harfbuzz et graphite, mais des changements de rupture peuvent être commis à la volée.
Ce module est fourni sous la licence MIT.