Python sphinx 向下滚动时,如何保持TOC在侧面可见?

Python sphinx 向下滚动时,如何保持TOC在侧面可见?,python-sphinx,sidebar,restructuredtext,read-the-docs,tableofcontents,Python Sphinx,Sidebar,Restructuredtext,Read The Docs,Tableofcontents,我正在尝试将内置主题“sphinxdoc”用于我的重构文本文档,该文档是使用Sphinx构建的,用于在readthedocs.io上部署。这就像我希望的一样,除了目录的行为,当我向下滚动时,目录保持在顶部,失去了可见性。我希望目录在页面的侧面保持可见,就像它在页面上一样。如何做到这一点?这是一个布局问题,用CSS等解决吗?如中所述: 注 斯芬克斯文档现在使用 …这反过来又具有: 我找不到是否可以安装修改后的sphinx13,但你可以直接获取代码并使用它。我知道这是一个老版本,但我也想这么做 因此

我正在尝试将内置主题“sphinxdoc”用于我的重构文本文档,该文档是使用Sphinx构建的,用于在readthedocs.io上部署。这就像我希望的一样,除了目录的行为,当我向下滚动时,目录保持在顶部,失去了可见性。我希望目录在页面的侧面保持可见,就像它在页面上一样。如何做到这一点?这是一个布局问题,用CSS等解决吗?

如中所述:

斯芬克斯文档现在使用

…这反过来又具有:


我找不到是否可以安装修改后的sphinx13,但你可以直接获取代码并使用它。

我知道这是一个老版本,但我也想这么做

因此,对于任何尝试这样做的人来说,您不需要安装spinx13主题,以供将来参考

  • 您需要将以下内容添加到
    模板
    目录中的
    layout.html
  • {将侧边栏放在正文之前}
    {%block sidebar1%}{{sidebar()}}{%endblock%}
    {%block侧边栏2%}{%endblock%}
    {%block extrahead%}
    {{super()}}
    {#-如果未嵌入}
    table.right{浮点:左;左边距:20px;}
    table.right td{边框:1px实心#ccc;}
    {%如果pagename=='索引'%}
    .related{display:none;}
    {%endif%}
    //侧边栏内容的智能滚动
    $(窗口)。滚动(函数(){
    var sb=$('.sphinxsidebarwrapper');
    var win=$(窗口);
    var sbh=sb.高度();
    变量偏移量=$('.sphinxsidebar').position()['top'];
    var wintop=win.scrollTop();
    var winbot=wintop+win.innerHeight();
    var curtop=sb.position()['top'];
    var curbot=curtop+sbh;
    //侧边栏放在窗户里合适吗?
    如果(sbhwintop&&curbot>winbot){
    sb.css('top',$u.max([wintop-offset-10,0]);
    }否则如果(curtop
  • 将自定义css文件
    mycustom.css
    添加到
    \u static
    (可以命名为anything.css,只要将其添加到
    conf.py
    文件,请参见步骤3)
  • div.sphinxsidebarwrapper{
    位置:相对位置;
    顶部:0px;
    填充:0;
    }
    斯芬克西德巴分区{
    保证金:0;
    填充:0 15px 0 15px;
    宽度:210px;
    浮动:左;
    字号:1em;
    文本对齐:左对齐;
    }
    斯芬克西德巴分区标志{
    字号:1.8em;
    颜色:#0A507A;
    字体大小:300;
    文本对齐:居中;
    }
    斯芬克西德巴分区标志img{
    垂直对齐:中间对齐;
    }
    下载一个img{
    垂直对齐:中间对齐;
    }
    
  • 编辑
    conf.py
    文件:
  • #在此处添加任何包含自定义静态文件(如样式表)的路径,
    #相对于此目录。它们是在内置静态文件之后复制的,
    #因此,名为“default.css”的文件将覆盖内置的“default.css”。
    html_static_path=[''静态']
    #添加自定义css
    def设置(应用程序):
    app.add_样式表('mycustom.css')#给出您创建的文件名。
    
    这足以让它和我一起工作

    注意我使用的是
    html\u主题='bizstyle'
    ——我没有用其他主题测试过这一点

    注意您可能需要调整
    css
    文件和
    layout.html
    以满足您的需要

    有关layout.html和模板的详细信息

    所有这些代码都是从

    // intelligent scrolling of the sidebar content