【问题标题】:Display (include) MediaWiki table of contents (TOC) on another page在另一个页面上显示(包括)MediaWiki 目录 (TOC)
【发布时间】:2012-05-10 08:52:49
【问题描述】:

在 MediaWiki 中,我们希望在另一个页面上显示目录(来自多个页面)。我们知道这可以自动完成,例如如果我们像这样包含第 1、2 和 3 页:

{{:Page 1}}
{{:Page 2}}
{{:Page 3}}

在第 X 页上,然后第 X 页显示第 1、2 和 3 页的组合目录。

但是我们想要一个在 X 页上的表格,它在单独的单元格中显示每个 TOC。有什么方法可以单独包含每个 TOC?

我尝试在第 1、2 和 3 页的文本周围使用 <noinclude></noinclude> 标签,然后在外部强制使用目录(使用 __TOC__),但这只会在 X 页上创建一个 TOC(使用页面的内容X)。

【问题讨论】:

  • 我在这里假设它可以以编程方式完成,例如在页面上带有模板或至少 wiki 代码。

标签: formatting wiki mediawiki tableofcontents


【解决方案1】:

你不能。目录是在每个页面中动态生成的,适用于当前页面中出现的所有部分。

当您包含其他页面的部分(或至少部分标题)时,它们将显示在页面 X 的目录中。如果您包含 __TOC__ 魔术词,则意味着仅生成目录第 X 页。

三种解决方案:

  1. 包括第 1、2 和 3 页的部分(标题)。即使包含在 <div style="display:none;"> 中,它们也会显示在第 X 页的目录中 - 一种非常丑陋的方式。
  2. 手动将 TOC 表复制到第 X 页。您可以使用浏览器查看生成的第 1、2 和 3 页的 HTML 源代码来查看其 HTML。
  3. 编写一个允许从其他页面嵌入目录的扩展。它可能会引入一个新的解析器函数{{toc:<pagename>}},并能够在另一个页面的上下文中调用生成目录的函数。
  4. 仅包含部分标题作为列表。在第 1、2 和 3 页中,您需要填写

    == <onlyinclude><includeonly>##</includeonly> Heading Number One </onlyinclude> ==
    === <onlyinclude><includeonly>###</includeonly> Part One of Heading Number One </onlyinclude> ===
    ...
    

    您可以将其包含在第 X 页的表格中

    {{:Page 1}}
    

    它应该显示为一个编号列表,就像目录一样。

【讨论】:

  • 解决方案 #1 效果很好,谢谢。但是,我应该提到确实有多个 Page X:X1、X2、X3,......它们都必须适合 Page Y 上的表格(每个单元格一个“X”)。我认为我的问题并不清楚。有什么想法吗?
  • 是的,#1 并不是真正的解决方案。扩展答案。
  • 我认为实际上第 1 页应该是 &lt;onlyinclude&gt;== Header == &lt;new line&gt;&lt;/onlyinclude&gt; 并且第 X 应该是 {{:Page 1}} (其中&lt;new line&gt; 字面上是一个新行;还要注意第 X 页上的分号。这适用于页面 X1、X2 等,但不适用于包含每个页面 X 的页面 Y。
  • 呐,你不会隐藏章节标题吧?我想你只想要他们的头衔。
  • 对 - 但是当我使用你的解决方案时,页面 X 上什么也没有出现。页面 X(在我的版本中)包含 &lt;div style="display:none;"&gt; {{:Page 1}} {{:Page 2}} {{:Page 3}} &lt;/div&gt; - 每个项目都在一个新行上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-17
  • 2016-08-09
  • 1970-01-01
  • 2017-02-23
  • 2018-04-22
  • 1970-01-01
相关资源
最近更新 更多