如何链接到 README.rst 中 docs 文件夹中的图像?

Posted

技术标签:

【中文标题】如何链接到 README.rst 中 docs 文件夹中的图像?【英文标题】:How do you link to images from your docs folder in your README.rst? 【发布时间】:2019-01-19 02:18:38 【问题描述】:

我正在努力寻找一种方法来使用我的 README.rst 中的图像,该图像将同时显示在 github 和 PyPI 上。

目前我正在使用以下标记:

.. image:: https://github.com/thebjorn/pydeps/blob/master/docs/_static/pydeps.svg

在 github (https://github.com/thebjorn/pydeps) 上看起来很棒,但在 PyPI (https://pypi.org/project/pydeps/1.6.0/) 上显示为断开的链接。

这可能吗,还是我需要在其他地方托管这些图像?

【问题讨论】:

【参考方案1】:

您需要使用raw.githubusercontent.com 而不是github.com

.. image:: https://github.com/thebjorn/pydeps/blob/master/docs/_static/pydeps-pylib.svg

只会在 Github 上正确渲染,而

.. image:: https://raw.githubusercontent.com/thebjorn/pydeps/master/docs/_static/pydeps-pylib.svg?sanitize=true

将呈现在任何网站上。


第一次尝试(损坏并删除)


第二次尝试:

    正确替换 URL(同时删除路径中的 blob 部分 - 我的错!), 将?sanitize=true 附加到要替换的每个网址。

$ sed -i '' 's,.. image:: https://github.com/\(.*\)/blob/\(.*\).svg,.. image:: https://raw.githubusercontent.com/\1/\2.svg?sanitize=true,g' README.rst

测试on Github 和on TestPyPI,看起来都不错。


替代方案:使用RawGit

另一种可能性是使用RawGit,虽然缺点是这是第三方服务,所以当它关闭时,虽然可用,但图像不会被渲染。尽管如此,为了完整性:

$ sed -i '' 's,.. image:: https://github.com/\(.*\)/blob/\(.*\)$,.. image:: https://cdn.rawgit.com/\1/\2,g' README.rst

【讨论】:

这似乎不起作用(它在 github 上给出了一个损坏的图像)。起初我以为是因为内容类型是 text/html,但我发现 .png 图像也有问题(例如raw.githubusercontent.com/divio/django-cms/blob/develop/docs/…) 实际上,如果您从我之前的评论中删除 blob,它适用于 .png 文件。看起来 github 将 .svg 文件转换为数据 url,但 .rst 似乎并不喜欢...... :-( 已获得sed oneliner,请再次验证。 很高兴能帮上忙!

以上是关于如何链接到 README.rst 中 docs 文件夹中的图像?的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能使这个 long_description 和 README 相差几句话?

github 上 Python 包的 README 格式是啥?

我的第一个 README 没有在 pypi.python.org 上格式化

如何仅使用 URL 链接到页面中的特定文本行?

如何获取用于 Twitter 推文调度的 Account_id?

CentOS 7, 升级python到3.x