来自PyData社区的基于bootstrapbase的Sphinx主题
pydata-sphinx-theme的Python项目详细描述
pydata sphinx主题
PyData社区中基于引导的Sphinx主题。在
演示站点:https://pydata-sphinx-theme.readthedocs.io/en/latest/
Note:这个主题最初是为pandas文档开发的(最初命名为“pandas sphinx theme”), 但是,由于其他项目也在吸收,我们正在努力使之更多 通用且更易于扩展,以满足不同项目的需要。在
使用此主题的网站:
- 熊猫:https://pandas.pydata.org/docs/
- 数字:https://numpy.org/devdocs/
- 博克:https://docs.bokeh.org/en/dev/
- JupyterHub和Binder:https://docs.mybinder.org/,http://z2jh.jupyter.org/en/latest/,https://repo2docker.readthedocs.io/en/latest/,https://jupyterhub-team-compass.readthedocs.io/en/latest/
- Jupyter Book测试版使用了这个主题的扩展:https://beta.jupyterbook.org
- 公平学习:https://fairlearn.github.io/quickstart.html
安装和使用
这个主题可以在PyPI和conda forge上找到。你可以安装 使用方法如下:
在文档生成环境中安装
pydata-sphinx-theme
:
在pip install pydata-sphinx-theme # or conda install pydata-sphinx-theme --channel conda-forge
然后,在sphinx文档的
^{pr2}$ 在conf.py
中,更新html_theme
配置选项:
就这样!在
好吧,至少原则上是这样。在实践中,可能还有一些 熊猫特有的东西现在已经硬编码在主题中了。我们也需要 提高可配置性和可扩展性。反馈和贡献 非常欢迎!在
主题开发
欢迎投稿!安装开发版本,构建 演示文档和开发主题的css/js等在 有关更多详细信息,请参阅文档的贡献部分: https://pydata-sphinx-theme.readthedocs.io/en/latest/contributing.html
这个主题是如何运作的?在
html布局
这个主题中包含的“布局”最初主要是针对 有许多页面的文档站点,以及将所有导航放在 因此,单侧边栏会变得笨拙。在
当前布局具有3个导航元素:
- 具有顶级导航功能的顶级导航栏
- 一个左侧边栏,其后续导航可达单个页面
- 带有本地“On this page”目录的右侧边栏
什么东西放在哪里是由狮身人面像“树”决定的 你的狮身人面像文件的结构)。目录树的第一级放在 顶部导航栏,第二个(也可能是)第三个级别放在左侧 侧边栏。在
这当然是可能的,使确切的水平使用狮身人面像 可配置目录树。在
实施细节
这个主题设计的第二个方面是我们正在努力做好 使用引导特性并尽可能多地使用实际的(模板化的)html 和css来定义主题,而不是依赖sphinx来做定制 格式化。这将使主题和布局更灵活,以定制。在
为此,该套餐包括:
- 一个^{
} , 子类化sphinx的转换器,但重写某些元素以生成 引导兼容的html。目前,这包括:将警告转换为 引导“警报”类,并更新用于html表的类。在 - 添加导航的sphinx event 对象放入html上下文中,该上下文在html中可用(jinja2) 模板。这允许将导航元素的结构放在 实际布局,而不必依赖于 斯芬克斯(灵感来自mkdocs的导航对象: https://www.mkdocs.org/user-guide/custom-themes/#nav)。我们很想看看 这增加了狮身人面像本身(而不是需要一个狮身人面像事件),但现在 斯芬克斯的开发者还没有做出任何反应。在
这些项目还避免编写javascript函数来“修复”html 由狮身人面像生成以适合主题化。在
与sphinx主题引导有什么区别?
社区中的某个项目已经使用了sphinx引导程序主题: https://github.com/ryan-roemer/sphinx-bootstrap-theme/
目前,主要的区别是这个主题使用bootstrap4 属于3并提供不同的默认布局。在某个时候,最好 对该包(或至少处理 可共享的引导和狮身人面像)。在
初始布局和css的灵感来自Bootstrap文档站点。在
- 项目
标签: