{ "info": { "author": "Bruno Bord", "author_email": "bruno@jehaisleprintemps.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Natural Language :: French", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Text Processing :: Filters", "Topic :: Text Processing :: Markup :: HTML" ], "description": "# Typographeur\n\n> Faire respecter les r\u00e8gles typographiques fran\u00e7aises en HTML.\n\nStatus: Beta\n\n[](https://travis-ci.org/brunobord/typographeur)\n\n\nCompatibilit\u00e9 : Python 3.6 et 3.7.\n\n## Installation\n\nComme d'autres paquets Python, Typographeur s'installe \u00e0 l'aide de ``pip``, de pr\u00e9f\u00e9rence dans un ``virtualenv`` :\n\n```sh\npip install typographeur\n```\n\nPour contribuer ou \"faire mumuse\" avec ce code, [clonez le d\u00e9p\u00f4t Github](https://github.com/brunobord/typographeur) et installez-le en mode \"dev\" dans l'environnement courant :\n\n```sh\ngit clone git@github.com:brunobord/typographeur.git\ncd typographeur\npip install -e ./\n```\n\n\n## Utilisation\n\n```python\n>>> from typographeur import typographeur\n>>> typographeur('
Exemple : Salut ! \u00e7a va ?
')\n'Exemple : Salut ! \u00e7a va ?
'\n>>> typographeur('et , entre ( parenth\u00e8ses ...) les points sans espace .')\n'et, entre (parenth\u00e8ses\u2026) les points sans espace.'\n```\n\n## Origine\n\nCette biblioth\u00e8que a pour but de faire appliquer les r\u00e8gles de base de la typographie fran\u00e7aise sur des documents au format HTML. Elle s'inspire du projet SmartyPants, et lui emprunte une partie du code.\n\n* [SmartyPants, le projet initial](https://daringfireball.net/projects/smartypants/)\n* [smartypants.py, le fork le plus \u00e0 jour](https://pypi.org/project/smartypants/)\n\n## Tester\n\nPour tester, lancer (de pr\u00e9f\u00e9rence dans un virtualenv):\n\n```sh\nmake test\n```\n\nUn exemple complet des correctifs que peut produire `typographeur` est disponible dans le dossier `tests/examples/`. On y trouve un fichier `input.html`, qui contient de nombreuses fautes de typographie, et `expected.html`, qui est le r\u00e9sultat attendu apr\u00e8s corerection.\n\n## R\u00e8gles impl\u00e9ment\u00e9es\n\n* les signes `!`, `?` et `;` doivent \u00eatre pr\u00e9c\u00e9d\u00e9s d'une (et une seule) espace fine ins\u00e9cable.\n* le signe `:` doit \u00eatre pr\u00e9c\u00e9d\u00e9 d'une espace ins\u00e9cable.\n* pas d'espace apr\u00e8s une parenth\u00e8se ouvrante, ni avant une parenth\u00e8se fermante.\n* les points de suspension `...` sont remplac\u00e9s par le caract\u00e8re `\u2026` ; de m\u00eame, on *nettoie* les doubles, triples, quadruples, n-uples points. Le seul cas particulier, c'est celui de deux points encadr\u00e9s par des crochets, dans le cas de l'ellipse d'une citation : ``[..]``.\n* Pour les points d'exclamation ou d'interrogation, la r\u00e8gle c'est d'en afficher un ou trois, mais jamais deux ou \"n\".\n* pas d'espace avant un point (simple `.` ou `\u2026`) ou une virgule (`,`).\n* les guillemets doubles classiques (\"\") sont remplac\u00e9s par des chevrons (\u00ab\u00bb). \u00c0 noter l'utilisation d'espaces ins\u00e9cables \u00e0 l'int\u00e9rieur des guillemets fran\u00e7ais.\n* les apostrophes `'` sont chang\u00e9es en `\u2019` et ne doivent pas \u00eatre suivies d'espaces.\n* les mots contenant des ligatures seront corrig\u00e9s (`oe` => `\u0153` et `ae` => `\u00e6`). Pour ce faire, nous utilisons le dictionnaire fourni par [Dicollecte](https://www.dicollecte.org/).\n\nPour votre plaisir, un document HTML qui respecte les r\u00e8gles \u00e9nonc\u00e9es ci-dessus restera inchang\u00e9.\n\nLes blocs encadr\u00e9s par les balises `pre`, `samp`, `code`, `tt`, `kbd`, `script`, `style`, `math` ne seront pas corrig\u00e9s, pour que les bouts de code soient affich\u00e9s sans \u00eatre d\u00e9terior\u00e9s ; et que les \u00e9ventuels scripts JS ne pr\u00e9sentent pas d'erreur de syntaxe. \u00c0 noter que les balises autofermantes (exemple : ````) ne comptent pas comme d\u00e9but de blocs \u00e0 ignorer.\n\n### Param\u00e8tres\n\nChaque r\u00e8gle peut \u00eatre d\u00e9sactiv\u00e9e via le param\u00e9trage de la fonction ``typographeur()`` :\n\n* ``fix_parenthesis`` : appliquer la r\u00e8gle pour les parenth\u00e8se.\n* ``fix_colon`` : appliquer la r\u00e8gle pour les deux-points (:).\n* ``fix_exclamation`` : appliquer la r\u00e8gle pour les points d'exclamation (!).\n* ``fix_interrogation`` : appliquer la r\u00e8gle pour les points d'interrogation (?).\n* ``fix_semicolon`` : appliquer la r\u00e8gle pour les points-virgules (;).\n* ``fix_ellipsis`` : appliquer la r\u00e8gle pour les points de suspension (... -> \u2026).\n* ``fix_point_space`` : supprimer les espaces avant les points (\u2026 ou .).\n* ``fix_comma_space`` : supprimer les espaces avant les virgules (,).\n* ``fix_double_quote`` : transformer les guillemets doubles en chevrons.\n* ``fix_apostrophes`` : transformer les apostrophes \"dactylographiques\" en apostrophes \"typographiques\",\n* ``fix_nbsp`` : les espaces ins\u00e9cables ne seront pas converties en entit\u00e9s HTML, mais laiss\u00e9es telles quelles.\n* ``fix_nuples`` : appliquer les r\u00e8gles sur les points d'exclamation et d'interrogation multiples.\n* ``fix_title_points`` : appliquer la r\u00e8gle interdisant les points \u00e0 la fin d'un titre.\n* ``fix_oe`` : appliquer la r\u00e8gle des ligatures sur les mots en `\u0153`.\n* ``fix_ae`` : appliquer la r\u00e8gle des ligatures sur les mots en `\u00e6`.\n* ``ligature_variant`` : d\u00e9signe quel variante du dictionnaire utiliser pour la correction des ligatures. Il en existe 4 : 'classique', 'moderne', 'reforme1990' et 'toutesvariantes' (par d\u00e9faut).\n\n## Outil en ligne de commande\n\nUne fois install\u00e9, le paquet propose un outil en ligne de commande. Exemples d'utilisation :\n\n```sh\n$ echo 'Salut! \u00e7a va?
' | typographeur\nSalut ! \u00e7a va ?
\n```\n\nOn peut \u00e9galement passer un ou plusieurs fichiers en tant que param\u00e8tres :\n\n```sh\n$ typographeur input1.html input2.html\n```\n\nPar d\u00e9faut, tous les param\u00e8tres de la fonction ``typographeur()`` sont activ\u00e9s. On peut les d\u00e9sactiver via les options suivantes :\n\n* ``--skip-parenthesis``,\n* ``--skip-colon``,\n* ``--skip-exclamation``,\n* ``--skip-interrogation``,\n* ``--skip-semicolon``,\n* ``--skip-ellipsis``,\n* ``--skip-point-space``,\n* ``--skip-comma-space``,\n* ``--skip-double-quote``,\n* ``--skip-apostrophes``,\n* ``--skip-nbsp``,\n* ``--skip-nuples``,\n* ``--skip-title-points``.\n* ``--skip-oe``.\n* ``--skip-ae``.\n* ``--ligature-variant``.\n\nToutes les options disponibles sont visibles via :\n\n```sh\n$ typographeur --help\n```\n\n### Limitations\n\nL'objectif de cette biblioth\u00e8que reste modeste : il est vraisemblable que certaines r\u00e8gles typographiques ne pourront jamais \u00eatre impl\u00e9ment\u00e9es et nous ne cherchons pas ici la perfection. Elle restera une sorte \"d'aide \u00e0 la r\u00e9daction\", mais rien ne remplacera jamais l'application manuelle des ces r\u00e8gles. Les ouvrages ou les sites de r\u00e9f\u00e9rence sont l\u00e9gions, il est bien vain d'essayer de les lister tous : une simple recherche vous en convaincra. Bon courage !\n\n## Support du texte brut ou Markdown\n\n**Attention :** le support de Markdown est \u00e0 notre grand regret abandonn\u00e9. Les tentatives jusqu'ici impliquaient une gestion des blocs simples en parcourant le contenu le plus simplement possible \u00e0 l'aide d'expressions rationnelles. Mais la muraille infranchissable, c'est le tableau (disponible en *Github Flavored Markdown* et dans d'autres parsers).\n\n**Dans nos projets :** une biblioth\u00e8que tierce, qui utilisera un parser Markdown pour faire un rendu Markdown \"typographi\u00e9\". Restez \u00e0 l'\u00e9coute !\n\n## Autres impl\u00e9mentations\n\nDes fonctionnalit\u00e9s similaires ont \u00e9t\u00e9 impl\u00e9ment\u00e9es dans d'autres langages de programmation. \u00c0 noter :\n\n* [JoliTypo](https://github.com/jolicode/JoliTypo), en PHP,\n* [Cette extension pour Jekyll](https://github.com/borisschapira/jekyll-microtypo/blob/master/lib/jekyll/microtypo.rb), en Ruby.\n\n*Autre ressource :*\n\n[Grammalecte](https://www.dicollecte.org/) est une extension pour LibreOffice, Firefox et Thunderbird pour aider \u00e0 corriger (entre autres) les fautes de typographie.\n\n## Licence\n\nCe projet est librement utilisable, publi\u00e9 sous licence MIT.\n\n-----\n\nIn *English*, now: this Python (3.6 & 3.7) library tries to apply basic French typography rules. It's vastly inspired by SmartyPants, and borrows a lot of code from it.\n\n* [Initial SmartyPants project](https://daringfireball.net/projects/smartypants/)\n* [Current smartypants.py code](https://pypi.org/project/smartypants/)\n\nMIT License.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/brunobord/typographeur/", "keywords": "text processing typography", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "typographeur", "package_url": "https://pypi.org/project/typographeur/", "platform": "", "project_url": "https://pypi.org/project/typographeur/", "project_urls": { "Homepage": "https://github.com/brunobord/typographeur/" }, "release_url": "https://pypi.org/project/typographeur/0.4.0/", "requires_dist": null, "requires_python": "", "summary": "Faire respecter les r\u00e8gles typographiques fran\u00e7aises en HTML.", "version": "0.4.0" }, "last_serial": 4112043, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "798b651f97160306018d5f063d4c3a86", "sha256": "3db05827dcbd7322d74f049c2e36902ff2196ee6ab44c4dab1ca30efe30a86a9" }, "downloads": -1, "filename": "typographeur-0.1.0.tar.gz", "has_sig": false, "md5_digest": "798b651f97160306018d5f063d4c3a86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8031, "upload_time": "2018-06-21T21:55:26", "url": "https://files.pythonhosted.org/packages/7d/f6/bd6061bba12343dd3dce12c71c88f9c676f03f9d05e3c9db55b79eeec4c5/typographeur-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b4eda106626fa69d9c177c363ea09516", "sha256": "30c60ed239e4442a40a5a0eba2b6a2ba4f82babe580f308a682531b28bf95ca9" }, "downloads": -1, "filename": "typographeur-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b4eda106626fa69d9c177c363ea09516", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11001, "upload_time": "2018-06-23T18:56:30", "url": "https://files.pythonhosted.org/packages/5b/86/fca54e8519716d2117b086c011041c7b23954678f10848c80018689e01b8/typographeur-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "aac15839f9d324dba68b3e01fcde531b", "sha256": "0eb600929a2b5a68777fa6f275f131c7fad2293bd5cb1c5aa6d9c2ba91e1f36a" }, "downloads": -1, "filename": "typographeur-0.3.0.tar.gz", "has_sig": false, "md5_digest": "aac15839f9d324dba68b3e01fcde531b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12469, "upload_time": "2018-07-10T16:52:05", "url": "https://files.pythonhosted.org/packages/23/43/0377ca4eba807ae46441cc6333efb3a92f2b7bfc7bb906185d8c1e374b44/typographeur-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "2ba62cc3c063c5ff1541b9a75c121b93", "sha256": "9955dcb7160bf8b5dd80ff86f3a4fed35fc3d5c6e4eca058e7835fc8e91a9b3b" }, "downloads": -1, "filename": "typographeur-0.4.0.tar.gz", "has_sig": false, "md5_digest": "2ba62cc3c063c5ff1541b9a75c121b93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15965, "upload_time": "2018-07-28T17:52:31", "url": "https://files.pythonhosted.org/packages/dc/07/b1099033ce5aef84808312268cffb5a52419bf84c3a39ffa9540096ce886/typographeur-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2ba62cc3c063c5ff1541b9a75c121b93", "sha256": "9955dcb7160bf8b5dd80ff86f3a4fed35fc3d5c6e4eca058e7835fc8e91a9b3b" }, "downloads": -1, "filename": "typographeur-0.4.0.tar.gz", "has_sig": false, "md5_digest": "2ba62cc3c063c5ff1541b9a75c121b93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15965, "upload_time": "2018-07-28T17:52:31", "url": "https://files.pythonhosted.org/packages/dc/07/b1099033ce5aef84808312268cffb5a52419bf84c3a39ffa9540096ce886/typographeur-0.4.0.tar.gz" } ] }