【问题标题】:Different external links in Sphinx sidebar per rst每个 rst 的 Sphinx 侧边栏中的不同外部链接
【发布时间】:2016-06-01 13:44:13
【问题描述】:

我有一个代码库、一些 Sphinx 生成的文档,以及一组带有运行代码示例的 Jupyter 笔记本。我想做的是在我的 Sphinx 文档的侧边栏中添加指向笔记本的外部链接。这就是问题所在:我不想在每个页面上都看到侧边栏中的链接,也不想在每个拥有它们的页面上看到相同的链接集。例如,我不需要主页上的任何链接,但是当我查看特定模块的文档时,我希望在笔记本的侧栏中有一个链接,以显示该模块的使用和功能。如果我转到其他模块的文档页面,我不想看到前面提到的笔记本的链接。

基本上我希望能够每次编辑侧边栏,并添加指向特定外部页面的链接。我还希望不必在模板中进行任何疯狂的切换以根据页面显示不同的内容,因为我的代码库相当大,并且切换到控制会很丑而且很难写(如果可能的话) )。

【问题讨论】:

    标签: hyperlink python-sphinx sidebar jupyter-notebook


    【解决方案1】:

    您可以在专用的container 中添加每个页面的开头或结尾的链接,设置类属性并调整 Sphinx 模板的样式,以便将具有此类属性的 div 呈现为侧边栏的一部分.

    这是第一个例子:

    My specific module
    =================
    
    lorem ipsum...
    
    .. container:: side-bar-link
    
       https://www.link1ToMySpecificModule.com
    
       https://www.link2ToMySpecificModule.com
    

    然后,将 side-bar-link 类的样式添加到模板的 CSS 中:

    .side-bar-link {
       ...
    } 
    

    确切的样式取决于您的模板,但您可能希望指定一个绝对位置。

    【讨论】:

    • 因此容器将被手动写入我想要的每个第一个文件中,其中包含我想要该页面的任何内容,并且 CSS 将负责将容器降级到侧栏中的适当位置?我可以通过在模块文档字符串中放入一些东西来为生成的 rst 文件执行此操作吗?
    • 1) 是的,容器将被手动写入每个 .rst 文件。 2) 是的,CSS 会将容器(该类的所有容器)降级到其正确位置。 3) 我不是 Sphinx autodoc 用户,但作为 autodoc 完全支持 .rst,将相应的标记放入模块文档字符串应该没问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多