如何用狮身人面像制作两列

时间:2019-06-25 08:21:21

标签: python python-sphinx restructuredtext

我想在文档中添加多列。

在全球范围内,我想做类似于this homepage的事情,其中​​有3列:一列为当前版本,一列为新闻和更新,以及基础知识。

当我在Google上搜索Sphinx中的多个列时,发现将列表分为2列不是我的情况

在Wiki上,我发现只有多栏才是表格,但我认为这不适用于这里吗?

使用Sphinx在第一个文件中有可能吗?

非常感谢

3 个答案:

答案 0 :(得分:1)

有两种方法可以执行此操作,因此您可以找到一个基于三列的狮身人面像主题(不是我所知道的),或者如@Steve_Piercy建议您创建自己的主题,可能是相当的任务。但是,您可以改用选择的主题,只需调整.rst文件的内容并覆盖主题以3列方式显示内容。为此,您需要一些HTML和CSS。

因此,首先需要创建一个test.rst,其内容为html原始代码,如下所示:

Test
======

.. raw:: html

    <div class="row">
      <div class="column" style="background-color:#aaa;">
        <h2>Column 1</h2>
        <p>Some text..</p>
      </div>
      <div class="column" style="background-color:#bbb;">
        <h2>Column 2</h2>
        <p>Some text..</p>
      </div>
      <div class="column" style="background-color:#ccc;">
        <h2>Column 3</h2>
        <p>Some text..</p>
      </div>
    </div>

现在内容已准备就绪,我们在_static/custom_style.css下为其创建样式文件,其中包括以下代码:

/* Create three equal columns that floats next to each other */
.column {
  float: left;
  width: 33.33%;
  padding: 10px;
  height: 500px;
}

/* Clear floats after the columns */
.row:after {
  content: "";
  display: table;
  clear: both;
}

最后一步是将此样式添加到您的conf.py文件中,以便将其添加到您的主题中。因此,在您的conf.py中添加以下行:

def setup(app):
    app.add_stylesheet('custom_style.css')

就是这样,现在运行并测试。输出应该看起来像这样(取决于您的主题): enter image description here

答案 1 :(得分:1)

这是一个老问题,但现在这个问题的一个可能更好的答案是使用 https://sphinx-panels.readthedocs.io/en/latest/

该扩展提供了您在普通版本中没有的各种组件。

答案 2 :(得分:0)

好吧,我终于找到了它:

您可以在sphinx / rst文件中使用container关键字来分隔内容

.. container:: twocol

    .. container:: leftside

        text on left column

    .. container:: rightside

        text on right column

然后在您的.css文件中:

div.leftside {
  width: 43%;
  padding: 0px 3px 0px 0px;
  float: left;
}

div.rightside {
  margin-left: 45%;
  /* float: right; */
}

使用此方法,您可以将所需的所有内容(图像,链接,文本,...)写入容器中。