-
Notifications
You must be signed in to change notification settings - Fork 17
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
base: master
Are you sure you want to change the base?
Possible fix of #2 #18
Conversation
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 |
Ainsi tous les liens dans http://www.litianyi.me/ceseda fonctionnent.
There was a problem hiding this 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.
marcheolex/exporter.py
Outdated
for ligne in lignes: | ||
info = ligne.partition('# Article ')[2] | ||
if info: | ||
ind = re.search('\d', info).start() |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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
marcheolex/exporter.py
Outdated
@@ -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) |
There was a problem hiding this comment.
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 + '*. ') |
There was a problem hiding this comment.
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
À 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
aad8424
to
36b9f62
Compare
Résultat : http://www.litianyi.me/ceseda
Règles constatées du fichier brut Markdown généré :
# Article L/R/R*/D123-1
(le niveau n'est pas important ici)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 lesL. 123-1
dans le corps vont être transformés en hyperliens vers l'article du code. Exemple : rechercherdans 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
?).