.. _sphinx_openstackdocstheme: ================================= Sphinx使用OpenStackDosTheme风格 ================================= 我在 :ref:`think_write_doc` 时,非常想采用OpenStack Documentations的文档风格。也是偶然发现, `OpenStack Sphinx themes `_ 就是关键,通过简单配置,我尝试了将自己网站转换风格。 .. note:: `Sphinx Themes Gallery `_ 提供了常用的Sphinx Themes展示和说明,可以参考配置风格。 `Conestack theme `_ 风格非常类似 :ref:`mkdocs` ,基于 Bootstrap 5,对移动设备兼容较好,也比较清新。不过,这个 ``Conestack theme`` 似乎在 ``make html`` 时非常缓慢。 目前我计划在 :ref:`sphinx_docs-cloud-atlas-io` 依然采用 ``openstackdocs`` theme,尝试逐步修订和改进。 安装和简单使用 ================ - 同样类似 :ref:`write_doc` 方法,在 :ref:`virtualenv` 中安装pip模块: .. literalinclude:: sphinx_openstackdocstheme/install :caption: 安装 ``openstackdocstheme`` 风格 - 修订项目文档 ``conf.py`` : .. literalinclude:: sphinx_openstackdocstheme/conf.py :caption: 修订 ``conf.py`` 启用 ``openstackdocstheme`` :language: python - 构建文档:: make html .. note:: 实际 ``conf.py`` 中还需要配置一些选项,包括仓库名等,主要是适配OpenStack项目,所以很多配置都关联了OpenStack项目 .. note:: :ref:`starlingx` 是结合了 :ref:`openstack` 和 :ref:`kubernetes` 的边缘云计算项目,这个项目是从 OpenStack衍生出来的轻量级云计算项目。 ``StarlingX`` 也采用了 ``openstackdocstheme`` 风格,其文档结构可以参考学习。 使用体验 ============= `OpenStack Sphinx themes `_ 确实有一种比较独特都美感,采用了非常纤细的字体以及淡雅的配色,而文档代码又采用冲击力较强的深色模式,非常适合代码相关文档。 .. figure:: ../../../_static/devops/docs/sphinx_doc/sphinx_openstackdocstheme.png :scale: 60 限制和不足(待修改): - 生成文档包含了很多已经固化OpenStack文档网站的导航、页脚、版权等信息,冲掉了之前定制的页脚信息 - 由于OpenStack网站采用了多文档模式,所以左方目录导航结构包含了一些OpenStack文档的索引结构(例如语言选择、OpenStack固有的文档索引) 总之,不是开箱即用,有些绑定比较固化。 思考 ===== 我觉得可能比较好的方式是结合 ``sphinx_rtd_theme`` 和 ``openstackdocstheme`` : - 总体结构采用 ``sphinx_rtd_theme`` - 字体和一些 ``note`` 采用 ``openstackdocstheme`` - 两者结合,取长补短 后续我在学习 :ref:`javascript` 时会尝试改进 参考 ====== - `OpenStack Sphinx themes `_