mirror of
https://forge.chapril.org/tykayn/orgmode-to-gemini-blog
synced 2025-06-20 09:04:42 +02:00
rewriter of gemini links
This commit is contained in:
parent
e73398b3b2
commit
1574a22100
4 changed files with 33 additions and 13 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue