Sphinx扩展以添加警告横幅

sphinx-version-warning的Python项目详细描述


sphinx版本警告是一个Sphinx扩展,允许您在文档顶部显示warning横幅。 横幅将根据显示的版本(使用SemVer)与服务器上的最新版本进行比较来显示。

这个扩展最初是为了与Read the Docsapi兼容而创建的,目前它是唯一支持 (灵感来自https://github.com/rtfd/readthedocs.org/issues/3481#issuecomment-378000845

它是怎么工作的?

访问中的页面时,请阅读在启用此扩展的情况下生成的文档, 对read-the-docs服务器执行ajax请求,以检索项目的所有active版本。 这些版本与我们正在阅读的版本相比,如果是旧版本, 页面顶部会出现一条警告横幅。

示例

warning-example.png

有一个活生生的例子:阅读文档:

  • latest版本不显示任何警告横幅
  • 0.0.1版本显示此特定版本的自定义消息
  • 0.0.2版本显示警告横幅,说明0.0.4可用(在编写此文档时)
  • 0.0.4版本不显示任何横幅,因为它是最新版本(在编写此文档时)

安装

只要在virtualenv中运行这个pip命令:

pip install sphinx-version-warning

然后在conf.py中,必须在extensions列表中添加versionwarning.extension。 应该类似于:

extensions = [
    'versionwarning.extension',
]

记住要配置sphinx项目的versionwarning_project_versionversionwarning_project_slug,因为这是正常工作的关键:

versionwarning_project_version = '0.0.1'
versionwarning_project_slug = 'sphinx-version-warning'

警告

如果你在“阅读文档”下构建文档, READTHEDOCS_VERSIONREADTHEDOCS_PROECT环境变量将被定义,无需定义这些变量, 除非要覆盖默认值。

定制

可以使用sphinx项目的conf.py文件进行一些自定义:

版本警告警告类型(字符串)
横幅警告的类型(警告、警告或注释)
版本警告默认消息(字符串)
警告横幅的默认消息
版本警告信息(dict)
其横幅的版本和消息之间的映射
版本警告消息占位符(字符串)
要由消息中的版本号链接替换的文本
版本警告项目(字符串)
读取文档下项目的slug(默认为READTHEDOCS_PROJECT环境变量)
版本警告项目版本(字符串)
当前文档版本的slug(默认为READTHEDOCS_VERSION环境变量)
版本警告API URL(字符串)
检索此项目所有版本的API URL
版本警告标志HTML(字符串)
用于所示标题的HTML代码
版本警告横幅ID div(字符串)
用于<;div>;作为标题插入的HTML元素ID
版本警告车身选择器(字符串)
jquery选择器在页面中查找body元素,并在横幅前面prepend

如何贡献?

随时欢迎拉取请求!

生成资产

npm install
./node_modules/.bin/webpack

释放

  1. versionwarning/__init__.py

    中增加版本
  2. package.json

    中增加版本
  3. 更新CHANGELOG.rst

  4. 更新npm

    $ npm update
    
  5. 编译资源:

    $ npm install
    $ ./node_modules/.bin/webpack
    
  6. 提交更改:git commit -m "Release $NEW_VERSION"

  7. 用git标记版本:git tag $NEW_VERSION

  8. 将标记推送到github:git push --tags origin

  9. 将包上载到pypi:

    $ rm -rf dist/
    $ python setup.py sdist bdist_wheel
    $ twine upload dist/*
    

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java打开另一个阶段JavaFX时将光标更改为等待   java为什么我的图形不显示?   Anylogic Java RuntimeException   java Spring应用程序在jar中构建后不工作   java无法使用Play 2.5发送异步电子邮件   java在尝试获取新连接时可丢弃:null:javax。资源ResourceException:无法创建连接   SWT应用程序的java本地化日期时间控件   导航抽屉上的java动画在所有设备上都不平滑   java需要关于等待超时的帮助   在Java中捕获nullpointerexception   java将公共JSP与自定义Servlet和Struts 2结合使用   java HttpClient与NTLM身份验证提供程序发生协商错误   java使用对象数组获取数据   java我应该使用任务队列将文档添加到AppEngine上的索引中吗