我正在使用 MediaWiki。wiki 中的某些页面包含一个或多个大型导航块,例如本页底部的导航块:
像这样的块包含在许多页面中。现在,当一个页面被保存时,指向其他页面的链接列表也会更新(pagelinks
表)。这些引用被“这里的链接”特殊页面和可能的其他类似页面使用。
但我实际上不希望这些块中的链接计算在内。有没有办法可以影响 MediaWiki 在此更新链接到其他页面的过程中排除页面的某些部分?
我编写了一些扩展,覆盖了特定的类并使用了一些钩子,所以我知道这些东西是如何工作的基础知识,但是我找不到合适的钩子来影响这部分过程。
就任何尝试而言,我发现ParserOutput::addLink
用于将解析的链接存储到数组中。然后,在保存时,这个数组被合并到数据库中。addLink 从几个地方调用,最值得注意的是 from Parser::replaceInternalLinks2
,它被调用 from Parser::internalParse
。
如果我理解正确,internalParse
则分别为每段文本调用。这包括单独的包含,但也包括嵌套标签。也许我可以使用调用的钩子internalParse
,但我还没有找到圣杯。我可以使用正确的方向来解决它,最好不修改 Parser 类本身。