Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible fix of #2 #18

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

tianyikillua
Copy link
Contributor

@tianyikillua tianyikillua commented Dec 28, 2016

Résultat : http://www.litianyi.me/ceseda

Règles constatées du fichier brut Markdown généré :

  • Si on a un article en section # Article L/R/R*/D123-1 (le niveau n'est pas important ici)
  • Alors dans le corps on l'utilise comme L/R/R*/D. 123-1 (ajout d'un .)

Quelques mauvais formattages ponctuels ont été corrigés.

Méthode

Cf. https://kramdown.gettalong.org/converter/html.html et http://stackoverflow.com/questions/6695439/how-to-link-to-a-named-anchor-in-multimarkdown

  • # Article L123-1 a pour lien interne (#article-l123-1)
  • ## Article L123-1 a aussi pour lien interne (#article-l123-1)
  • # Article R*123-1 a pour lien interne (#article-r123-1)

Perspective

Un (seul) bémol de l'implémentation présentée ici : parfois dans le corps on fait référence à un article disons L. 123-1 provenant d'un autre code. Si par chance dans notre code en question on a aussi le même article # Article L123-1, ainsi tous les L. 123-1 dans le corps vont être transformés en hyperliens vers l'article du code. Exemple : rechercher

article L. 821-1 du code de la sécurité sociale

dans http://www.litianyi.me/ceseda.

La résolution de ce bug n'est pas triviale à ma première humble vue (vérifier si dans le corps l'article n'est pas suivi par du ?).

@tianyikillua
Copy link
Contributor Author

tianyikillua commented Dec 28, 2016

On peut voir dans le corps que l'on dit aussi souvent "article L. 123-1" du présent code. Ainsi même si l'article L. 123-1 est suivi par un du, il faut encore vérifier s'il n'était pas suivi par du présent code...

Copy link
Member

@Seb35 Seb35 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

C’est globalement ok pour l’ajouter, il faudrait surtout rajouter le switch (avec par défaut pas d’ajout de liens) et corriger le petit bug.

for ligne in lignes:
info = ligne.partition('# Article ')[2]
if info:
ind = re.search('\d', info).start()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ce passage bugue lorsqu’il n’y a pas de chiffre, par exemple « Article Annexe II » (code la propriété intellectuelle, version consolidée au 20 novembre 1998).

'(#article-' + type_article_lien + num_article + ')'
for symbole in [' ', ',', '.']: # rechercher des mots exacts
contenu = contenu.replace(article + symbole, article_avec_lien + symbole)
return contenu
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rajouter une fin de ligne normale dans un prochain commit

@@ -133,6 +134,9 @@ def creer_historique_texte(texte, format, dossier, cache):
# Créer les sections (donc tout le texte)
contenu = creer_sections(contenu, 1, None, versions_sections, articles, version_texte, cid, cache)

# Ajouter des liens internes vers articles
contenu = ajouter_liens_internes(contenu)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ajouter donc un switch (~feature toggle) à cet endroit-là pour créer une option de format, cf #20.

contenu = contenu.replace(l + '. * ', l + '*. ') # corrig. mauvais formattages
contenu = contenu.replace(l + '. *', l + '*. ')
contenu = contenu.replace(l + '.* ', l + '*. ')
contenu = contenu.replace(l + '.*', l + '*. ')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je suis pas trop fan de modifier le texte, même s’il a des coquilles comme ça, mais je comprend que ça soit plus facile à manipuler pour rajouter les liens. J’hésite entre deux propositions :

  • conserver cette implémentation et avertir que le texte est légèrement modifié [enfin, je pense que je devrais mettre l’avertissement de toutes façon]
  • ajouter une option de format “conservatif ou non”, et dans ce cas j’utiliserai cette option également dans markdown.py car il y a quelques modifs aussi

@Seb35
Copy link
Member

Seb35 commented Feb 5, 2017

À plus long terme, il faudra utiliser les données de liens présentes dans la base LEGI en XML, en complément et/ou en seule source de données. Mais pour ce faire, il faut stocker dans la base de données ces informations, ce qui n’est pas encore le cas.

Syntaxe : --metadonnees="lien"
Les options META seront cumulables : --metadonnees="lien tdm"

Cf. Issue Legilibre#20
Ignorer les articles sans chiffre comme `Article Annexe II` dans CPI
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants