Utilisateur:Philippe Kurlapski/PyWikipedia

La bibliothèque libre.
Philippe



module de correction typographique pour pyWikipedia

  • change l'apostrophe en tenant compte de l'italique et du gras
  • ajoute une espace insécable avant la ponctuation double (le cas des catégories et des liens externes est mieux géré avec les deux points maintenant)
  • supprime une espace avant la virgule (le point n'est volontairement pas encore géré)
  • met des espaces insécables entre les «  » (la conversion "" en «» n'est pas encore faite)
  • remplace ... par …
  • remplace A par À dans certains cas (modifié mais il reste un bogue : le verbe avoir en début de vers)
  • remplace oe en œ (majuscule et minuscule) dans oeu


Exemple de syntaxe : replace.py -page"NomDeLaPage" -fix:typographie

Extrait à ajouter dans le module fixes.py. Le module modifié est disponible ici.

    # Wikisource-fr --- typographie
    'typographie': {
        'regex': True,
        'exceptions':  ['\{\{[Aa]uteur'], # Ne modifie pas les pages Auteur pour éviter les liens brisés.
        'msg': {
               'fr':u'Bot: Corrections typographiques',
              },
        'replacements': [
            # Gestion des apostrophes
            (u"''''''", u"█▓"),
            (u"'''''", u"▓"),
            (u"''''", u"█▒"),
            (r"([a-zA-Z])'''([a-zA-Z])", r"\1"+u"’░"+r"\2"),
            (u"'''", u"▒"),
            (u"''", u"░"),
            (u"'", u"’"),
            (u"█", u"’"),
            (u"░", u"''"),
            (u"▒", u"'''"),
            (u"▓", u"'''''"),
            # Gestion de la ponctuation
            (r'\[:(.*?):(.*?):(.*?)\]', u'[█'+r'\1'+u'█'+r'\2'+u'█'+r'\3]'),
            (r'\[(.*?):(.*?):(.*?)\]', r'[\1'+u'█'+r'\2'+u'█'+r'\3]'),
            (r'\[(.*?):(.*?)\]', r'[\1'+u'█'+r'\2]'),
            (u':', u' :'),
            (u"█",u":"),            
            (u';', u' ;'),
            (u'!', u' !'),
            (u'\?', u' ?'),
            (u'[  ],', u','),
            # Gestion des guillemets
            (u'«', u'« '),
            (u'»', u' »'),
            # Remplacements divers
            (u'\.\.\.', u'…'),
            (u'\r\nA ', u'\r\nÀ '),
            (u' A ', u' À '),
            (u'oeu', u'œu'),
            (u'Oeu', u'Œu'),
            (u'OEU', u'ŒU'),
            # Réduction des espaces insécables
            (u'  ', u' '),
            (u'  ', u' '),
        ]
    },