Python sphinx Sphinx无序列表中的额外空行

Python sphinx Sphinx无序列表中的额外空行,python-sphinx,restructuredtext,Python Sphinx,Restructuredtext,我正在使用Sphinx为我的项目编写文档,发现下面给出的两个类似的重构文本片段的呈现方式有所不同 例1 例2 一些内联文本: *项目0 *项目1 *项目2 ::从您的评论来看,问题似乎在于在上呈现reStructuredText,以及它在一个特定CSS主题中的外观。这并不是StructuredText的真正问题 忽略样式问题,您在两个示例之间看到两种不同行为的原因是因为两个示例不同:在第一个示例中,代码块是列表项项2的一部分;在第二个示例中,代码块不是,因此关闭其上方的列表,项目3因此启动一个新

我正在使用Sphinx为我的项目编写文档,发现下面给出的两个类似的重构文本片段的呈现方式有所不同

例1 例2
一些内联文本:
*项目0
*项目1
*项目2

::从您的评论来看,问题似乎在于在上呈现reStructuredText,以及它在一个特定CSS主题中的外观。这并不是StructuredText的真正问题

忽略样式问题,您在两个示例之间看到两种不同行为的原因是因为两个示例不同:在第一个示例中,代码块是列表项
项2
的一部分;在第二个示例中,代码块不是,因此关闭其上方的列表,
项目3
因此启动一个新列表

我们可以从研究(重点矿山)中看出原因

以“*”、“+”、“-”、“•”、“——”、“——”、“——”或“——”,后跟空格的文本块是项目符号列表项(也称为“无序”列表项)。列表项主体必须相对于项目符号左对齐和缩进项目符号后的文本决定缩进。

在第一个示例中,
与文本项目符号列表项的开头对齐,因此是列表项主体的一部分。在第二个示例中,
与列表项文本的标识级别不同,因此关闭列表并开始一个代码块(它不是列表项的子项)。如果我们比较和生成的HTML,这是显而易见的


需要注意的是,列表项中文本的开头定义了缩进级别,如果要添加到该列表项的正文中,则必须匹配缩进级别。

列表标记和列表项文本之间有两个空格。尝试使用
*项目0
,而不是
*项目0
。通过使用StructuredText提取和指示您期望的内容以及为什么输出不是您想要的内容,获得输出的屏幕截图是很有用的(“渲染列表”不是一个特别有用的描述)。最后,我会写
*项目2::
(在
项目2
之间没有换行符,为什么要在一行上单独写
::
?@Chris,这是,这是。我喜欢在项目符号后给无序列表项目两个空格(因此它们和有序列表一样缩进),而且它不会改变渲染。关于孤独的
,这两种方法没有任何区别,我喜欢这一种。@Chris,当我说这些东西不会改变渲染时,这是错误的。直到我在这个特殊情况下,它才有任何区别,它使我的渲染看起来像示例1。也请使用基本主题,因为自然主题没有显示我所面临的问题。你在列表项间距上看到的差异只是你链接到的网站上的主题之一的CSS样式问题。你给出的两个示例之间的语义有差异,但是:请看我的答案。我想我对fro的意义太大了nt与背面相比,我应该检查呈现的HTML。您确实是对的,使用有序列表(而不是无序列表)向我展示了在示例2中实际上有两个不同的列表。现在还有一个我没有得到的东西,在这个更新的列表中,我添加了第二个无序列表。在第一个列表中,每个项目都包含在一个
标记中,而在第二个列表中,项目直接位于
  • 标记中。我看不到您在上提到的内容,仅此而已y
    Item 2
    有一个段落标记。我理解,但我的Sphinx文档与rst.ninjs.org中的行为完全相同。除了破解主题CSS,你建议我做什么?如果您不喜欢Sphinx提供的默认样式,我担心您将不得不编辑CSS。不要开始编写非语义的重构文本来调整文本的呈现方式,这可能会导致各种问题,尤其是可维护性问题。了解一下如何添加自定义CSS样式-只需向重写
    li
    元素的默认填充/边距。如果需要帮助,我会问一个新问题。这绝对不是一个正确的行为(因为
    第一个
    类应用于每个列表元素)。我是通过在你最后的评论后面加上
    边距:0!important;
    作为
    第一个
    类来实现的。
    Some text:
    
    *  Item 0
    *  Item 1
    *  Item 2
    
       ::
    
           Some code
           Some code
           Some code
           Some code
    
       .. WARNING::
          Some text.
    
    *  Item 3
    
    Some inline text:
    
    *  Item 0
    *  Item 1
    *  Item 2
    
      ::                           <-- One less space before the :: marker
    
           Some code
           Some code
           Some code
           Some code
    
      .. WARNING::                 <-- One less space before the .. marker
          Some warning text.
    
    *  Item 3