如何更改警告警告的格式或在 Sphinx HTML 输出中添加警告

How to change format of Warning admonition or add Caution in Sphinx HTML output

这看起来应该很简单,但我一直在查阅文档和网络,但没有找到答案。

我想从 Sphinx 输出 HTML 文档。理想情况下,我想要三个级别的 "note" 类型突出显示的文本框。 ReST 定义了几个 "admonitions": (http://docutils.sourceforge.net/docs/ref/rst/directives.html#admonitions) 但大多数 Sphinx HTML 主题包括仅用于注释和警告的特殊格式。 (我使用的是预装主题之一,Classic。)

我有两个问题:

1) 如何自定义文档警告后面的颜色?

2) 如何为警告添加格式样式?

我看到这些都以 HTML 输出中的 <div class="admonition warning"> ... 之类的标签结尾。但是我找不到 class 的格式定义在哪里。它在样式表中吗?它是在 layout.html 文件还是其他文件中?

有什么可以解释主题中的各种文件实际上是如何相互作用的吗?我还没有找到好的入门书。 (我也不是基于 css 的 HTML 方面的专家,所以这可能是问题的一部分。)

好的,我了解了更多信息并找到了可行的解决方法。 (我仍然不确定该如何处理。)

看起来我的 HTML 代码是直接从与输出一起存储在名为 _static 的目录中的一些级联样式表中读取的。有 classic.css,它继承自 basic.css。

我不明白这些与 Python Sphinx 安装中名为 basic.css_t 的文件有什么关系。

要更改内容,我应该 (A) 尝试更改 _t 文件吗?或 (B) 创建位于我的源目录中的 classic.css 的更改本地副本?

如果我选择 B,更多问题。

  • 它会在构建时被 css_t 模板中的值覆盖吗? (我想这很容易测试)
  • 为该样式表的修改版本使用相同的文件名是一种好习惯吗?

这里有一个解决方法可以避免这些问题,并且似乎正在做我想做的事情——来自:https://github.com/snide/sphinx_rtd_theme/issues/117

  • 我创建了一个覆盖样式表,其中仅包含我要更改的格式。
  • 我将它存储在源目录的_static 中。
  • 我在我的conf.py中定义如下:

    html_context = {
        'css_files': [
            '_static/theme_overrides.css', 
            ],
        }
    

现在,那个 github 讨论说这不是适用于所有主题(包括问题中提到的 RTD 主题)的解决方案,但我认为我现在是安全的。

我还应该知道什么?