Date | Action | Nombre | Commentaire |
---|---|---|---|
2005-11-19 | "Catégorie:Jours de la semaine" -> "Catégorie:Jours de la semaine en français" | 6 | |
2005-11-19 | "Lexique en français du calendrier" -> "Calendrier en français" | 30 | |
2005-11-19 | "Catégorie:Nom commun" -> "Catégorie:Noms communs" | 4 | |
2005-11-19 | "Catégorie:Langues" -> "Catégorie:Langues en français" | 100 | |
2005-11-19 | "Catégorie:Lexique en bambara des animaux" -> "Catégorie:Animaux en bambara" | 31 | |
2005-11-19 | "Catégorie:Lexique en bambara du calendrier" -> "Catégorie:Calendrier en bambara" | 13 | |
2005-11-20 | "Catégorie:Lexique en bambara des aliments" -> "Catégorie:Aliments en bambara" | 8 | |
2005-11-20 | "Catégorie:Lexique en bambara des couleurs" -> "Catégorie:Couleurs en bambara" | 7 | |
2005-11-20 | "Catégorie:Grammaire en turc" -> "Catégorie:Grammaire turque" | 3 | |
2005-11-20 | "Catégorie:Religions en français" -> "Catégorie:Lexique en français de la religion" | 9 | |
2005-11-20 | "Catégorie:Gentilés français" -> "Catégorie:Gentilés en français" | 47 | |
2005-11-21 - 2005-11-29 | "\{\{-(..)-\}\}" -> "{{=\1=}})" | Tous les articles (23599) | Pour distinguer les modèles de section de langue et aussi libérer les modèles à tirets, afin d'accueillir des langues dont les codes à trois chiffres entreraient en concurrence avec les autres modèles de sous-sections, il a été décidé de remplacer les modèles de langue (tous à deux lettres alors) du type {{-en-}} par {{=en=}}. D'abord testé avec les section de langue anglaise, puis généralisé à toutes les langues. |
2005-11-26 | Locutions -> Locutions nominales | 406 | |
2005-11-30 | -Abréviation +Symbole | 92 | |
2005-12-04 | Harmonisation des références | 493 |
Quelques corrections simples (e.g. apostrophes) en API et SAMPA et conversion SAMPA vers X-SAMPA.
Ajout d'une section étymologie avec un bandeau d'ébauche.
Liste formatée.
Créés automatiquement, ces articles n'étaient pas correctement formatés (certains ont d'ailleurs encore des erreurs).
Formatage des articles importés depuis le DAF8.
Réarrangement de la structure des articles (ordre des sections notamment).
Reformulation de l'étymologie de certains articles.
Ajout d'un modèle de table d'accord le cas échéant.
Suite à vote sur la Wikidémie (lien).
Avec {{{num}}} (au lieu du paramètre {{{1}}}). Précède les modifications des modèles {{-def-}}
, voir (lien).
{{-adjc-}}
-> {{-adj-}}
(modèle inutilisé et inutile)
{{-dim-lex-}}
-> {{dim-lex}}
(les - sont réservés aux titres de section)
{{-sym-}}
-> {{-symb-}}
(symb est plus compréhensible et plus répandu)
{{-pré-}}
-> {{-pref-}}
(pref est plus compréhensible et plus répandu)
{{-prép-}}
-> {{-prep-}}
(prep est plus répandu, et plus simple à écrire)
{{-loc-interj-}}
{{-loc-pron-}}
-> {{-loc-pronom-}}
{{pron}}
-> {{pron-audio}}
(libération du modèle et unification du modèle pron-audio).
{{-adverbe-|...}} -> {{-adv-}}
(précision mise sur la ligne de forme, ou au niveau des définitions).
{{-adverbe-}}
Simplification du tableau des prononciations régionales.
{{-tab-pron-}}
(estimation : 9907 changements)'tab': { 'regex' : True, 'msg' : { 'fr':u'Robot : Prononciations régionales dans des modèles simplifiés', }, 'replacements': [ # Début et fin de tableau (u"\r\n\{\{-tab-pron-\}\}", r""), (u"(\{\{pron-audio\|(( |.)+?)\}\}\r\n\| ?\\r\n\| ?\?)\r\n\|\}", r"\1"), # Nettoyage avant (u"\{\{pron-audio\|(.+?)\|\}\}", r"{{pron-reg|\1}}"), (u"(\{\{pron-audio\|(.+?)\}\}\r\n\|) ?\?\r\n\| ?\?\r\n", r"\1 \r\n| \r\n"), (u"(\{\{pron-audio\|(.+?)\}\}\r\n\|) ?/(.*?)/\r\n\| ?/?(.*?)/?\r\n", r"\1 \r\n| \r\n"), # pron-audio (u"\{\{pron-audio\|(.+?)\|(.+?)\}\}\r\n\| ?\\r\n\| ?\", r"{{pron-reg|\1|audio=\2}}"), (u"\{\{pron-audio\|(.+?)\|(.+?)\}\}\r\n\| ?\\r\n\| ?\", r"{{pron-reg|\1|\3|audio=\2}}"), # pron sans audio (u"\{\{pron-audio\|(.+?)\}\}\r\n\| ?\\r\n\| ?\?\r\n", r"{{pron-reg|\1|\2}}\r\n"), # Nettoyage : deux points, crédit superflu (déjà sur Commons), formulation (u"\{\{pron-reg\|(.+?) *?<!-- *?réalisé par .+? *?--> *?: *?\|", r"{{pron-reg|\1|"), (u"\{\{pron-reg\|(.+?) *?<!-- *?précisez svp la ville ou la régio ?n *?--> *?: *?\|", r"{{pron-reg|\1 ("+u"région ?)|"), (u"\{\{pron-reg\|(.+?) *?: *?\|", r"{{pron-reg|\1|"), (u"\{\{pron-reg\|Français standard \(Ouest de la France\)(.*?)\|", r"{{pron-reg|France (Ouest)|"), (u"\{\{pron-reg\|\?\|", r"{{pron-reg||"), ], },
{{term}}
quand affiché dans le nouveau modèle --> ne pas mettre de modèles dedans ;{{popu}}
(et mettre sous {{term}}
) - présents dans les descriptions --> remplacer par autre chose, mais prononciation populaire ne veut rien dire... ;Estimation : 6592 articles à corriger (soit 66% du total). Remplacement spécial à l'aide de replace.py -regex dans un fix :
(u"{{-tab-pron-}}\r\n\|-\r\n\|\r\n\|Hanoï \(Nord du Vietnam\)\r\n\| \\r\n\| \\r\n\|-\r\n\|-\r\n\|\r\n\|Ho Chi Minh-Ville \(Sud du Vietnam\)\r\n\| \\r\n\| \\r\n\|\}", u"{{pron-reg|Nord du Vietnam (Hanoï)|"+r"\1"+u"}}\r\n{{pron-reg|Sud du Vietnam (Ho Chi Minh-Ville)|"+r"\2}}")
Mon bot est auparavant passé sur les articles importés du DAF8 pour nettoyer et mettre en forme. Une erreur de regex (trop large) à donné des tableaux donnant le pluriel d'adjectifs en -als au lieu de -aux. Ce processus corrige ces articles.
'tabal': { 'regex' : True, 'msg' : { 'fr':u'Robot : Correction pluriels en als', }, 'replacements': [ (r"\{\{fr-accord-mixte\|\r\n ?ms=(.+?)al\r\n\| ?mp=\1als\r\n\| ?fs=\1ale\r\n\| ?fp=\1ales\r\n\| ?pms=(.+?)al\r\n\| ?pmp=\2al\r\n\| ?pfs=\r\n\| ?pfp=\r\n\}\}", r"{{fr-accord-al|\1|\2}}"), (r"\{\{fr-accord-mixte\|\r\n ?ms=(.+?)al\r\n\| ?mp=\1als\r\n\| ?fs=\1ale\r\n\| ?fp=\1ales\r\n\| ?pms=(.+?)al\r\n\| ?pmp=\2al\r\n\| ?pfs=\2al\r\n\| ?pfp=\2al\r\n\}\}", r"{{fr-accord-al|\1|\2}}"), ], },
Suite au vote et aux discussions sur l'ASCII, j'ai préparé un script spécial pour changer les articles afin qu'ils soient catégorisés automatiquement : catauto.py.
Problèmes rencontrés :
Problèmes renconcontrés :
complétement -> complètement (orthographe)
Élimination des sections de prononciation vides (trop lourdes) et transformation des sections non vides en remplaçant les API et SAMPA par le modèle {{pron}}
.
'pron_sec' : { 'exceptions' : , 'regex' : True, 'msg' : { 'fr':u'Robot : Élimination des sections prononciations inutiles, remplacement API/SAMPA par {{pron}}', }, 'replacements': [ # Complet vide +ébauche (u"\r?\n?\r\n\{\{-pron-\}\}\r\n\{\{ébauche-pron\|.+?\}\}\r\n\*? ?\{\{API\}\} ?: ?(//|/x{2,}/)\r\n\*? ?\{\{SAMPA\}\} ?: ?(//|/x{2,}/)", r""), # API vide +ébauche (u"\r?\n?\r\n\{\{-pron-\}\}\r\n\{\{ébauche-pron\|.+?\}\}\r\n\*? ?\{\{API\}\} ?: ?(//|/x{2,}/)", r""), # Complet plein +ébauche (u"(\r?\n?\r\n\{\{-pron-\}\}\r\n)\{\{ébauche-pron\|.+?\}\}\r\n\*? ?\{\{API\}\} ?: ?/(.+?)/\r\n\*? ?\{\{SAMPA\}\} ?: ?/.*?/", r"\1* {{pron|\2}}"), # API plein +ébauche (u"(\r?\n?\r\n\{\{-pron-\}\}\r\n)\{\{ébauche-pron\|.+?\}\}\r\n\*? ?\{\{API\}\} ?: ?/(.+?)/", r"\1* {{pron|\2}}"), # Complet vide -ébauche (u"\r?\n?\r\n\{\{-pron-\}\}\r\n\*? ?\{\{API\}\} ?: ?(//|/x{2,}/)\r\n\*? ?\{\{SAMPA\}\} ?: ?(//|/x{2,}/)", r""), # API vide -ébauche (u"\r?\n?\r\n\{\{-pron-\}\}\r\n\*? ?\{\{API\}\} ?: ?(//|/x{2,}/)", r""), # Complet plein -ébauche (u"(\r?\n?\r\n\{\{-pron-\}\}\r\n)\*? ?\{\{API\}\} ?: ?/(.+?)/\r\n\*? ?\{\{SAMPA\}\} ?: ?/.*?/", r"\1* {{pron|\2}}"), # API plein -ébauche (u"(\r?\n?\r\n\{\{-pron-\}\}\r\n)\*? ?\{\{API\}\} ?: ?/(.+?)/", r"\1* {{pron|\2}}"), # Vide +ébauche (u"(\r?\n?\r\n\{\{-pron-\}\}\r\n)\{\{ébauche-pron\|.+?\}\}\r\n", r"\r\n"), ], },
Avancement : alphabet latin fini.
Suite à la création des modèles {{ref}} et {{REF}} (voir Wiktionnaire:Wikidémie/janvier 2007#Références), il faudrait rajouter une puce devant tous les modèles de références {{réf}}
et {{R:...}} dans les articles.
{{réf}}
, Dump du 4 décembre 2006. Puis chaque modèle l'un après l'autre depuis la liste des modèles.'references' : { 'regex' : True, 'msg' : { 'fr':u'Robot : format des références', }, 'replacements': [ (u"\n(\{\{réf\|.+?\}\})", r"\n* \1"), (u"\n(\{\{R:.+?\}\})", r"\n* \1"), (u"\{\{réf\|Littré(\|| )1863\}\}", r"{{R:Littr"+u"é"+"}}"), (u"\{\{réf\|Larousse du XX<sup>e</sup> siècle\|1926\}\}", r"{{R:LarousseXXe}}"), ], },
{{R:Littré}}
, idem pour le Larousse du XXe siècle.{{réf}}
afin que la modification de la puce se répercute partout facilement.La méthode utilisée n'étant pas efficace (utilisation d'expressions rationnelles), je n'ai pas effectué les changements en attendant de développer quelque chose de plus simple : voir à février 2006 pour la suite.
Après discussions sur la Wikidémie sur la nécessité de marquer les articles dont tout ou partie proviennent du DAF8 : Discussion et Mise en place du bot. La marque ajoutée est {{Import:DAF8}}
, sous les références des articles concernés.
{{R:DAF8}}
new_text = "" r = False rfait = False fr = False ; # On cherche si la page possède bien une référence R:DAF8, et si elle n'a pas déjà de marque d'import:DAF8 if re.search("\{\{R:DAF8\}\}", original_text) and not re.search("\{\{Import:DAF8\}\}", original_text): lignes = original_text.split('\r\n') for l in lignes: # On détecte la section des références if l == u"{{=fr=}}": fr = True ; if l == u"{{-réf-}}" and fr: r = True new_text += l+"\r\n" # Si on est dans la section des références... elif r == True and rfait == False and fr: # ...si on trouve un élément de référence on continue if re.search("^\* ", l): new_text += l+"\r\n" # sinon on est arrivé à la fin de la section et on ajoute la marque d'import else: new_text += l+'\r\n{{Import:DAF8}}\r\n\r\n' r = False rfait = True else: new_text += l+"\r\n" # On vérifie que la marque a bien été apposée ; # sinon c'est que la section de référence était en fin de page # et n'avait donc pas de ligne supplémentaire # On ajoute donc la marque à la fin if not rfait: new_text += '\r\n{{Import:DAF8}}\r\n\r\n' # Sinon aucun changement à effectuer else: new_text = original_text # FIN... return new_text
elif r == True:
elif r == True and rfait == False:
if parts in fam.langs and len(parts) > 1:
(ajout de la seconde condition).À partir du 8 mars. Nouveau passage :
Problèmes rencontrés :
{{=ln=}}
notamment) : Ce paramètre pose problème pour mon script qui utilise la partie droite =}} de ces modèles pour reconnaitre les langues, ce qui fait que le robot charcute finalement l'article.
Alphabet latin terminé.
Les catégories Catégorie:Noms communs en français etc. sont "polluées" par les pages non fusionnées du DAF8. Mon bot passe sur l'ensemble de ces pages pour leur enlever toute catégorisation.
{{DAF1932}}
'nocatdaf' : { 'regex' : True, 'msg' : { 'fr':u'Robot : Suppression des catégories des pages du DAF8 non fusionnées', }, 'replacements': [ (u"\n\\]", r""), (u"\n\\]", r""), ], },
{{=fr=}}
.Certains articles comportent des sections vides (par exemple on a {{-adj-|fr}} suivi de {{-nom-|fr}}). Le bot élimine ces sections vides.
"{{-type-}}\r\n\r?\n?{{-type-}}"
s%\{\{-.+?-.*?\}\}\r\n(\r\n\{\{-)%\1%
{{--}} {{-pron-}}
; j'ai dû réverté les modifs.{{-adj-}} {{-nom-}}
avec les informations d'adjectif et de nom mélangés ensuite. Il faut les reprendre un à un (ne respecte pas le format normal).Pas mal de mots ont une prononciation erronée, à cause d'un o fermé ou ouvert. En particulier, ils se répercutent dans les flexions. Un bot facilitera le changement (qui est mineur).
s/ɔ/o/
(suivi)
s/õ/ɔ̃/
à la suiteQuelques modèles très courants sont à transformer, dont -etym-
. Comme je risque de passer sur tout le Wiktionnaire, j'en profite pour ajouter d'autres corrections.
-etym-
(entre autres)'mod': { 'regex': True, 'msg': { 'fr': u'Bot: nettoyage modèles et format', }, 'replacements': [ # Espaces doubles ou en bout de lignes (u' +', ' '), (u' +\r', u'\r'), # R:DAF8 + Import:DAF8 = Import:DAF8 suffit (u'\r\n\*? ?\{\{R:DAF8\}\}+?(\{\{Import:DAF8\}\})', u'\r\n'+r'\1'), (u'\r\n\*? ?\{\{R:DAF8\}\}(\r\n.+?)+?(\{\{Import:DAF8\}\})', r'\1'+u'\r\n'+r'\2'), (u'\r\n\*? ?\{\{R:DAF8\}\}(\r\n.+?\r\n.+?)+?(\{\{Import:DAF8\}\})', r'\1'+u'\r\n'+r'\2'), (u'\r\n\*? ?\{\{R:DAF8\}\}(\r\n.+?\r\n.+?\r\n.+?)+?(\{\{Import:DAF8\}\})', r'\1'+u'\r\n'+r'\2'), (u'\r\n\*? ?\{\{R:DAF8\}\}(\r\n.+?\r\n.+?\r\n.+?\r\n.+?)+?(\{\{Import:DAF8\}\})', r'\1'+u'\r\n'+r'\2'), (u'\r\n\*? ?\{\{R:DAF8\}\}(\r\n.+?\r\n.+?\r\n.+?\r\n.+?\r\n.+?)+?(\{\{Import:DAF8\}\})', r'\1'+u'\r\n'+r'\2'), (u'\r\n\*? ?\{\{R:DAF8\}\}(\r\n.+?\r\n.+?\r\n.+?\r\n.+?\r\n.+?\r\n.+?)+?(\{\{Import:DAF8\}\})', r'\1'+u'\r\n'+r'\2'), # Dico Rivarol (u'\* Dictionnaire classique de la langue française - A\.C\. de Rivarol - 1827\.', u'* {{R:Rivarol}}'), # API -> pron ou éliminé si vide (toujours mieux que de laisser) (u'(\{\{-pron-\}\}\r\n)\* \{_{API\}\} : /(.+?)/\r\n\* \{\{SAMPA\}\} : /.+?/', r'\1* {{pron|\1}}'), (u'\r\n\{\{-pron-\}\}\r\n\{\{ébauche-pron\|.+\}\}\r\n\* \{\{API\}\} : //\r\n\* \{\{SAMPA\}\} : //\r\n\r\n', ''), # pron-rég accent (u'*\*? ?\{\{pron-rg\|', u'\r\n* {{pron-rég|'), # Espacement des sections (avant et/ou après) (u'(\{\{voir\|.+?\}\})*', r'\1'+u'\r\n\r\n'), (u'*\{\{-tym-\}\}', u'\r\n\r\n{{-étym-}}'), (u'*(\{\{bauche\|)', u'\r\n{{ébauche|'), (u'*(\{\{clé de tri)', u'\r\n\r\n\r\n'+r'\1'), (u'*\r\n(\{\{-.+?-)', u'\r\n\r\n'+r'\1'), (u'*\r\n(\{\{=.+?=)', u'\r\n\r\n'+r'\1'), # Espacements des tableaux des modèles ( - ) (u'(\{\{\(\}\})+', r'\1'+u'\r\n'), (u'+(\{\{\-\}\})+', u'\r\n'+r'\1'+u'\r\n'), (u'+(\{\{\)\}\})', u'\r\n'+r'\1'), # Espaces des listes (pas exhaustif je pense) (u'\n(#|\*|#:|\*\*|\#\*|\#:*) *(\)', u'\n'+r'\1 \2'), # Pas de déterminant sur la ligne de forme svp (u'\n(es?|a|er|ie|as) ?(\'\'\'.+?\'\'\')', u'\n'+r'\2'), # Mot vedette en gras svp, non en lien (u'(\n)\\](.*?\r\n#)', r"\1'''\2'''\3"), # Pas de : en fin de ligne de forme svp (u'(\n\'\'\'.+?\'\'\'.*?) ?:?(\r\n#)', r"\1\2"), # pron sur la ligne de forme en remplacement de // # (plusieurs fois au cas où) (u'(\n\'\'\'.+?\'\'\'.+?)/(.+?)/(.*?\r\n#)', r'\1{{pron|\2}}\3'), (u'(\n\'\'\'.+?\'\'\'.+?)/(.+?)/(.*?\r\n#)', r'\1{{pron|\2}}\3'), (u'(\n\'\'\'.+?\'\'\'.+?)/(.+?)/(.*?\r\n#)', r'\1{{pron|\2}}\3'), (u'(\n\'\'\'.+?\'\'\'.+?)/(.+?)/(.*?\r\n#)', r'\1{{pron|\2}}\3'), # pron avec un truc vide => {{pron|}} (u'\{\{pron\|(\.\.\.|\?|\-| )\}\}', r'{{pron|}}'), # Images # (à faire au cas par cas?) #(u'\mage:(.+?)\|(+?)\]\]', r'\]'), # Lien ucf (majuscule en premier) avec lien vers section française (u'# ?\\]', r'# {{ucf|\1}}'), # Lien annexe avec modèle (u'\* \\]', r'* {{Annexe|\1}}'), (u'\* \\]', r'* {{Annexe|\1|\2}}'), # Accord : accent (u'\{\{fr-accord-rg\|', u'{{fr-rég|'), (u'\{\{fr-reg\|', u'{{fr-rég|'), # Types de mots : accent (u'\{\{-adj-dem-', u'{{-adj-dém-'), (u'\{\{-adj-indef-', u'{{-adj-indéf-'), (u'\{\{-art-def-\}\}', u'{{-art-déf-'), (u'\{\{-art-indef-', u'{{-art-indéf-'), (u'\{\{-def-', u'{{-déf-'), (u'\{\{-flex-prep-', u'{{-flex-prép-'), (u'\{\{-loc-prep-', u'{{-loc-prép-'), (u'\{\{-pronom-dem-', u'{{-pronom-dém-'), # Niveau3 : accents #(u'\{\{-mero-', u'{{-méro-'), #(u'\{\{-pref-', u'{{-préf-'), (u'\{\{-prep-', u'{{-prép-'), # Terminologie : correction code et accent # Complets (namespace=0 en tout cas) #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{chi\}\}', r'\1'+u'{{chim}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{des\}\}', r'\1'+u'{{dés}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{ecolo\}\}', r'\1'+u'{{écol}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{econ\}\}', r'\1'+u'{{écon}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{electro\}\}', r'\1'+u'{{électro}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{erot\}\}', r'\1'+u'{{érot}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{femin\}\}', r'\1'+u'{{fémin}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{genet\}\}', r'\1'+u'{{génét}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{geog\}\}', r'\1'+u'{{géog}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{geol\}\}', r'\1'+u'{{géol}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{geom\}\}', r'\1'+u'{{géom}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{geoph\}\}', r'\1'+u'{{géoph}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{herald\}\}', r'\1'+u'{{hérald}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{med\}\}', r'\1'+u'{{méde}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{metaph\}\}', r'\1'+u'{{métaph}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{meton\}\}', r'\1'+u'{{méton}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{neo\}\}', r'\1'+u'{{néol}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{pec\}\}', r'\1'+u'{{pêch}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{pedo\}\}', r'\1'+u'{{pédo}}'), ##(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{pej\}\}', r'\1'+u'{{péj}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{poes\}\}', r'\1'+u'{{poés}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{poet\}\}', r'\1'+u'{{poét}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{pre\}\}', r'\1'+u'{{pré}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{pres\}\}', r'\1'+u'{{prés}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{refl\}\}', r'\1'+u'{{réfl}}'), #(u'(#.+?|\* ?\\] ?|\{\{.+?\}\},? ?)\{\{theol\}\}', r'\1'+u'{{théol}}'), # Lien création d'article (u'\{\{cree\}\}', u'{{créer}}'), (u'\{\{cree\|', u'{{créer|'), # WP, Wikilivre, etc. : puce (u'\n(\{\{(WP|)\}\})', u'\n* '+r'\1'), # Forme de l'étymologie : # majuscule au moins pour de/le (u'(\{\{-étym-\}\}\r\n):? ?d()', r'\1: D\2'), (u'(\{\{-étym-\}\}\r\n):? ?l()', r'\1: L\2'), # langue hors modèles (u'(\{\{-étym-\}\}\r\n):? ?(.+?)\{\{la\}\}', r'\1: \2latin'), (u'(\{\{-étym-\}\}\r\n):? ?(.+?)\{\{grc\}\}', r'\1: \2grec ancien'), (u'(\{\{-étym-\}\}\r\n):? ?(.+?)\{\{fr\}\}', r'\1: \2fran'+u'çais'), (u'(\{\{-étym-\}\}\r\n):? ?(.+?)\{\{en\}\}', r'\1: \2anglais'), (u'(\{\{-étym-\}\}\r\n):? ?(.+?)\{\{de\}\}', r'\1: \2allemand'), ], },
new_short = re.sub('+', '', new_text) ; old_short = re.sub('+', '', original_text) ; if new_text == original_text or new_short == old_short:
Voir suite en décembre.
Pour faire des liens complets du type ], il faut ajouter le paramètre "code=" à tous les modèles de langue.
'replacements': [ (u"\[\[catégorie:", u"[[Catégorie:"), (r"(\{\{=langue=\|+)(\}\})(\r\n<includeonly>\\]</includeonly>)(<noinclude>\r\n*\n\+)(\]\])", r"\1|code=\5\2\4\5\6"), (r"(\{\{=langue=\|+\|portail=oui)(\}\})(\r\n<includeonly>\\]</includeonly>)(<noinclude>\r\n*\n\+)(\]\])", r"\1|code=\5\2\4\5\6"), (r"(\{\{=langue=\|\+\|+\]\])(\}\})(\r\n<includeonly>\\]</includeonly>)(<noinclude>\r\n*\n\+)(\]\])", r"\1|code=\5\2\4\5\6"), (r"(\{\{=langue=\|+\|+)(\}\})(\r\n<includeonly>\\]</includeonly>)(<noinclude>\r\n*\n\+)(\]\])", r"\1|code=\5\2\4\5\6"), ],
D'après la décision prise sur la page de gestion des modèles.
\{\{(M|mod|Mod)\|
→ {{modl|
Les modèles de Catégorie:Modèles en grec ont été importés sans être traduits.
Des erreurs courantes :
fixes = {
'regex': True,
'msg': {
'fr':u'Correction des prononciations API',
},
'replacements': [
(r"(\{\{)(pron|fr-ind|fr-"+u"rég"+r")(\|*)g(*\}\})", r"\1\2\3"+u"ɡ"+r"\4"),
(r"(\{\{)(pron|fr-ind|fr-"+u"rég"+r")(\|*)'(*\}\})", r"\1\2\3"+u"ˈ"+r"\4"),
(r"(\{\{)(pron|fr-ind|fr-"+u"rég"+r")(\|*):(*\}\})", r"\1\2\3"+u"ː"+r"\4"),
],
}
Les modèles {{WP}}
et {{pron-rég}}
ne devraient pas contenir de puce (celles-ci doivent écrites directement dans les articles). Aussi pris en compte : {{pron}}
(en début de ligne dans les sections {{-pron-}}
et les références commençant par R: (exemple : {{R:DAF8}}
).
fixes = {
'regex': True,
'msg': {
'fr':u'Correction des puces de WP, pron, pron-rég et des références',
},
'replacements': [
(r"\n(\{\{WP\}\})", r"\n* \1"),
(r"\n(\{\{WP\|.*\}\})", r"\n* \1"),
(r"\n(\{\{pron-" + u"rég" + r")", r"\n* \1"),
(r"\n(\{\{pron\|)", r"\n* \1"),
(r"\n(\{\{R:.+\}\})", r"\n* \1"),
],
}
Reprise de novembre.
{{s-ucf}}
et {{s-lien}}
, respectivement.{{ucf}}
et {{lien}}
(~55 700 articles concernés)fixes = {
'regex': True,
'msg': {
'fr':u'Robot: substitution automatique des liens ucf, lien',
},
'replacements': [
(r'\]+?\]\]', r'{{ucf|\1}}'),
(r'\{\{(lien|ucf)\|2=(.+?)\}\}', r"]"),
(r'\{\{(lien|ucf)()', r"{{subst:s-\1\2"),
(r'\\]', r']'),
],
}
{{s-ucf}}
fait de mauvaises substitutions Correction du modèle
Suite à discussion sur la Wikidémie : code langue de l'extremaduran occupé par {par extension}. Nouveau nom : {{par ext}}
.
python replace.py -regex -ref:Modèle:ext "\{\{ext\}\}" "{{par ext}}"
(Commencé fin décembre) Suite à Wiktionnaire:Gestion des modèles/Sections modifiables.
fixes = {
'regex': True,
'msg': {
'fr':u'Robot : sections de langues rendues modifiables',
},
'replacements': [
(r"(\{\{=.+?=\}\})(\r)", r"== \1 ==\2"),
(r"(\{\{-car-\}\})(\r)", r"== \1 ==\2"),
(r"(\{\{=.+?=\|.+?\}\})(\r)", r"== \1 ==\2"),
(r"(\{\{-car-\|.+?\}\})(\r)", r"== \1 ==\2"),
],
}
Modèle {{eo-flex}}
à substituer : impossible à modifier, cryptique pour tout contributeur et inutilisable s'il y a des homographes ou une quelconque information à ajouter.
fixes = {
'regex': True,
'msg': {
'fr':u'Robot : substitution du modèle eo-flex',
},
'replacements': [
# Nom
(r"\{\{eo-flex\|(+)\|ojn\|?(*)\}\}", r"== {{=eo=}} ==\n{{-flex-nom-|eo}}\n'''\1ojn''' {{pron|\2}}\n# ''Accusatif pluriel de'' ]."),
(r"\{\{eo-flex\|(+)\|oj\|?(*)\}\}", r"== {{=eo=}} ==\n{{-flex-nom-|eo}}\n'''\1oj''' {{pron|\2}}\n# ''Nominatif pluriel de'' ]."),
(r"\{\{eo-flex\|(+)\|on\|?(*)\}\}", r"== {{=eo=}} ==\n{{-flex-nom-|eo}}\n'''\1on''' {{pron|\2}}\n# ''Accusatif singulier de'' ]."),
# Adjectif
(r"\{\{eo-flex\|(+)\|ajn\|?(*)\}\}", r"== {{=eo=}} ==\n{{-flex-adj-|eo}}\n'''\1ajn''' {{pron|\2}}\n# ''Accusatif pluriel de'' ]."),
(r"\{\{eo-flex\|(+)\|aj\|?(*)\}\}", r"== {{=eo=}} ==\n{{-flex-adj-|eo}}\n'''\1aj''' {{pron|\2}}\n# ''Nominatif pluriel de'' ]."),
(r"\{\{eo-flex\|(+)\|an\|?(*)\}\}", r"== {{=eo=}} ==\n{{-flex-adj-|eo}}\n'''\1an''' {{pron|\2}}\n# ''Accusatif singulier de'' ]."),
],
}
Corriger les articles en français terminés par un o ouvert : ils devraient tous être fermés.
(u"ɔ(])", r"o\1")
Ajout de puces devant le modèle (et pas dans le modèle) du modèle {{R:fon}}
.
Suppression du second argument en X-SAMPA désormais obsolète (remplacé par le code langue).
# Protection paramètre de langue en conflit avec X-SAMPA (en espérant que ce sont bien des codes langue...)
(r"\{\{pron\|(*)\|({2,3})\}\}", r"{{__pron__|\1|\2}}"),
# Prononciation en deuxième paramètre (erreur ?)
(r"\{\{pron\|\|(+)\}\}", r"{{pron|\1}}"),
# Résidu X-SAMPA
(r"\{\{pron\|(+)\|(+)\}\}", r"{{pron|\1}}"),
# Déprotection
(r"\{\{__pron__", r"{{pron"),
Import d'après le Wiktionary russophone de noms de familles russes et leurs déclinaisons.
Création à partir des articles d'adjectifs tchèques du Wiktionnaire.
Remplacés par substitution par {{comparatif de}}
et {{superlatif de}}
, en sortant le numéro de liste du modèle.
{{en-compar}}
et {{en-superl}}
Les modèles {{variante de}}
, {{variante ortho de}}
, {{comparatif de}}
, {{superlatif de}}
avaient un point final inclus qu'il faut sortir pour laisser le choix au rédacteur.
replace.py -namespace:0 "(\{\{)(variante de|variante ortho de|comparatif de|superlatif de)(\|+?\}\})()" "\1\2\3.\4"
Renommage des pages /Aide en /Documentation.
Élimination des cadres de type {{Wikipédia}}
, placés en dehors de sections de langue en haut à droite des pages, suite à discussion sur la Wikidémie. Dans un premier temps, seuls les cadres présents dans une même page que des liens WP sont éliminés, car superflus.
Certaines pages n'ont pas la nouvelle forme de section de langue modifiable (519 pages détectées dans le dump du 10 septembre 2009). Il y a de nouvelles pages créées après la création du dump, mais elles sont en minorité ; la plupart des pages sont très anciennes, comme pointé par Chrisaix. Je suppose que ceux-là sont des résidus du passage du bot sur toutes les pages, le taux d'erreur étant alors de ~5.10-4 (attribuable à des erreurs de connexion, etc.).
La catégorie Catégorie:Erreurs d’orthographe en français mélange vraies erreurs (maline) et erreurs typographiques (coeur). Le bot parcourt donc tous les articles et remplace le modèle {{-erreur-}}
par {{-var-typo-}}
(temporaire). Comme la différence n'est pas simple, chaque modification est confirmée à la main.
{{-erreur-}}
Les sections de langue =fr= n'ont pas été rendues modifiables dans les articles restant à importer du DAF8.
Ajout de puces aux exemples et application du modèle {{source}}
aux citations.
fixes = {
'regex' : True,
'msg' : {
'_default':u"Bot : mise en forme des exemples et citations",
},
'replacements': [
(u"\n#: ?''", u"\n#* ''"),
(u"\n#:\* ?''", u"\n#* ''"),
(u"\n#:: ''", u"\n#*: ''"),
(r"(\n#\*+ ?''.+)''(?) *(" + u"" + r" *|- *)(\(?<small> *\(?|\(|\(?<ref> *\(?) *(.+?)? *(\)? *</small> *\)?|\)|\)? *</ref> *\)?)\.? *(\r)", r"\1\2'' {{source|\5}}\7"),
(r"(\n#\*+ ?''.+)''(?) *(\(? *<small> *\(?|\(? *<ref> *\(?) *(.+?)? *(\)? *</small> *\)?|\)? *</ref> *\)?)\.? *(\r)", r"\1\2'' {{source|\4}}\6"),
# (r"(\n#\*+ ?''.+)''(?) *(\() *(.+?)? *(\))\.? *(\r)", r"\1\2'' {{source|\4}}\6"),
(r"(<small>|<ref>) *(\{\{source\|.+\}\}) *(</small>|</ref>)", r"\2"),
(u"'' * *\{\{source\|", u"'' {{source|"),
(u"\{\{source\|?"+r" *(.+?),? *\}\} *(\r)", r"{{source|\1}}\2"),
(u"(?i)\(Joseph Morsel.+2007\)", u"{{source|Joseph Morsel avec la collaboration de Christine Ducourtieux, ''L’Histoire (du Moyen Âge) est un sport de combat…'', 2007}}"),
]
}
{{ébauche-exe}}
) ;Il reste des exemples sans puce, à cause de leur mise en forme erronée (pas de , modèle en début, etc.) ou pas reconnu.
fixes = {
'regex' : True,
'msg' : {
'_default':u"Bot : mise en forme des exemples et citations",
},
'replacements': [
(u"\n#: ?''", u"\n#* ''"),
(u"\n#:\* ?''", u"\n#* ''"),
(u"\n#:: ?''", u"\n#*: ''"),
(r"(\n#\*+ ?''.+)''(?) *(" + u"" + r" *|- *)(\(?<small> *\(?|\(|\(?<ref> *\(?) *(.+?)? *(\)? *</small> *\)?|\)|\)? *</ref> *\)?)\.? *(\r)", r"\1\2'' {{source|\5}}\7"),
(r"(\n#\*+ ?''.+)''(?) *(\(? *<small> *\(?|\(? *<ref> *\(?) *(.+?)? *(\)? *</small> *\)?|\)? *</ref> *\)?)\.? *(\r)", r"\1\2'' {{source|\4}}\6"),
# (r"(\n#\*+ ?''.+)''(?) *(\() *(.+?)? *(\))\.? *(\r)", r"\1\2'' {{source|\4}}\6"),
(r"(<small>|<ref>) *(\{\{source\|.+\}\}) *(</small>|</ref>)", r"\2"),
(u"'' * *\{\{source\|", u"'' {{source|"),
(u"\{\{source\|?"+r" *(.+?),? *\}\} *(\r)", r"{{source|\1}}\2"),
(u"(?i)\(Joseph Morsel.+2007\)", u"{{source|Joseph Morsel avec la collaboration de Christine Ducourtieux, ''L’Histoire (du Moyen Âge) est un sport de combat…'', 2007}}"),
(u"\n#:: ?()", r"\n#*: \1"),
(u"\n#:: ", u"\n#*: "),
(u"\n#: ?()", r"\n#* \1"),
(u"\n#: ", u"\n#* "),
]
}
Projet : quelques résidus à remplacer.
Depuis | Vers |
---|---|
— | — |
… *. | … |
Remplacement du modèle régio par le synonyme région.
{{régio}}
replace.py -namespace:0 -regex "\{\{régio()" "{{région\1" -ref:Template:régio
Remplacement du modèle supprimer par "supprimer ?", pour le rendre synonyme de {{Supprimer}}
qui n’est pas un bandeau.
{{supprimer}}
template.py supprimer "supprimer ?"
Renommage de l’annexe vers une page de thésaurus : mise à jour des liens.
Remplacement des modèles de langue du type {{=fr=}}
par le modèle {{langue}}
. Cf Wiktionnaire:Prise de décision/Simplifier le Modèle:=xxx=.
python replace.py -fix:languesec -namespace:0 -start:!
fixes = {
'regex' : True,
'msg' : {
'_default':u"Bot : remplacement du modèle de section de langue (cf ])",
},
'replacements': [
("== *\{\{-car-\}\} *==", u"== {{caractère}} =="),
("== *\{\{=(+)=\}\} *==", r"== {{langue|\1}} =="),
]
}
Afin de libérer {{caractère}}
(cf ci-dessus), et accessoirement donner un nom plus descriptif au modèle : remplacement de {{caractère}}
par {{casse}}
.
{{caractère}}
vers {{casse}}
.{{caractère}}
Préparation de la migration de mon bot depuis le Toolserver vers les Labs ().
Il reste beaucoup d'articles utilisant l'ancienne présentation des prononciations : // sans modèle. JackBot est passé sur pas mal de ces articles, mais a oublié par endroit d'enlever l'ancienne prononciation.
\{\{pron\|(.+?)\|(.+?)\}\} /\1/
--> {{pron|\1|\2}}
Suite : afin de remplacer tous les /xxx/, j'ai écrit un fix :
fixes = { 'regex' : True, 'msg' : { '_default':u"Bot : modèle de prononciation: /xxx/ -> {{pron|xxx|lang}}", }, 'replacements': [ # First MARK LANGUE (u"==( *)\{\{langue\|(.+)\}\}( *)== *", u"§§§" + r"\1\2\3" + u"§§§"), (u"(§§§ *)(+)( *§§§+?) \/(*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)(+)( *§§§+?) \/(*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)(+)( *§§§+?) \/(*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)(+)( *§§§+?) \/(*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)(+)( *§§§+?) \/(*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)(+)( *§§§+?) \/(*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)(+)( *§§§+?) \/(*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)(+)( *§§§+?) \/(*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u" \/(*)\/", r" {{pron|\1}}"), # RESTORE LANGUE (u"§§§( *)(.+?)( *)§§§", r"==\1{{langue|\2}}\3=="), # Fix for old API SAMPA duo (u"+ *\{\{(API|IPA)\}\} *:? *(\{\{pron\|.+\}\}) *+\* *\{\{SAMPA\}\} *: *\{\{pron\|+\}\} *(*)", r"* \2\3"), # Fix for broken conversion (u"+ *\{\{pron\|\|+?\}\} *:? *(\{\{pron\|+\}\}) *+\* *\{\{SAMPA\}\} *: *\{\{pron\|+\}\} *(*)", r"* \1\2"), # Same without SAMPA (u"+ *(\{\{pron\|\|+?\}\}|\\]|\\]|API|IPA) *:? *(\{\{pron\|+\}\}) *", r"* \2"), ], 'exceptions': { 'text-contains': [ u'\{\{R:AHD\}\}', u'http://', u'/…/\)', ], } }
{{API}}
et {{SAMPA}}
(voire {{IPA}}
!). Pour corser les choses, JackBot est passé sur ces pages mais ne les a pas changé comme il aurait fallut, donc il faudra attendre que ces pages soient corrigées avant de reprendre les corrections manuelles.Inclusion des catégories et id dans le modèle term.
fixes = { 'regex' : True, 'msg' : { '_default':u"Bot : catégorisation et id paramètres de term", }, 'replacements': [ # Sans catfin (u"<span id=\"?(+)\"?>\{\{terme?\|(.+)\}\}</span><includeonly>\{\{#if:\{\{\{nocat\|\}\}\}\{\{NAMESPACE\}\}\|\|\r?\n?\{\{#ifeq:\{\{\{1\|\}\}\}\|nocat\|\|\\] *\}\} *\}\}</includeonly>", r"{{term|\2|\n|id=\1\n|lang={{{1|}}}\n|cat=\3\n|nocat={{{nocat|}}}\n}}"), # Avec catfin (u"<span id=\"?(+)\"?>\{\{terme?\|(.+)\}\}</span><includeonly>\{\{#if:\{\{\{nocat\|\}\}\}\{\{NAMESPACE\}\}\|\|\r?\n?\{\{#ifeq:\{\{\{1\|\}\}\}\|nocat\|\|\\] *\}\} *\}\}</includeonly>", r"{{term|\2|\n|id=\1\n|lang={{{1|}}}\n|cat=\3\n|catfin=\5\n|nocat={{{nocat|}}}\n}}"), ] }
Même chose avec {{registre}}.
fixes = { 'regex' : True, 'msg' : { '_default':u"Bot : catégorisation et id paramètres de {{registre}}", }, 'replacements': [ # Avec nom langue (u"\{\{registre\|(.+)\|(.)\}\}<includeonly>\{\{#ifeq:\{\{NAMESPACE\}\}\|\|\{\{#if:\{\{\{nocat\|\}\}\}\|\|\{\{#ifeq:\{\{\{1\|\}\}\}\|nocat\|\|<span id=\"(.+?)\"></span>\\]\}\} ?\}\} ?\}\}</includeonly>", r"{{registre\n|1=\1\n|2=\2\n|id=\3\n|lang={{{1|}}}\n|cat=\4\n|nocat={{{nocat|}}}\n}}"), # Sans nom langue (u"\{\{registre\|(.+)\|(.)\}\}<includeonly>\{\{#ifeq:\{\{NAMESPACE\}\}\|\|\{\{#if:\{\{\{nocat\|\}\}\}\|\|\{\{#ifeq:\{\{\{1\|\}\}\}\|nocat\|\|<span id=\"(.+?)\"></span>\\]\}\} ?\}\} ?\}\}</includeonly>", r"{{registre\n|1=\1\n|2=\2\n|id=\3\n|lang={{{1|}}}\n|cat=\4\n|nocat={{{nocat|}}}\n}}"), {{registre|Vieilli|V}}<includeonly>{{#if: {{{nocat|}}}||{{#ifeq:{{{1|}}}|nocat||<span id="vieilli"></span>{{#ifeq:{{NAMESPACE}}||]}} }} }}</includeonly> # Sans nom langue, id avant (u"<span id=\"(.+?)\">\{\{registre\|(.+)\|(.)\}\}</span><includeonly>\{\{#ifeq:\{\{NAMESPACE\}\}\|\|\{\{#if:\{\{\{nocat\|\}\}\}\|\|\{\{#ifeq:\{\{\{1\|\}\}\}\|nocat\|\|\\]\}\} ?\}\} ?\}\}</includeonly>", r"{{registre\n|1=\2\n|2=\3\n|id=\1\n|lang={{{1|}}}\n|cat=\4\n|nocat={{{nocat|}}}\n}}"), # Meilleure catégorie (u"\[\[Catégorie:Modèles de contexte\|", r"[[Catégorie:Modèles de registre|"), ] }
Certaines pages utilisent encore les modèles de langue nus pour les traductions à la place de T (essentiellement parce qu'elles n'ont aucun contenu). D'autres utilisent ces modèles pour autre chose comme les -drv-int-, mais c'est un autre modèle qu'il faudra utiliser.
fixes = { 'regex' : True, 'msg' : { '_default':u"Bot : Traductions sans modèle {{T}}", }, 'replacements': [ # Protection des trad- et trad-- (u"\{\{trad--", r"{{tradMOINSMOINS"), (u"\{\{trad-", r"{{tradMINUS"), # Cas où la traduction est juste ]... (u"\* \{\{en\}\} ?: \\]", r"* {{T|en}} :"), # Ligne répétée de nombreuses fois (u"(\{\{-trad-\}\}+)\* ?\{\{(+)\}\} :", r"\1* {{T|\2}} :"), (u"(\{\{-trad-\}\}+)\* ?\{\{(+)\}\} :", r"\1* {{T|\2}} :"), # Déprotection (u"\{\{tradMINUS", r"{{trad-"), (u"\{\{tradMOINSMOINS", r"{{trad--"), ] }
Pour les sections {{-drv-int-}}, {{-faux-amis-}} et {{-noms-vern-}}, on a aussi des listes de langue mais sans catégorisation particulière. Pour ceux-ci il existe le modèle {{L}} qui a le même rôle que {{L}} dans les traductions.
fixes = { 'regex' : True, 'msg' : { '_default':u"Bot : Modèles de langue en liste remplacés par le modèle {{L}}", }, 'replacements': [ (u"(\{\{-(drv-int|noms-vern|n-vern|dial)-\}\}+)\*\s*rançais\s*:", r"\1* {{L|fr}} :"), (u"(\{\{-(drv-int|noms-vern|n-vern|dial)-\}\}+)\*\s*nglais\s*:", r"\1* {{L|en}} :"), (u"(\{\{-(drv-int|noms-vern|n-vern|dial)-\}\}+)\*\s*llemand\s*:", r"\1* {{L|de}} :"), (u"(\{\{-(drv-int|noms-vern|n-vern|dial)-\}\}+)\*\s*talien\s*:", r"\1* {{L|it}} :"), (u"(\{\{-(drv-int|noms-vern|n-vern|dial)-\}\}+)\*\s*spagnol\s*:", r"\1* {{L|es}} :"), # Ligne répétée de nombreuses fois (u"(\{\{-(drv-int|noms-vern|n-vern|dial)-\}\}+)\*\s*\{\{(+)\}\}\s*:", r"\1* {{L|\3}} :"), ], }
Le modèle {{M|tmef}} est inutilement abrégé : autant le remplacer par le nom complet et compréhensible : {{M|titre mis en forme}}.
Il faudrait changer les modèles de Catégorie:Modèles de base de code langue vers Catégorie:Modèles désuets de code langue, en ajoutant une catégorie spéciale pour les repérer (Catégorie:Utilisations de modèles désuets de code langue) (màj : les modèles étant utilisés dans des liens, on ne peut pas catégoriser ainsi) et un bandeau {{modèle désuet de code langue}}.
fixes = { 'regex' : True, 'msg' : { '_default':u"Bot : nom de langue avec {{nom langue}} + bandeau et catégorie de modèle obsolètes", }, 'replacements': [ (u"^.+<noinclude>\\]</noinclude>", u"{{nom langue|{{subst:PAGENAME}}}}<noinclude>{{modèle désuet de code langue}}</noinclude>"), ], }
Il faudrait changer les modèles de Catégorie:Modèles de code langue (trompeuse) vers Catégorie:Modèles désuets de section de langue, en ajoutant une catégorie spéciale pour les repérer (Catégorie:Utilisations de modèles désuets de section de langue) et un bandeau {{modèle désuet de section de langue}}.
fixes = { 'regex' : True, 'msg' : { '_default':u"Bot : utilisation des noms de langue depuis le module:langues/data + catégorie de modèle obsolètes", }, 'replacements': [ (u"*\{\{=langue=\|.*code=(.+?)*", r"{{langue|\1}}<includeonly>" + u"]</includeonly><noinclude>\n{{" + u"modèle désuet de section de langue|" + r"\1}}</noinclude>"), (u"*\{\{=langue=\|1=\{\{(.+?)\|type=Nom\}\}\}\}*", r"{{langue|\1}}<includeonly>" + u"]</includeonly><noinclude>\n{{" + u"modèle désuet de section de langue|" + r"\1}}</noinclude>"), ], }
Préparation pour la conversion des modèles de section tels que proposé dans WT:Prise de décision/Rendre toutes les sections modifiables.
fixes = { 'regex' : True, 'msg' : { '_default':u"Bot : nouveau modèle {{S}} remplaçant toutes les sections sauf les sections de langue (voir ])", }, 'replacements': [ # Sections normales # À FAIRE # Sections de types de mots (le reste) (u"\{\{-(.+)-.+\}\}", r"=== {{S|\1}} ==="), # Remplacement des abréviations des types de mot (u"\{\{S\|(prov)\|", u"{{S|proverbe|"), (u"\{\{S\|(symb)\|", u"{{S|symbole|"), (u"\{\{S\|(adverbe int|adv int)\|", u"{{S|adverbe interrogatif|"), (u"\{\{S\|(préf|pref)\|", u"{{S|préfixe|"), (u"\{\{S\|(adjectif pos|adj pos|adj possessif)\|", u"{{S|adjectif possessif|"), (u"\{\{S\|(circon|circonf)\|", u"{{S|circonfixe|"), (u"\{\{S\|(sino|sinog)\|", u"{{S|sinogramme|"), (u"\{\{S\|(onoma|onom)\|", u"{{S|onomatopée|"), (u"\{\{S\|(faute d'orthographe|faute d’orthographe|faute)\|", u"{{S|erreur|"), (u"\{\{S\|(art indéfini|article indéf|art indéf)\|", u"{{S|article indéfini|"), (u"\{\{S\|(numér|num)\|", u"{{S|numéral|"), (u"\{\{S\|(nom science|nom sciences|nom scient)\|", u"{{S|nom scientifique|"), (u"\{\{S\|(class|classif)\|", u"{{S|classificateur|"), (u"\{\{S\|(interj)\|", u"{{S|interjection|"), (u"\{\{S\|(verb pr|verbe pr|verbe pronom)\|", u"{{S|verbe pronominal|"), (u"\{\{S\|(var typo|variante par contrainte typographique|variante typo)\|", u"{{S|variante typographique|"), (u"\{\{S\|(adjectif qualificatif|adj)\|", u"{{S|adjectif|"), (u"\{\{S\|(art défini|article déf|art déf)\|", u"{{S|article défini|"), (u"\{\{S\|(suf|suff)\|", u"{{S|suffixe|"), (u"\{\{S\|(loc-phr)\|", u"{{S|locution phrase|"), (u"\{\{S\|(loc)\|", u"{{S|locution|"), (u"\{\{S\|(pronom réfl|pronom réfléchi|pronom pers)\|", u"{{S|pronom personnel|"), (u"\{\{S\|(pronom rel)\|", u"{{S|pronom relatif|"), (u"\{\{S\|(post|postpos)\|", u"{{S|postposition|"), (u"\{\{S\|(pronom int|pronom inter)\|", u"{{S|pronom interrogatif|"), (u"\{\{S\|(quantif)\|", u"{{S|quantifieur|"), (u"\{\{S\|(rad)\|", u"{{S|radical|"), (u"\{\{S\|(part)\|", u"{{S|particule|"), (u"\{\{S\|(part num|part numérale|particule num)\|", u"{{S|particule numérale|"), (u"\{\{S\|(art part|art partitif|article part)\|", u"{{S|article partitif|"), (u"\{\{S\|(inf)\|", u"{{S|infixe|"), (u"\{\{S\|(conj)\|", u"{{S|conjonction|"), (u"\{\{S\|(nom fam)\|", u"{{S|nom de famille|"), (u"\{\{S\|(interf)\|", u"{{S|interfixe|"), (u"\{\{S\|(adverbe rel|adv rel)\|", u"{{S|adverbe relatif|"), (u"\{\{S\|(pronom dém)\|", u"{{S|pronom démonstratif|"), (u"\{\{S\|(adv pron|adv pr|adverbe pr|adv pronom)\|", u"{{S|adverbe pronominal|"), (u"\{\{S\|(adjectif dém|adj dém|adj démonstratif)\|", u"{{S|adjectif démonstratif|"), (u"\{\{S\|(verb)\|", u"{{S|verbe|"), (u"\{\{S\|(adj num|adj numéral|adjectif num)\|", u"{{S|adjectif numéral|"), (u"\{\{S\|(adj indéfini|adj indéf|adjectif indéf)\|", u"{{S|adjectif indéfini|"), (u"\{\{S\|(nom pr)\|", u"{{S|nom propre|"), (u"\{\{S\|(substantif|nom commun)\|", u"{{S|nom|"), (u"\{\{S\|(pronom pos)\|", u"{{S|pronom possessif|"), (u"\{\{S\|(pronom indéf)\|", u"{{S|pronom indéfini|"), (u"\{\{S\|(adj exclamatif|adj excl|adjectif excl)\|", u"{{S|adjectif exclamatif|"), (u"\{\{S\|(prép)\|", u"{{S|préposition|"), (u"\{\{S\|(aff)\|", u"{{S|affixe|"), (u"\{\{S\|(verb aux|aux|verbe auxiliaire|verbe aux)\|", u"{{S|auxiliaire|"), (u"\{\{S\|(conj coord|conjonction coord)\|", u"{{S|conjonction de coordination|"), (u"\{\{S\|(adj interrogatif|adj int|adjectif int)\|", u"{{S|adjectif interrogatif|"), (u"\{\{S\|(dét)\|", u"{{S|déterminant|"), (u"\{\{S\|(adv)\|", u"{{S|adverbe|"), (u"\{\{S\|(art)\|", u"{{S|article|"), ], }
Préparation pour la conversion des modèles de section tels que proposé dans WT:Prise de décision/Rendre toutes les sections modifiables. Voir planification Utilisateur:Darkdadaah/Planification/Migration modèle S.
fixes = { 'regex' : True, 'msg' : { '_default':u"Bot : nouveau modèle {{S}} remplaçant toutes les sections sauf les sections de langue (voir ])", }, 'replacements': [ # Conversion de certains modèles de section non orthodoxes (pas de la forme {{-xxx-}}) (u"\{\{trad-trier\}\}", r"{{-trad-trier-}}"), # Nettoyage de part et d'autre du titre (u"*(=+ *\{\{S\|.+\}\} *=+|\{\{-.+-.*\}\})*", r"\1"), (u"\n()*(\{\{-.+?-|==+ *\{\{S\|)", r"\n\1\n\2"), # S'il y a quelque chose avant sur la même ligne : sépare (u"(\{\{-.+?-.*\}\}|==+ *\{\{S\|.+\}\} *==+)*(+)", r"\1\n\2"), # S'il y a quelque chose après sur la même ligne : sépare (u"==(+\r)", r"==\1\n"), # Conversion des anciens modèles (u"\n\{\{-(.+?)-\}\}", r"\n===== {{S|\1}} ====="), # Sections normales : niveau 5 (u"\n\{\{-(.+?)-\|(.*?)\}\}", r"\n === {{S|\1|\2}} ==="), # Types de mots (car avec paramètre) : niveau 3 (u"\{\{S\|flex-(.+?)\|(.+?)\}\}", r"{{S|\1|\2|flexion}}"), # Flexion : maintenant un simple paramètre (numéro 2) (u"\{\{S\|loc-(.+?)\}\}", r"{{S|\1}}"), # Locution : maintenant déduit automatiquement donc inutile # Sections sans modèles : on leur met quand même le modèle pour les repérer (u"==*(+)*==", r" == {{S|\1}} =="), # Sections de titres normaux (u"\n*=**\{\{S\|(note)\}\}*=**\r", u"\n===== {{S|note}} ====="), (u"\n*=**\{\{S\|(vocabulaireproche|vocabulaireapparenté|voc|vocabulaire)\}\}*=**\r", u"\n ==== {{S|vocabulaire}} ===="), (u"\n=+ *\{\{S\|(etym|étym|étymologie)\}\} *=+", u"\n === {{S|étymologie}} ==="), (u"\n*=**\{\{S\|(tropo|troponymes)\}\}*=**\r", u"\n ==== {{S|troponymes}} ===="), (u"\n*=**\{\{S\|(écrit|écriture)\}\}*=**\r", u"\n === {{S|écriture}} ==="), (u"\n*=**\{\{S\|(dico-sino|sino-dico|dicosinogrammes)\}\}*=**\r", u"\n === {{S|dico sinogrammes}} ==="), (u"\n*=**\{\{S\|(paro|paronymes)\}\}*=**\r", u"\n ==== {{S|paronymes}} ===="), (u"\n*=**\{\{S\|(trad|traductions)\}\}*=**\r", u"\n ==== {{S|traductions}} ===="), (u"\n*=**\{\{S\|(q-syn|quasi-syn|quasi-synonymes)\}\}*=**\r", u"\n ==== {{S|quasi-synonymes}} ===="), (u"\n*=**\{\{S\|(drv-int|dérivésint|dérivésautreslangues)\}\}*=**\r", u"\n ==== {{S|dérivés autres langues}} ===="), (u"\n*=**\{\{S\|(expr|exp|expressions)\}\}*=**\r", u"\n ==== {{S|expressions}} ===="), (u"\n*=**\{\{S\|(anto|ant|antonymes)\}\}*=**\r", u"\n ==== {{S|antonymes}} ===="), (u"\n*=**\{\{S\|(homo|homophones)\}\}*=**\r", u"\n ==== {{S|homophones}} ===="), (u"\n*=**\{\{S\|(pron|prononciations|prononciation)\}\}*=**\r", u"\n === {{S|prononciation}} ==="), (u"\n*=**\{\{S\|(hyper|hyperonymes)\}\}*=**\r", u"\n ==== {{S|hyperonymes}} ===="), (u"\n*=**\{\{S\|(décl|déclinaison)\}\}*=**\r", u"\n ==== {{S|déclinaison}} ===="), (u"\n*=**\{\{S\|(voir|voiraussi)\}\}*=**\r", u"\n === {{S|voir aussi}} ==="), (u"\n*=**\{\{S\|(compos|composés)\}\}*=**\r", u"\n ==== {{S|composés}} ===="), (u"\n*=**\{\{S\|(var|variantes)\}\}*=**\r", u"\n ==== {{S|variantes}} ===="), (u"\n*=**\{\{S\|(holo|holonymes)\}\}*=**\r", u"\n ==== {{S|holonymes}} ===="), (u"\n*=**\{\{S\|(gent|gentilés)\}\}*=**\r", u"\n ==== {{S|gentilés}} ===="), (u"\n*=**\{\{S\|(translit|translittérations)\}\}*=**\r", u"\n ==== {{S|translittérations}} ===="), (u"\n*=**\{\{S\|(tran|trans|transcriptions)\}\}*=**\r", u"\n ==== {{S|transcriptions}} ===="), (u"\n*=**\{\{S\|(notes)\}\}*=**\r", u"\n===== {{S|notes}} ====="), (u"\n*=**\{\{S\|(drv|dérivés)\}\}*=**\r", u"\n ==== {{S|dérivés}} ===="), (u"\n*=**\{\{S\|(app|apr|apparentésétymologiques|apparentés)\}\}*=**\r", u"\n ==== {{S|apparentés}} ===="), (u"\n*=**\{\{S\|(ortho-arch|anciennesortho|anciennesorthographes)\}\}*=**\r", u"\n ==== {{S|anciennes orthographes}} ===="), (u"\n*=**\{\{S\|(conjug|conjugaison)\}\}*=**\r", u"\n ==== {{S|conjugaison}} ===="), (u"\n*=**\{\{S\|(référence|réf|ref|références)\}\}*=**\r", u"\n === {{S|références}} ==="), (u"\n*=**\{\{S\|(hist|attest|attestations)\}\}*=**\r", u"\n ==== {{S|attestations}} ===="), (u"\n*=**\{\{S\|(syn|synonymes)\}\}*=**\r", u"\n ==== {{S|synonymes}} ===="), (u"\n*=**\{\{S\|(abrév|abréviations)\}\}*=**\r", u"\n ==== {{S|abréviations}} ===="), (u"\n*=**\{\{S\|(dial|variantesdialectes|variantesdial|dialectes|var-dial|variantesdialectales)\}\}*=**\r", u"\n ==== {{S|variantes dialectales}} ===="), (u"\n*=**\{\{S\|(variantesorthographiques|var-ortho|variantesortho)\}\}*=**\r", u"\n ==== {{S|variantes ortho}} ===="), (u"\n*=**\{\{S\|(faux-amis)\}\}*=**\r", u"\n ==== {{S|faux-amis}} ===="), (u"\n*=**\{\{S\|(méro|méronymes)\}\}*=**\r", u"\n ==== {{S|méronymes}} ===="), (u"\n*=**\{\{S\|(tradtrier|trad-trier|traductionsàtrier)\}\}*=**\r", u"\n===== {{S|traductions à trier}} ====="), (u"\n*=**\{\{S\|(nomsvern|nomsvernaculaires)\}\}*=**\r", u"\n ==== {{S|noms vernaculaires}} ===="), (u"\n*=**\{\{S\|(hypo|hyponymes)\}\}*=**\r", u"\n ==== {{S|hyponymes}} ===="), (u"\n*=**\{\{S\|(cit|citations)\}\}*=**\r", u"\n ==== {{S|citations}} ===="), (u"\n*=**\{\{S\|(vidéo|imagevidéo)\}\}*=**\r", u"\n ==== {{S|image vidéo}} ===="), (u"\n*=**\{\{S\|(dimin|diminutifs)\}\}*=**\r", u"\n ==== {{S|diminutifs}} ===="), (u"\n*=**\{\{S\|(anagr|anagramme|anagrammes)\}\}*=**\r", u"\n === {{S|anagrammes}} ==="), # Sections de types (u"\n*=**\{\{S\|(pronom)\|(.+?)\}\}*=**\r", u"\n === {{S|pronom|" + r"\2}} ==="), (u"\n*=**\{\{S\|(pronom-adjectif)\|(.+?)\}\}*=**\r", u"\n === {{S|pronom-adjectif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(copule)\|(.+?)\}\}*=**\r", u"\n === {{S|copule|" + r"\2}} ==="), (u"\n*=**\{\{S\|(symb|symbole)\|(.+?)\}\}*=**\r", u"\n === {{S|symbole|" + r"\2}} ==="), (u"\n*=**\{\{S\|(adverbeint|adv-int|adverbeinterrogatif)\|(.+?)\}\}*=**\r", u"\n === {{S|adverbe interrogatif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(préf|préfixe)\|(.+?)\}\}*=**\r", u"\n === {{S|préfixe|" + r"\2}} ==="), (u"\n*=**\{\{S\|(adjectifpos|adj-pos|adjectifpossessif)\|(.+?)\}\}*=**\r", u"\n === {{S|adjectif possessif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(circon|circonf|circonfixe)\|(.+?)\}\}*=**\r", u"\n === {{S|circonfixe|" + r"\2}} ==="), (u"\n*=**\{\{S\|(rafsi)\|(.+?)\}\}*=**\r", u"\n === {{S|rafsi|" + r"\2}} ==="), (u"\n*=**\{\{S\|(sino|sinog|sinogramme)\|(.+?)\}\}*=**\r", u"\n === {{S|sinogramme|" + r"\2}} ==="), (u"\n*=**\{\{S\|(onoma|onom|onomatopée)\|(.+?)\}\}*=**\r", u"\n === {{S|onomatopée|" + r"\2}} ==="), (u"\n*=**\{\{S\|(rad|radical)\|(.+?)\}\}*=**\r", u"\n === {{S|radical|" + r"\2}} ==="), (u"\n*=**\{\{S\|(fauted'orthographe|fauted’orthographe|faute|erreur)\|(.+?)\}\}*=**\r", u"\n === {{S|erreur|" + r"\2}} ==="), (u"\n*=**\{\{S\|(art-indéf|articleind|articleindéfini)\|(.+?)\}\}*=**\r", u"\n === {{S|article indéfini|" + r"\2}} ==="), (u"\n*=**\{\{S\|(numér|num|numéral)\|(.+?)\}\}*=**\r", u"\n === {{S|numéral|" + r"\2}} ==="), (u"\n*=**\{\{S\|(nom-sciences|nomscient|nomscience|nomscientifique)\|(.+?)\}\}*=**\r", u"\n === {{S|nom scientifique|" + r"\2}} ==="), (u"\n*=**\{\{S\|(class|classif|classificateur)\|(.+?)\}\}*=**\r", u"\n === {{S|classificateur|" + r"\2}} ==="), (u"\n*=**\{\{S\|(interj|interjection)\|(.+?)\}\}*=**\r", u"\n === {{S|interjection|" + r"\2}} ==="), (u"\n*=**\{\{S\|(verb-pr|verbepr|verbepronominal)\|(.+?)\}\}*=**\r", u"\n === {{S|verbe pronominal|" + r"\2}} ==="), (u"\n*=**\{\{S\|(variantetypo|var-typo|varianteparcontraintetypographique|variantetypographique)\|(.+?)\}\}*=**\r", u"\n === {{S|variante typographique|" + r"\2}} ==="), (u"\n*=**\{\{S\|(adjectifqualificatif|adj|adjectif)\|(.+?)\}\}*=**\r", u"\n === {{S|adjectif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(articledéf|art-déf|articledéfini)\|(.+?)\}\}*=**\r", u"\n === {{S|article défini|" + r"\2}} ==="), (u"\n*=**\{\{S\|(lettre)\|(.+?)\}\}*=**\r", u"\n === {{S|lettre|" + r"\2}} ==="), (u"\n*=**\{\{S\|(pré-verbe)\|(.+?)\}\}*=**\r", u"\n === {{S|pré-verbe|" + r"\2}} ==="), (u"\n*=**\{\{S\|(prov|proverbe)\|(.+?)\}\}*=**\r", u"\n === {{S|proverbe|" + r"\2}} ==="), (u"\n*=**\{\{S\|(nomcommun|substantif|nom)\|(.+?)\}\}*=**\r", u"\n === {{S|nom|" + r"\2}} ==="), (u"\n*=**\{\{S\|(pronomréf|pronom-pers|pronom-per|pronomréfléchi|pronom-réfl|pronompersonnel)\|(.+?)\}\}*=**\r", u"\n === {{S|pronom personnel|" + r"\2}} ==="), (u"\n*=**\{\{S\|(pronom-rel|pronomrel|pronomrelatif)\|(.+?)\}\}*=**\r", u"\n === {{S|pronom relatif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(post|postpos|postposition)\|(.+?)\}\}*=**\r", u"\n === {{S|postposition|" + r"\2}} ==="), (u"\n*=**\{\{S\|(pronomint|pronom-int|pronominterrogatif)\|(.+?)\}\}*=**\r", u"\n === {{S|pronom interrogatif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(loc|locution)\|(.+?)\}\}*=**\r", u"\n === {{S|locution|" + r"\2}} ==="), (u"\n*=**\{\{S\|(pré-nom)\|(.+?)\}\}*=**\r", u"\n === {{S|pré-nom|" + r"\2}} ==="), (u"\n*=**\{\{S\|(quantif|quantifieur)\|(.+?)\}\}*=**\r", u"\n === {{S|quantificateur|" + r"\2}} ==="), (u"\n*=**\{\{S\|(suf|suff|suffixe)\|(.+?)\}\}*=**\r", u"\n === {{S|suffixe|" + r"\2}} ==="), (u"\n*=**\{\{S\|(part|particule)\|(.+?)\}\}*=**\r", u"\n === {{S|particule|" + r"\2}} ==="), (u"\n*=**\{\{S\|(gismu)\|(.+?)\}\}*=**\r", u"\n === {{S|gismu|" + r"\2}} ==="), (u"\n*=**\{\{S\|(art-part|articlepar|articlepartitif)\|(.+?)\}\}*=**\r", u"\n === {{S|article partitif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(part-num|particulenum|particulenumérale)\|(.+?)\}\}*=**\r", u"\n === {{S|particule numérale|" + r"\2}} ==="), (u"\n*=**\{\{S\|(conj|conjonction)\|(.+?)\}\}*=**\r", u"\n === {{S|conjonction|" + r"\2}} ==="), (u"\n*=**\{\{S\|(nom-fam|nomdefamille)\|(.+?)\}\}*=**\r", u"\n === {{S|nom de famille|" + r"\2}} ==="), (u"\n*=**\{\{S\|(interf|interfixe)\|(.+?)\}\}*=**\r", u"\n === {{S|interfixe|" + r"\2}} ==="), (u"\n*=**\{\{S\|(adv-rel|adverberel|adverberelatif)\|(.+?)\}\}*=**\r", u"\n === {{S|adverbe relatif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(pronomdém|pronom-dém|pronomdémonstratif)\|(.+?)\}\}*=**\r", u"\n === {{S|pronom démonstratif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(adverbepro|adv-pron|adverbepronominal)\|(.+?)\}\}*=**\r", u"\n === {{S|adverbe pronominal|" + r"\2}} ==="), (u"\n*=**\{\{S\|(adj-dém|adjectifdém|adjectifdémonstratif)\|(.+?)\}\}*=**\r", u"\n === {{S|adjectif démonstratif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(verb|verbe)\|(.+?)\}\}*=**\r", u"\n === {{S|verbe|" + r"\2}} ==="), (u"\n*=**\{\{S\|(adjectifnum|adj-num|adjectifnuméral)\|(.+?)\}\}*=**\r", u"\n === {{S|adjectif numéral|" + r"\2}} ==="), (u"\n*=**\{\{S\|(adjectifind|adj-indéf|adjectifindéfini)\|(.+?)\}\}*=**\r", u"\n === {{S|adjectif indéfini|" + r"\2}} ==="), (u"\n*=**\{\{S\|(inf|infixe)\|(.+?)\}\}*=**\r", u"\n === {{S|infixe|" + r"\2}} ==="), (u"\n*=**\{\{S\|(nom-pr|nompropre)\|(.+?)\}\}*=**\r", u"\n === {{S|nom propre|" + r"\2}} ==="), (u"\n*=**\{\{S\|(pronompos|pronom-pos|pronompossessif)\|(.+?)\}\}*=**\r", u"\n === {{S|pronom possessif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(pronomind|pronom-indéf|pronomindéfini)\|(.+?)\}\}*=**\r", u"\n === {{S|pronom indéfini|" + r"\2}} ==="), (u"\n*=**\{\{S\|(adj-excl|adjectifexc|adjectifexclamatif)\|(.+?)\}\}*=**\r", u"\n === {{S|adjectif exclamatif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(patronyme)\|(.+?)\}\}*=**\r", u"\n === {{S|patronyme|" + r"\2}} ==="), (u"\n*=**\{\{S\|(prép|préposition)\|(.+?)\}\}*=**\r", u"\n === {{S|préposition|" + r"\2}} ==="), (u"\n*=**\{\{S\|(prénom)\|(.+?)\}\}*=**\r", u"\n === {{S|prénom|" + r"\2}} ==="), (u"\n*=**\{\{S\|(aff|affixe)\|(.+?)\}\}*=**\r", u"\n === {{S|affixe|" + r"\2}} ==="), (u"\n*=**\{\{S\|(phr|loc-phr|locution-phrase|locutionphrase|locution-phrase)\|(.+?)\}\}*=**\r", u"\n === {{S|locution-phrase|" + r"\2}} ==="), (u"\n*=**\{\{S\|(conj-coord|conjonctioncoo|conjonctiondecoordination)\|(.+?)\}\}*=**\r", u"\n === {{S|conjonction de coordination|" + r"\2}} ==="), (u"\n*=**\{\{S\|(adj-int|adjectifint|adjectifinterrogatif)\|(.+?)\}\}*=**\r", u"\n === {{S|adjectif interrogatif|" + r"\2}} ==="), (u"\n*=**\{\{S\|(dét|déterminant)\|(.+?)\}\}*=**\r", u"\n === {{S|déterminant|" + r"\2}} ==="), (u"\n*=**\{\{S\|(adv|adverbe)\|(.+?)\}\}*=**\r", u"\n === {{S|adverbe|" + r"\2}} ==="), (u"\n*=**\{\{S\|(art|article)\|(.+?)\}\}*=**\r", u"\n === {{S|article|" + r"\2}} ==="), # Post traitement : espaces avant et après les sections (u"+==", u"\n\n=="), # On met une ligne vide avant, et une seule (u"==+", u"==\n"), # Pas de ligne vide après par contre (donc deux titres successifs ne sont pas espacés) (u"^+", u""), # Éviter les lignes vides en début de page (enlève la ligne vide du premier titre aussi) # Paramètre num toujours à la fin (u"\{\{S\|(.+?)(\|num=+?)(\|?.*)\}\}", r"{{S|\1\3\2}}"), ], }
461 # Don't make changes if only cosmetic changes occurred (e.g. deleted or added empty lines) 462 original_text_blank = re.sub(r'+', '', original_text) 463 new_text_blank = re.sub(r'+', '', new_text) 464 #pywikibot.output(original_text_blank) 465 #pywikibot.output(new_text_blank) 466 467 if new_text_blank == original_text_blank: 468 pywikibot.output(u'No changes were necessary (only cosmetic) in %s' 469 % page.title(asLink=True)) 470 break
Tous les anciens modèles sont maintenant dans la catégorie Catégorie:Wiktionnaire:Utilisation d'anciens modèles de section.
Quelques remplacements :
fixes = { 'regex' : True, 'msg' : { '_default':u"Bot : Modèles de section -> sections normales", }, 'replacements': [ (u" *\{\{\s*-n(otes?)-\s*\}\} *", r"==== N\1 ===="), (u" *\{\{\s*-(réf|ref|références|references)-\s*\}\} *", u"=== Références ==="), (u" *\{\{\s*-voir-\s*\}\} *", r"=== Voir aussi ==="), ], }
sections_S
(voir plus haut).