在Markdown和reStructuredText中都有相同的README
我有一个在GitHub上托管的项目。 为此,我使用Markdown语法编写了自述文件,以便在GitHub上对其进行很好的格式化。
由于我的项目是在Python中,我还计划将其上传到PyPi。 PyPi上用于README的语法是reStructuredText。
我想避免处理两个包含大致相同内容的README文件; 所以我搜索了RST(或其他方式)翻译的降价,但找不到任何。
我看到的另一个解决方案是执行降价/ HTML,然后是HTML / RST翻译。 我在这里和这里发现了一些资源,所以我想这应该是可能的。
你有什么想法可以更好地适应我想做的事情吗?
我会推荐Pandoc,这是“将文件从一种标记格式转换为另一种格式的瑞士军刀”(请查看页面底部支持的转换图,它非常令人印象深刻)。 Pandoc允许markdown直接进行reStructuredText翻译。 这里还有一个在线编辑器,可以让你试用它,所以你可以简单地使用在线编辑器来转换你的自述文件。
正如@Chris所建议的,您可以使用Pandoc将Markdown转换为RST。 这可以使用pypandoc模块和setup.py中的一些魔术自动实现:
from setuptools import setup
try:
from pypandoc import convert
read_md = lambda f: convert(f, 'rst')
except ImportError:
print("warning: pypandoc module not found, could not convert Markdown to RST")
read_md = lambda f: open(f, 'r').read()
setup(
# name, version, ...
long_description=read_md('README.md'),
install_requires=[]
)
这将自动将README.md转换为RST,以便在PyPi上使用长描述。 当pypandoc不可用时,它只是读取README.md而不进行转换 - 不强制他人在他们想构建模块时安装pypandoc,而不是上传到PyPi。
所以你可以像往常一样写Markdown,不再关心RST混乱。 ;)
GitHub使用的标记库支持reStructuredText。 这意味着您可以编写一个README.rst文件。
他们甚至使用code
和code-block
指令来支持语法特定的颜色突出显示(示例)
上一篇: Have the same README both in Markdown and reStructuredText