在PyPi包页面中嵌入HTML到restructured text

13 投票
3 回答
5602 浏览
提问于 2025-04-17 09:52

Sphinx中,我知道你可以这样做:

.. raw:: html

    <div style="margin-top:10px;">
      <iframe width="560" height="315" src="http://www.youtube.com/embed/_EjisXtMy_Y" frameborder="0" allowfullscreen></iframe>
    </div>

pypi上,有什么方法可以做到这一点吗?

有没有相关的YouTube视频呢?

3 个回答

1

重构文本规范在这里:

http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html

我相信pypi使用一个叫做docutils的工具来渲染页面。

http://pypi.python.org/pypi/docutils/

raw指令理论上应该是支持的,除非特别禁用。

不过,PyPi可能有很多原因不希望随意使用HTML:这可能会造成潜在的XSS安全漏洞,让别人能够窃取PyPi用户的凭证。

你可以从PyPi的源代码确认这一点:http://wiki.python.org/moin/CheeseShopDev

6

PyPI的主要作用是一个模块包索引,方便大家快速查找和访问Python的模块和包。它并不是一个可以随意定制的媒体网站。你可以在你上传的模块和包的索引页面上添加一些信息,但它的功能仅限于作为一个索引网站。

如果你想要更详细的文档,并且希望它看起来更个性化,可以使用http://packages.python.org。你可以通过包编辑页面上传内容,链接是:http://pypi.python.org/pypi?%3Aaction=pkg_edit&name=YOURPACKAGE,其中YOURPACKAGE是你上传到PyPI的包的名称。

7

我觉得在pypi上嵌入随机的HTML代码是不行的,我也很高兴这样。pypi应该保持作为一个Python包的索引,而不是变成一个像geocities那样的网站。

如果你真的想在你的包页面上放一个Youtube视频,你可以用标准的重构文本放一张图片,并链接到Youtube视频:

.. image:: http://example.com/image-with-the-first-frame.png
   :target: http://www.youtube.com/your-video

撰写回答