rewriter of gemini links

This commit is contained in:
Tykayn 2025-02-28 19:48:30 +01:00 committed by tykayn
parent e73398b3b2
commit 1574a22100
4 changed files with 33 additions and 13 deletions

View file

@ -445,20 +445,35 @@ def org_to_gmi(org_text: str) -> str:
Args:
- org_text (str): Le texte au format Org à convertir.
"""
# Nettoyer le contenu org en retirant les lignes commençant par #+post
cleaned_content = '\n'.join( line for line in org_text.splitlines() if not line.strip().startswith('#+') )
cleaned_content = '\n'.join(line for line in org_text.splitlines() if not line.strip().startswith('#+'))
org_content = cleaned_content
# print('org to gmi org_content', org_content)
# Conversion du texte Org en GMI via Pandoc
try:
converted_text = pypandoc.convert_text(org_content, 'markdown', format='org')
# Remplacer les apostrophes échappées
converted_text = converted_text.replace('\\\'', '\'')
# Convertir les liens HTML en liens Gemini
# Ajouter des retours à la ligne avant et après les liens web
converted_text = re.sub(r'<(https?://[^>]+)>', r'\n=> \1\n', converted_text)
# Convertir les liens simples <url>
converted_text = re.sub(r'<(https?://[^>]+)>', r'\n=> \1\n\n', converted_text)
# Nettoyer les espaces multiples et retours à la ligne dans les liens simples
converted_text = re.sub(r'(\=\> [^\n]+?)[ \n]{2,}', r'\1 ', converted_text)
# Nettoyer les espaces multiples et retours à la ligne dans les liens avec description
converted_text = re.sub(r'(\=\> [^\n]+?)[ \n]{2,}([^\n]+)', r'\1 \2', converted_text)
# Convertir les liens avec description [texte](url)
converted_text = re.sub(r'\[([^\]]+)\]\(([^)]+)\)', r'\n=> \2 \1\n\n', converted_text)
# Ajouter un saut de ligne devant les lignes commençant par #
converted_text = re.sub(r'(?m)^#', r'\n#', converted_text)
# Remplacer les sauts de ligne multiples par un maximum de 2 sauts de ligne
converted_text = re.sub(r'\n{3,}', '\n\n', converted_text)
output = f"""
@ -657,7 +672,8 @@ Navigation:
if next_article_link:
gemini_content += f"\nArticle suivant:\n{next_article_link}"
gemini_content += f"""-----------------------------------------------
gemini_content += f"""
-----------------------------------------------
=> index.gmi Index des articles
"""
# Sauvegarder le fichier