Skip to content

Commit

Permalink
- Utiliser le switch pour les liens internes
Browse files Browse the repository at this point in the history
- Ignorer les articles sans chiffre comme `Article Annexe II` dans CPI
  • Loading branch information
tianyikillua committed Mar 7, 2017
1 parent 44a7f42 commit 0dcef43
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions marcheolex/exporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,8 @@ def creer_historique_texte(texte, format, dossier, cache):
contenu = creer_sections(contenu, 1, None, versions_sections, articles, version_texte, cid, format, [], dossier, cache)

# Ajouter des liens internes vers articles
contenu = ajouter_liens_internes(contenu)
if 'lien' in format['metadonnees']:
contenu = ajouter_liens_internes(contenu)

# Enregistrement du fichier
if format['organisation'] == 'fichier-unique':
Expand Down Expand Up @@ -241,6 +242,7 @@ def creer_articles_section(texte, niveau, version_section_parente, articles, ver
def ajouter_liens_internes(contenu):

# Corrections mineures pour les décrets *
# TODO afficher un message d'avertissement
for l in ['R', 'D']:
contenu = contenu.replace(l + '* ', l + '*') # suppr. un espace en + dans l'art.
contenu = contenu.replace(l + '. * ', l + '*. ') # corrig. mauvais formattages
Expand All @@ -252,15 +254,16 @@ def ajouter_liens_internes(contenu):
lignes = [l.strip() for l in contenu.split('\n')]
for ligne in lignes:
info = ligne.partition('# Article ')[2]
if info:
ind = re.search('\d', info).start()
num = re.search('\d', info)
if num:
ind = num.start()
type_article = info[:ind]
num_article = info[ind:]
article = type_article + '. ' + num_article
contenu = contenu.replace(type_article + '.' + num_article, article)
contenu = contenu.replace(type_article + '.' + num_article, article) # ajouter un espace
type_article_lien = type_article.lower().replace('*', '')
article_avec_lien = '[' + article.replace('*', r'\*') + ']' + \
'(#article-' + type_article_lien + num_article + ')'
for symbole in [' ', ',', '.']: # rechercher des mots exacts
contenu = contenu.replace(article + symbole, article_avec_lien + symbole)
return contenu
return contenu

0 comments on commit 0dcef43

Please sign in to comment.