我正在开发一个具有以下布局的Python项目(使用PyScaffold设置(:
project/
- src/
- docs/
- _static/
- assets/
- logo.svg
- index.rst
- README.rst
- AUTHORS.txt
- setup.py
- setup.cfg
- ...
该项目托管在GitHub上,发布在Pypi上,并记录在ReadTheDocs上。我希望这3个网站呈现与主页(自述、长描述、索引页(类似的内容,除了一些细节:
- 在GitHub上,链接应该重定向到GitHub文件页面
- 在Pypi和Read the Docs上,链接应该重定向到Read the Doc页面
- 在GitHub的分支上,链接应该重定向到分支文件(而不是
master
文件(
目前,我使用的README.rst
看起来像:
.. _Authors: http://readthedocs/latest/authors.html
.. |logo| image:: http://readthedocs/assets/logo.svg
:alt: Logo
:width: 500
.. EndOfLinks
|logo|
`Authors`_
docs/index.rst
如下:
.. _Authors: ./authors.html
.. |logo| image:: ./_static/ewmh_m2m.svg
:alt: Logo
:width: 500
.. include:: ../README.rst
:start-after: EndOfLinks
和一个setup.cfg
:
long-description = file: README.rst
long-description-content-type = text/x-rst; charset=UTF-8
但是,在新分支上,README呈现或链接不会反映底层文件中的任何更改,如本例所示。
在README中使用相对链接会使Pypi描述中的链接断开,也不会显示徽标(请参阅此处(
我尝试使用一个专用的pypi_description.rst
文件,类似于index.rst
。如果它也包含include
指令,那么Pypi和GitHub不会呈现RST。
如果你描述的第一次尝试对于GitHub和RTD来说已经足够了,那么问题就是如何为PyPI实现一个有效的长描述源,对吧?
在setup.py
中,您可以设置setup()
关键字参数long_description_content_type='text/x-rst'
,并将long_description
设置为RST文本字符串(没有sphinx扩展名(,这样您就可以在setup.py
早期使用任意Python代码预处理长描述源。