我有一个托管在GitHub上的项目。为此,我使用Markdown语法编写了我的README,以便在GitHub上很好地格式化它。
由于我的项目是用Python编写的,我还计划将其上传到PyPi。PyPi上的README使用的语法是reStructuredText。
我想避免必须处理两个包含大致相同内容的README;所以我搜索了一个markdown到RST(或其他方式)的翻译器,但找不到。
我看到的另一个解决方案是执行markdown/HTML,然后执行HTML/RST翻译。我找到了一些here和here的资源,所以我猜这应该是可能的。
你有什么想法可以更好地配合我想做的事情吗?
8条答案
按热度按时间11dmarpk1#
我推荐Pandoc,它是“将文件从一种标记格式转换为另一种标记格式的瑞士军刀”。(查看页面底部支持的转换图,相当令人印象深刻). Pandoc允许markdown直接reStructuredText翻译.还有一个在线编辑器here可以让你尝试一下,所以你可以简单地使用在线编辑器来转换你的README文件。
46scxncf2#
正如@Chris所建议的,您可以使用Pandoc将Markdown转换为RST。这可以简单地使用 pypandoc 模块和www.example.com中的一些魔术来自动化setup.py:
这将自动将www.example.com转换README.md为RST,以用于PyPi上的长描述。当 pypandoc 不可用时,它只读取README.md而不进行转换-当其他人只想构建模块而不是上传到PyPi时,不会强迫他们安装pypandoc。
所以你可以像往常一样在Markdown中写作,不再关心RST混乱。
goqiplq23#
2019更新
PyPI Warehouse now supports也渲染了Markdown!你只需要更新你的包配置并添加
long_description_content_type='text/markdown'
到其中。例如:因此,没有必要再将README保持为两种格式。
您可以在documentation中找到有关它的更多信息。
旧答案:
GitHub使用的Markup库支持reStructuredText。这意味着您可以编写README.rst文件。
它们甚至支持使用
code
和code-block
指令(Example)进行语法特定的颜色突出显示nhaq1z214#
PyPI现在支持长描述的Markdown!
在
setup.py
中,将long_description
设置为Markdown字符串,添加long_description_content_type="text/markdown"
并确保您使用的是最新的工具(setuptools
38.6.0+,twine
1.11+)。有关详细信息,请参见Dustin Ingram's blog post。
ruoxqz4g5#
您可能还对以下事实感兴趣:可以在公共子集中编写,以便您的文档在呈现为markdown或呈现为reStructuredText时以相同的方式呈现:https://gist.github.com/dupuy/1855764
brtdzjyr6#
对于我的需求,我不想在我的计算机上安装Pandoc。我使用docverter。Docverter是一个文档转换服务器,具有使用Pandoc的HTTP接口。
mefy6pfw7#
我遇到了这个问题,用下面的两个bash脚本解决了它。
请注意,我已经将LaTeX捆绑到我的Markdown中。
转换成html也很有用。md2html:
希望能有所帮助
jvidinwx8#
使用其他人建议的
pandoc
工具,我创建了一个md2rst
实用程序来创建rst
文件。即使这个解决方案意味着你有一个md
和一个rst
,它似乎是侵入性最小的,并且允许未来添加任何markdown支持。我更喜欢它而不是改变setup.py
,也许你也会这样做: