J'ai un projet hébergé sur GitHub. Pour cela, j'ai écrit mon README en utilisant la syntaxe Markdown afin de l'avoir bien formaté sur GitHub.
Comme mon projet est en Python, je prévois également de le télécharger sur PyPi . La syntaxe utilisée pour les README sur PyPi est reStructuredText.
Je voudrais éviter d'avoir à gérer deux README contenant à peu près le même contenu; J'ai donc cherché un traducteur Markdown to RST (ou l'inverse), mais je n'en ai trouvé aucun.
L'autre solution que je vois est d'effectuer une démarque / HTML puis une traduction HTML / RST. J'ai trouvé des ressources pour ça ici et ici donc je suppose que ça devrait être possible.
Auriez-vous une idée qui pourrait mieux correspondre à ce que je veux faire?
README.rst
!Réponses:
Je recommanderais Pandoc , le "couteau suisse pour convertir des fichiers d'un format de balisage dans un autre" (consultez le diagramme des conversions supportées en bas de page, c'est assez impressionnant). Pandoc permet au démarque de traduire directement la traduction reStructuredText. Il existe également un éditeur en ligne ici qui vous permet de l'essayer, vous pouvez donc simplement utiliser l'éditeur en ligne pour convertir vos fichiers README.
la source
pandoc --from=markdown --to=rst --output=README.rst README.md
Comme @Chris l'a suggéré, vous pouvez utiliser Pandoc pour convertir Markdown en RST. Cela peut être simplement automatisé en utilisant le module pypandoc et un peu de magie dans setup.py:
Cela convertira automatiquement README.md en RST pour la longue description en utilisant PyPi. Quand pypandoc n'est pas disponible, il lit simplement README.md sans la conversion - pour ne pas forcer les autres à installer pypandoc quand ils veulent simplement construire le module, pas le télécharger sur PyPi.
Vous pouvez donc écrire dans Markdown comme d'habitude et ne plus vous soucier du désordre RST. ;)
la source
try-except
dans la fonction.RuntimeError: Missing format!
exception jusqu'à ce que je change le lambda enread_md = lambda f: convert(f, 'rst', 'md')
. La raison étant (je suppose) que je lui ai donné une chaîne et non un fichier (donc pas d'extension de fichier).Mise à jour 2019
L'entrepôt PyPI prend désormais également en charge le rendu Markdown! Il vous suffit de mettre à jour la configuration de votre package et d'y ajouter le
long_description_content_type='text/markdown'
. par exemple:Par conséquent, il n'est plus nécessaire de conserver le README dans deux formats.
Vous pouvez trouver plus d'informations à ce sujet dans la documentation .
Ancienne réponse:
La bibliothèque de balisage utilisée par GitHub prend en charge reStructuredText. Cela signifie que vous pouvez écrire un fichier README.rst.
Ils prennent même en charge la mise en évidence des couleurs spécifiques à la syntaxe à l'aide des directives
code
etcode-block
( exemple )la source
PyPI prend désormais en charge Markdown pour les longues descriptions!
Dans
setup.py
, définissezlong_description
sur une chaîne Markdown, ajoutezlong_description_content_type="text/markdown"
et assurez-vous que vous utilisez des outils récents (setuptools
38.6.0+,twine
1.11+).Voir l'article de blog de Dustin Ingram pour plus de détails.
la source
Pour mes besoins, je ne voulais pas installer Pandoc sur mon ordinateur. J'ai utilisé docverter. Docverter est un serveur de conversion de documents avec une interface HTTP utilisant Pandoc pour cela.
la source
Vous pourriez également être intéressé par le fait qu'il est possible d'écrire dans un sous-ensemble commun afin que votre document ressorte de la même manière lorsqu'il est rendu en tant que markdown ou rendu en tant que reStructuredText: https://gist.github.com/dupuy/1855764 ☺
la source
J'ai rencontré ce problème et l'ai résolu avec les deux scripts bash suivants.
Notez que j'ai LaTeX intégré dans mon Markdown.
Il est également utile de convertir en HTML. md2html:
J'espère que ça aide
la source
En utilisant le
pandoc
outil suggéré par d'autres, j'ai créé unmd2rst
utilitaire pour créer lesrst
fichiers. Même si cette solution signifie que vous avez à la fois unmd
et un,rst
elle semble être la moins invasive et permettrait tout support de démarque ajouté. Je préfère cela à la modificationsetup.py
et peut-être que vous le feriez aussi:la source