XL-Fontload
Réseautage de polices chinoises. Coupez la police en fonction de la fréquence des mots et effectuez un chargement paresseux à travers l'extrémité avant. Aucun support du programme backend n'est requis.
- Fichier de la fréquence des mots (Word-Frequency.csv) Fichier de démonstration Source: Ministère de l'éducation
- Répertorie les polices de conversion. Lieux dans les polices / répertoires, avec une structure non conventionnelle. Recherche automatiquement toutes les archives de fin .TTF.
- Pour chaque police:
- Énumérez tous les caractères pris en charge
- Parmi eux, cinq cents caractères, des marques de ponctuation, des lettres anglaises, des chiffres, etc. sont couramment utilisées comme premier fichier de police.
- Ensuite, si les caractères restants apparaissent dans le tableau de fréquence des mots, un fichier de caractères sera formé en fonction de chaque cent caractères de la fréquence des mots.
- Les caractères non corrélés restants sont formés en fichier de police pour chaque cent caractères.
- Tous les fichiers de police sont placés dans le même répertoire et les noms de fichiers sont séparés par des numéros.
- Tableau de correspondance de code de fichier mot de sortie / Police pour la vérification rapide de la fin frontale.
Utilisation / compilateur
Ce projet utilise NodeJS. Veuillez d'abord installer NodeJS et NPM et utilisez NPM Installer pour construire le répertoire Node_Modules. Instructions de référence:
curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
npm install
Organisez les polices que vous souhaitez convertir en polices / répertoires, avec la structure du répertoire sans restriction. Le programme analysera automatiquement tous les fichiers de police.
- Actuellement, seul le TTF est consommé ~ froid.
Préparer le fichier de police Word-Frequency.csv
Exécuter le convertisseur compile.sh
Le fichier de police est sorti dans les actifs / répertoires.
Utilisation / frontend
Méthode d'utilisation de base:
xfl.load("http://path/to/scattered/font/folder/", options, function(font) {
font.sync(stringToDisplay);
})
Exemples de polices de chargement dynamiquement basées sur du contenu instantané:
/* assume we have "textarea" variable to be an input box accepting user input */
xfl.load("http://path/to/scattered/font/folder/", options, function(font) {
textarea.addEventListener("keyup", function() {
font.sync(textarea.value);
});
})
Si vous ne prévoyez pas de faire votre propre fichier de police, vous pouvez utiliser un ensemble de fichiers de police que nous avons préparés via les pages GitHub. L'emplacement de la bibliothèque du projet est là. Si vous souhaitez l'utiliser, vous pouvez utiliser ce site Web: http://plotdb.github.io/xl-fontset/alpha/<font name>, par exemple:
xfl.load("http://plotdb.github.io/xl-fontset/alpha/瀨戶字体", function(font) { ...
Veuillez modifier "<nom de police>" dans la police que vous souhaitez utiliser. Une liste des polices actuellement prises en charge peut être trouvée ici, notamment les polices Wang Hanzong 42, les sculptures en pierre, Station Cool, CWText-Q, Seto Fonts, etc., un total de 57 polices.
Il convient de noter qu'il y a encore des problèmes lors de la conversion des polices, ce qui peut conduire à des personnages manquants dans certaines polices. De plus, toutes les polices ne contiennent pas des caractères chinois complets, veuillez les utiliser à votre discrétion.
Options:
- FONTNAME - Nom utilisé dans Font-Family. par défaut pour être le nom de base de l'URL.
- (TBD) Texte - Fichiers de précharge qui contiennent du texte dans cette option.
Orientation future
- Optimisation de la transmission (optimisation)
- Compte tenu de la corrélation des caractères, de l'espace de caractère peut être créé via Mochi et un corpus spécifique, et le regroupement des caractères connexes comme base pour la coupe de polices via un algorithme de clustering (comme le clustering K-means), réduisant ainsi le nombre de fichiers qui doivent être chargés.
- Optimiser davantage la taille du fichier.
- Fournissez des modules de fichiers Nginx et Apache, permettant aux navigateurs d'obtenir les fichiers nécessaires via une seule demande HTTP (par exemple, obtenir https: // path / to / font / 1 + 2 + 3 + 4)
- Problèmes de qualité (qualité)
- La partie de mot manquante peut être utilisée pour générer l'apprentissage en ligne à l'aide du style contradictoire et le remplir automatiquement.
- Le réseau de génération adversaire susmentionné peut également être utilisé pour aider à la génération de nouvelles polices.
- autre
- Définir le paramétrage et lors de la création de fichiers de police, vous pouvez personnaliser l'ensemble de polices en fonction de vos besoins en les définissant.
- Google Font a implémenté des techniques similaires pour charger les polices chinoises. Voir:
- https://developers.google.com/web/fundamentals/performance/optimize-content-efficiency/webfont-optimisation
- Exemple CSS:
- https://fontts.googleapis.com/css?family=zhi-mang-xing&display=swap
LICENCE
- Fichiers de police: Tous les fichiers de police organisés sont placés séparément dans un autre référentiel (XL-FONTSET) et sont soit GPL ou SIL-OFL sous licence. (OK pour un usage commercial)
- Les codes source sont publiés sous licence MIT.