gpt4 book ai didi

mediawiki - 从 MediaWiki 中的页面链接中排除页面的某些部分

转载 作者:行者123 更新时间:2023-12-02 22:56:52 26 4
gpt4 key购买 nike

我正在使用 MediaWiki。 wiki 中的某些页面包含一个或多个大型导航 block ,例如本页底部的导航 block :

https://www.eftepedia.nl/

许多页面中都包含这样的 block 。现在,当保存页面时,其他页面的链接列表也会更新(pagelinks 表)。这些引用由“此处链接是什么”特殊页面以及可能其他类似页面使用。

但实际上我不希望这些 block 中的链接起作用。有没有办法可以影响 MediaWiki 在更新其他页面链接的过程中排除页面的某些部分?

我已经编写了一些扩展,覆盖了特定的类并使用了一些钩子(Hook),所以我知道这些东西如何工作的基础知识,但我找不到正确的钩子(Hook)来影响这部分过程。

就任何尝试而言,我发现了 ParserOutput::addLink,它用于将解析后的链接存储到数组中。然后,在保存时,该数组将合并到数据库中。 addLink 是从几个地方调用的,最明显的是从 Parser::replaceInternalLinks2 调用,它是从 Parser::internalParse 调用的。

如果我理解正确,将为每段文本分别调用 internalParse 。这包括单独的包含,但也包括嵌套标签。也许我可以使用 internalParse 中调用的钩子(Hook),但我还没有找到 chalice 。我可以使用正确方向的插入来解决它,最好不要修改 Parser 类本身。

最佳答案

解决此问题的最简单方法是不使用链接的 [[wiki link]] 语法。您可以将外部链接语法与完整 URL [http://like/this like this] 结合使用,并通过使用 class="将它们包装在 div 或 span 中,使它们看起来像常规内部链接普通链接”。为了减轻这种痛苦,请为此制作一个模板:

在 Template:NaviLink 中,您将拥有:

<span class="plainlinks">[{{fullurle:{{{1}}}}} {{{2|{{{1}}}}}}]</span>

(对 mediawiki 疯狂的模板语法表示赞同)(有关 fullurle 的说明,请参阅 https://www.mediawiki.org/wiki/Fullurl#URL_data )

在您的导航模板中,您可以使用例如:

* {{NaviLink|Efteling Golf course}}
* {{NaviLink|Haunted Castle (Efteling)|Haunted Castle}}

除了 NaviLink 模板,您还可以实现一个解析器函数(不是钩子(Hook)),它输出所需链接的 HTML,而不需要将任何内容放入数据库中。我不明白你为什么要这样做,但如果你想的话,看看 https://www.mediawiki.org/wiki/Manual:Parser_functions .

PS:不会为包含的文本位单独调用internalParse。模板扩展是由预处理器在实际解析器在生成的 wiki 文本上运行之前完成的。

关于mediawiki - 从 MediaWiki 中的页面链接中排除页面的某些部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18197948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com