Allsorts est un analyseur de police, un moteur de mise en forme et un sous-ensemble pour OpenType, Woff et Woff2 entièrement écrit en rouille. Il a été extrait de Prince, un outil qui composit et présente des documents HTML et CSS en PDF.
Le moteur de mise en forme Allsorts a été développé en conjonction avec une spécification pour la mise en forme d'OpenType, qui vise à spécifier le comportement de mise en forme des polices OpenType.
glyf , CFF , CFF2 ), WOFF et WOFF2.La mise en forme des polices est le processus de prise de texte sous la forme de points de code Unicode et d'une police, et de disposition des glyphes de la police selon le texte. Cela implique d'honorer le grainage, les ligatures et les substitutions spécifiées par la police. Pour certaines langues, c'est relativement simple. Pour d'autres, comme les scripts indic, il est assez complexe. Après la mise en forme, une autre bibliothèque telle que Pathfinder ou Freetype est responsable du rendu des glyphes. Pour en savoir plus sur le rendu du texte, Andrea Cognolato a un bon aperçu de la police moderne sur Linux. Les concepts restent similaires sur d'autres plateformes.
Reportez-vous au référentiel d'outils Allsorts pour un ensemble d'outils qui exercent les analyses, la mise en forme et le sous-ensemble des polices AllSorts.
Nous ne soutenons pas actuellement:
Limites connues:
Allsorts est toujours en cours de développement actif, mais a atteint son étape de première version avec son inclusion dans Prince 13 en 2019. À Prince, il est responsable de tout le chargement des polices et de la mise en forme des polices.
Actuellement, le code d'analyse de police est manuscrit. Il est prévu pour que cela soit finalement remplacé par du code généré par la machine via notre projet de langage de définition de données déclaratifs.
ALLSORTS CI exécute des tests sur Linux, MacOS et Windows. Via Prince, il est également conçu pour FreeBSD.
Version de la rouille prise en charge minimale: 1.66.0
Pour construire la caisse, assurez-vous d'avoir une rouille 1,66.0 ou une nouvelle installée.
Construisez avec cargo build et exécutez les tests avec cargo test .
| Fonctionnalité | Description | Activé par défaut | Dépendances supplémentaires |
|---|---|---|---|
outline | Activer le code pour accéder aux contours de glyphes | ✅ | |
flate2_zlib | Utilisez le backend ZLIB pour faire l'objet | ✅ | zlib |
flate2_rust | Utilisez le backend de rouille pour faire l'objet d'un | miniz_oxide | |
prince | Activer les tests et le code spécifiques de Prince | ||
specimen | Activer le module pour générer des échantillons de police HTML | upon , unicode-blocks |
Remarque: Dans nos tests, le backend zlib flate2 était plus rapide, mais vous préférez peut-être le backend de rouille pour une solution de rouille pure lors de la compilation à WasM ou similaire.
Les contributions sont les bienvenues, veuillez vous référer au document contributif pour plus de détails.
Nous visons à respecter les normes communautaires de la rouille:
Nous nous engageons à fournir un environnement convivial, sûr et accueillant pour tous, quels que soient le sexe, l'orientation sexuelle, le handicap, l'ethnicité, la religion ou les caractéristiques personnelles similaires.
Nous suivons le code de conduite de la rouille.
Allsorts est distribué selon les termes de la licence Apache (version 2.0).
Voir la licence pour plus de détails.