如何将主页包含在 Sphinx 目录中?

2024-05-04

假设我有一个 Sphinx 项目,其来源如下:

index.rst
installation.rst
templating/
    index.rst
    module.rst
    fieldtype.rst

index.rst(主页)具有以下目录树:

.. toctree::
   :titlesonly:

   installation
   templating/index

我希望我的模板包含一个侧边栏,列出所有 3 个顶级页面(主页、安装、模板/索引)。

我尝试在主页中添加第二个隐藏的目录树:

.. toctree::
   :hidden:

   index

.. toctree::
   :titlesonly:

   installation
   templating/index

这实际上给了我想要的结果,except它使得next变量设置为当前页面。所以我的模板中的这段代码:

Next up: <a href="{{ next.link }}">{{ next.title }}</a>

…始终从主页输出主页链接。不好。

我一直尝试将实际的主页链接硬编码到模板的侧边栏中:

{% set homeClass = 'current' if pagename == 'index' else '' %}
<ul class="{{ homeClass }}">
    <li class="toctree-l1 {{ homeClass }}"><a class="{{ homeClass }} reference internal" href="/index.html">Home</a></li>
</ul>
{{ toctree() }}

这也有效,只是我不想强制在网络服务器的网络根目录上访问文档 – 我希望它们也可以从文件系统工作。

我不能简单地将 URL 设置为“index.html”,因为当您位于 template/ 中的文件中时,这将不起作用。

我错过了一些明显的事情吗?必须有一种方法可以让主页进入目录,而不破坏next链接并具有可在本地文件系统上运行的动态路径,甚至可以在子文件夹内运行。


事实证明,答案就隐藏在狮身人面像的显而易见的地方目录树页面 http://sphinx-doc.org/markup/toctree.html:

特殊条目名称self代表包含 toctree 指令的文档。如果您想从目录树生成“站点地图”,这非常有用。

Adding selfTOC 树完美地达到了目的!如果您将其放置在单独的隐藏 toctree 指令中,它也不会显示在主页目录中:

.. toctree::
   :hidden:

   self


.. toctree::
   :titlesonly:

   installation
   templating/index
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将主页包含在 Sphinx 目录中? 的相关文章

随机推荐

  • Python/Numpy - 屏蔽数组非常慢

    我可以做些什么来加速 numpy 中的屏蔽数组吗 我有一个效率非常低的函数 我重新编写了它来使用屏蔽数组 我可以只屏蔽行 而不是像我所做的那样进行复制和删除行 然而 我惊讶地发现 masked 函数慢了 10 倍 因为 masked 数组慢
  • keep-order 设置 true 不会按照定义的组依赖关系的顺序运行 TestNG 测试

    我正在尝试运行分组 TestNG 测试 给定的 xml 是 testng xml 中的测试
  • ExtJs 4,从容器中删除控件并将其从内存中删除的正确方法是什么?

    这个问题很简单 但我找不到一个好的 明确的答案 正确的方法是什么 从容器中删除控件 在 ExtJs 4 中将其从内存中删除 Ext AbstractContainer remove http dev sencha com deploy ex
  • git merge,保留两者

    为了合并 我用它来 保留我的 git merge X ours foo 这是 保留他们的 git merge X theirs foo 然而 在我最近的合并中 看起来最好保留双方 Git 是否有一个 策略 来避免手动编辑文件 没有解决这些冲
  • jQuery 添加和删除类

    我有这个选择器
  • 双击选项卡控制标题

    一段时间以来我一直想知道这个问题 双击 winforms TabControl 的标题没有被检测到 但我想处理这个事件 看起来所有鼠标事件 单击 移动等 在 TabControl 的 非活动 区域上时都不会引发 我什至尝试过对 TabCon
  • 从文本文件中读取丹麦语字符

    我正在尝试读取包含一些丹麦语字符的文本文件 我找到了几种使用不同类型的编码来完成此操作的方法 但我看到的示例仅读取一个文件 这是我到目前为止所拥有的 search directory for all txt files foreach st
  • 如何更改 max_allowed_pa​​cket 大小

    我的 MySQL 数据库中的 BLOB 字段出现问题 上传大于约 1MB 的文件时出现错误Packets larger than max allowed packet are not allowed 这是我尝试过的 在 MySQL 查询浏览
  • 永远不应该触发嵌套优化。这可能是由于 NSISVariable 委托回调内部发生自动布局工作

    应用程序崩溃了 日志给了我这条消息 永远不应该触发嵌套优化 这可能是由于自动布局工作发生在 NSISVariable 委托回调内 这是不允许的 如何解决这个问题 认为我正在后台线程中更新 UI 尝试放置 if NSThread isMain
  • 带有自定义按钮的 ExtJs 消息框

    如何使用自定义按钮显示 ExtJS 消息框 我想要一个带有自定义消息以及 取消 和 停用 按钮的消息框 请给一些想法 buttons text Cancel handler function Ext MessageBox hide subm
  • 创建应用程序:无法初始化 ORM

    当我启动节点时 我总是收到此错误 请回复我我哪里出错了 错误 创建应用程序 无法初始化 ORM initializeORM NewORM 无法初始化 DB 无法打开 application name Chainlink 0 10 7 7C
  • 比较 Swift 中的 AnyObjects,无需将它们转换为特定类型

    尝试使用 Equatable 协议中定义的 运算符来比较 AnyObject 类型的两个对象会导致 Swift 中出现编译错误 有没有人找到一种方法来比较这些对象 而不知道可用于向下转换的对象的真实类型 这个问题的背景是我有一个字典 Dic
  • Cordova 插件不适用于 Ionic

    我正在 Angular 中构建一个 Ionic 应用程序 但一直无法让插件工作 例如 我尝试使用状态栏插件 如下所述 http ionicframework com tutorials fullscreen apps http ionicf
  • Excel - 使用 FILTERXML 从字符串中提取子字符串

    Background 最近 我一直在尝试更熟悉将分隔字符串更改为 XML 以使用 Excel 进行解析的概念FILTERXML https support microsoft com en us office filterxml funct
  • 节点获取映射错误 - 无法读取未定义的属性“映射””

    当我尝试运行 地图 部分时出现错误无法读取未定义的属性 地图 The customersconst 已在上面声明 所以不确定 未定义是从哪里来的 地图需要声明吗 const AWS require aws sdk ses new AWS S
  • Google App Engine 不解析 JSF 2.0 标签

    我在 AppEngine 上运行 JSF 2 0 时遇到问题 我有以下index xhtml如果我部署它并打开页面 除了Title并且该页面的源代码与编写时完全相同 没有任何更改
  • STL 映射值构造函数

    我有一个类 X 我想将其放入 std map 类型的 STL 映射中 STL 映射需要将 X 存储在内存中的某个位置 因此我正在寻找一种有效的 运行时和内存 方法来创建 X 并将其存储在映射中 我注意到以下代码 其中 x 是 X 类型的对象
  • isinstance 如何用于 List?

    我试图了解 Python 的类型注释是如何工作的 例如List and Dict not list or dict 具体来说 我感兴趣的是如何isinstance list List 有效 这样我就可以创建自己的自定义注释 我看到List定
  • php 时间戳 UTC

    我有一个 PHP MySQL 查询 它将一些数据插入 MySQL 数据库 并且包含时间戳 目前INSERT查询用途NOW 对于时间戳列 它以以下格式保存在数据库中 2012 07 24 13 13 02 不幸的是 对我来说 服务器不在我的时
  • 如何将主页包含在 Sphinx 目录中?

    假设我有一个 Sphinx 项目 其来源如下 index rst installation rst templating index rst module rst fieldtype rst index rst 主页 具有以下目录树 toc