我需要完全复制维基百科关于将页面正文中的[[links]]转换为打开他们所引用文章的网址的行为。
描述了链接语法及其行为(转换)here。虽然那篇文章只提到了一些非常基本的修改,但我认为这不是整个故事。
我尝试搜索MediaWiki API参考,但还没找到我正在寻找的特定代码段。是否有人熟悉这些代码,以了解我可能正在谈论的PHP功能(可能与编辑/提交相关)?
答案 0 :(得分:4)
这有两个部分:
解析链接由Parser类完成,该类执行所有wiki文本处理。链接可能更复杂,只有[[Foo]],例如[[Foo#bar | something]],其中Foo是目标页面,#bar是一个部分,“something”是结果链接的“表面文本”。要生成URL,您需要目标页面和部分。要生成链接(在HTML中),您还需要表面文本(如果没有给出,它与目标页面+部分相同)。目前没有简单的方法来解析链接,没有完整的wiki文本处理。
如果您已经拥有目标页面标题(可能是部分ID),您可以选择获取其中的URL:旧学校(单片)方式或新样式(基于服务)方式。
新的风格方法是:
老派的方法是:
旧样式更容易,因为它不需要您创建服务对象。它依赖于全局状态,并且所有依赖项都是硬编码的。新风格使用简单的依赖注入,允许单独交换所有部分并独立测试 - 但它需要更多的代码。