up format typo
This commit is contained in:
parent
dd196d7392
commit
fbaad4fbe5
@ -1,63 +0,0 @@
|
||||
import argparse
|
||||
import re
|
||||
|
||||
|
||||
def upper_capital_prefix_postfix(match,prefix,postfix):
|
||||
return prefix + upper_capital(match) + postfix
|
||||
|
||||
def upper_capital(match):
|
||||
return match.group(1).capitalize()
|
||||
|
||||
def upper_capital_dot(match):
|
||||
return upper_capital_prefix_postfix(match, '','.')
|
||||
|
||||
def upper_capital_dot_interrogation(match):
|
||||
return upper_capital_prefix_postfix(match, '','?')
|
||||
|
||||
def upper_capital_dot_exclamation(match):
|
||||
return upper_capital_prefix_postfix(match, '','!')
|
||||
|
||||
def upper_capital_org_title(match):
|
||||
return upper_capital_prefix_postfix(match, '* ','')
|
||||
|
||||
def upper_capital_tiret(match):
|
||||
return '- ' + upper_capital(match)
|
||||
|
||||
|
||||
def normalize_text(content):
|
||||
# Remplacer les doubles ou plus d'espaces par des espaces simples
|
||||
content = re.sub(r'\s+',' ', content)
|
||||
# Remplacer les retours à la ligne consécutifs supérieurs à 2 par au maximum 2
|
||||
# content = re.sub(r'\n\n\n', '\n\n', content)
|
||||
# Corriger les règles d'espacement avec les deux points
|
||||
# content = re.sub(r'\s+', '. ', content)
|
||||
# Remplacer les eo par des vrais e dans l'o
|
||||
content = re.sub(r'eo', 'œ', content)
|
||||
# Remplacer trois points par le vrai caractère trois points
|
||||
content = re.sub(r'\.\.\.|\.{3}', '…', content)
|
||||
return content
|
||||
|
||||
def capitalize_text(file_path):
|
||||
with open(file_path, 'r') as file:
|
||||
content = file.read()
|
||||
# Capitaliser les premiers mots des phrases
|
||||
content = re.sub(r'(\w+.*)\.', upper_capital_dot, content)
|
||||
content = re.sub(r'(\w+.*)\?', upper_capital_dot_interrogation, content)
|
||||
content = re.sub(r'(\w+.*)\!', upper_capital_dot_exclamation, content)
|
||||
# Capitaliser les mots dans les titres Org-mode
|
||||
# content = re.sub(r'\*+\[([^\]]+)\]', r'* \1', content)
|
||||
content = re.sub(r'\*+\s(\w+)', upper_capital_org_title, content)
|
||||
# Capitaliser les éléments de liste
|
||||
content = re.sub(r'\-\s*(\w+)', upper_capital_tiret, content)
|
||||
|
||||
|
||||
content = normalize_text(content)
|
||||
|
||||
with open(file_path, 'w') as file:
|
||||
file.write(content)
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description='Capitaliser les premiers mots des phrases dans un fichier texte.')
|
||||
parser.add_argument('file_path', help='Le chemin du fichier à corriger.')
|
||||
args = parser.parse_args()
|
||||
capitalize_text(args.file_path)
|
@ -65,9 +65,22 @@ def sauvegarder_si_modifie(contenu_corrige, nb_maj, nb_sauts, nb_espaces):
|
||||
else:
|
||||
print("Aucune modification à sauvegarder")
|
||||
|
||||
def corriger_typo_entete(contenu):
|
||||
"""Corrige les entêtes orgmode en remplaçant ': ' par ':' uniquement dans les lignes d'entête."""
|
||||
lignes = contenu.split('\n')
|
||||
lignes_corrigees = []
|
||||
|
||||
for ligne in lignes:
|
||||
if ligne.startswith('#+'): # Ne traite que les lignes d'entête
|
||||
ligne = re.sub(r"^(#\+[A-Z_]+): ", r"\1:", ligne)
|
||||
lignes_corrigees.append(ligne)
|
||||
return '\n'.join(lignes_corrigees)
|
||||
|
||||
if __name__ == "__main__":
|
||||
contenu_corrige = corriger_typo(contenu)
|
||||
|
||||
|
||||
contenu_corrige = corriger_typo_entete(contenu_corrige)
|
||||
nb_maj, nb_sauts, nb_entetes, nb_espaces = comparer_textes(contenu, contenu_corrige)
|
||||
sauvegarder_si_modifie(contenu_corrige, nb_maj, nb_sauts, nb_espaces)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user