Tenho um projeto hospedado no GitHub. Para isso, escrevi meu README usando a sintaxe Markdown para que seja bem formatado no GitHub.
Como meu projeto é em Python, também pretendo enviá-lo para PyPi . A sintaxe usada para READMEs no PyPi é reStructuredText.
Eu gostaria de evitar ter que lidar com dois READMEs contendo aproximadamente o mesmo conteúdo; então procurei um tradutor de markdown para RST (ou vice-versa), mas não consegui encontrar nenhum.
A outra solução que vejo é realizar uma marcação / HTML e, em seguida, uma tradução HTML / RST. Encontrei alguns recursos para isso aqui e aqui, então acho que deve ser possível.
Você teria alguma ideia que poderia se encaixar melhor com o que eu quero fazer?
README.rst
!Respostas:
Eu recomendaria o Pandoc , o "canivete suíço para converter arquivos de um formato de marcação para outro" (verifique o diagrama de conversões suportadas no final da página, é bastante impressionante). O Pandoc permite o markdown para reStructuredText tradução diretamente. Há também um editor online aqui que permite que você experimente, então você pode simplesmente usar o editor online para converter seus arquivos README.
fonte
pandoc --from=markdown --to=rst --output=README.rst README.md
Como @Chris sugeriu, você pode usar o Pandoc para converter Markdown em RST. Isso pode ser simplesmente automatizado usando o módulo pypandoc e um pouco de magia em setup.py:
Isso converterá automaticamente o README.md em RST para a descrição longa usando no PyPi. Quando o pypandoc não está disponível, ele apenas lê README.md sem a conversão - para não forçar outros a instalar o pypandoc quando querem apenas construir o módulo, não fazer upload para o PyPi.
Assim, você pode escrever no Markdown como de costume e não se importar mais com a bagunça do RST. ;)
fonte
try-except
na função.RuntimeError: Missing format!
exceção até que mudei o lambda pararead_md = lambda f: convert(f, 'rst', 'md')
. A razão é (suponho) que coloquei uma string e não um arquivo (sem extensão).Atualização de 2019
O PyPI Warehouse agora suporta renderização Markdown também! Você só precisa atualizar a configuração do seu pacote e adicionar o
long_description_content_type='text/markdown'
a ele. por exemplo:Portanto, não há mais necessidade de manter o README em dois formatos.
Você pode encontrar mais informações sobre isso na documentação .
Resposta antiga:
A biblioteca de marcação usada pelo GitHub oferece suporte a reStructuredText. Isso significa que você pode escrever um arquivo README.rst.
Eles ainda oferecem suporte a realce de cores específicas da sintaxe usando as diretivas
code
ecode-block
( exemplo )fonte
PyPI agora suporta Markdown para longas descrições!
Em
setup.py
, definalong_description
como uma string Markdown, adicionelong_description_content_type="text/markdown"
e certifique-se de usar ferramentas recentes (setuptools
38.6.0+,twine
1.11+).Consulte a postagem do blog de Dustin Ingram para obter mais detalhes.
fonte
Para os meus requisitos, não queria instalar o Pandoc no meu computador. Eu usei docverter. Docverter é um servidor de conversão de documentos com interface HTTP usando Pandoc para isso.
fonte
Você também pode estar interessado no fato de que é possível escrever em um subconjunto comum para que seu documento saia da mesma maneira quando renderizado como markdown ou renderizado como reStructuredText: https://gist.github.com/dupuy/1855764 ☺
fonte
Encontrei esse problema e resolvi-o com os dois scripts bash a seguir.
Observe que eu tenho o LaTeX empacotado no meu Markdown.
Também é útil converter para html. md2html:
Espero que ajude
fonte
Usando a
pandoc
ferramenta sugerida por outros criei ummd2rst
utilitário para criar osrst
arquivos. Mesmo que essa solução signifique que você tem ummd
e umrst
, parecia ser o menos invasivo e permitiria qualquer suporte de redução futuro adicionado. Eu prefiro isso a alterarsetup.py
e talvez você também:fonte