Aller au contenu

phil/typography-bundle

alpha

Des guillemets typographiques, des tirets, des espaces françaises et des césures conditionnelles partout où une application Symfony affiche du texte.

phil/typography-bundle installe phil/typography dans une application Symfony. Il construit un typographe par locale à partir de la configuration (le préréglage de la locale, ou les correcteurs que l'application énumère). Il enregistre chaque locale configurée comme un service distinct et ajoute les filtres Twig typography et typography_text. Quand phil/ujo-bundle est installé, il applique aussi le typographe au HTML de chaque document UJO (Universal JSON Output) que l'application produit, chacun dans la locale de la requête, sauf si un gabarit en nomme une autre.

Il s'adresse à toute application Symfony qui affiche du texte écrit par des personnes : un CMS, un blogue, un forum, une boutique. Un gabarit écrit {{ article.body|typography }} ; les documents UJO rendus par ujo_html ou Ujo::toHtml() sortent avec leur typographie corrigée, sans rien à écrire.

C'est un bundle mince, écrit de zéro, par-dessus symfony/config et symfony/dependency-injection. Twig et phil/ujo-bundle sont facultatifs : les filtres ne sont enregistrés que si Twig est installé, et l'intégration UJO que si le moteur de rendu de ce bundle est dans le conteneur.

La conception est réduite : PhilTypographyBundle lit la configuration, TypographyServices enregistre les services, TypographyExtension contient les filtres, TypographyHtmlFilter et UjoFilterPass décorent le moteur de rendu UJO.

État

PartieÉtat
Configuration : locale par défaut, césure et ses langues expérimentales, éléments protégés, correcteurs par localeImplémenté et testé
Typographers, Typographer et un service par locale configurée, injectable par nom d'argumentImplémenté et testé
Twig : typography pour le HTML, qui échappe ce qui n'est pas marqué sûr ; typography_text pour le texte brutImplémenté et testé
La locale de la requête, par le LocaleSwitcher de Symfony, pour les filtres et la passe UJOImplémenté et testé
La typographie sur le HTML des documents UJO, par le moteur de rendu de phil/ujo-bundleImplémenté et testé

Documentation

DocumentCe qu'il couvre
InstallationPrérequis, installation et activation du bundle.
ConfigurationChaque option, et les services qu'elle donne.
TwigLes deux filtres, l'échappement et la locale d'un gabarit.
Documents UJOLa passe typographique sur le HTML des documents UJO.
ExceptionsCe que lancent le bundle et la bibliothèque.
Points d'extensionCe qu'une application implémente, configure, remplace ou utilise.
TestsLes tests du bundle, et comment tester une application qui l'utilise.
RéférenceChaque classe et chaque service du bundle.

Démarrage rapide

composer require phil/typography-bundle
# config/packages/phil_typography.yaml
phil_typography:
    default_locale: fr_CA
    locales:
        en_GB: []            # a service with the preset of en_GB
<h1>{{ article.title|typography_text }}</h1>
{{ article.bodyHtml|raw|typography }}
<aside lang="en-GB">{{ article.quote|typography('en_GB') }}</aside>

Prérequis

PHP 8.5 ou plus récent, Symfony 8.2 et phil/typography. Twig 3.21, pour les filtres ; symfony/translation, pour la locale de la requête ; phil/ujo-bundle, pour l'intégration UJO.

Contribuer

Les contributions sont les bienvenues sur le monodépôt PHIL : lisez le guide de contribution et le code de conduite. Signalez une vulnérabilité en privé, comme l'explique la politique de sécurité, jamais dans un ticket public.

Licence

MIT, © Philippe Gamache, doing business as Le Gnome Archiviste; a Parler Haut Interagir Librement project. Voir LICENSE.