为了描述一些C++类并提供操作指南,我们已经成功使用基于MediaWiki的维基站多年。这些文档类通常在C++命名空间中定义,因此我们使用wiki页面来命名符合 cppnamespace::classname
约定的页面。
一年前,我们为该维基站启用了Semantic MediaWiki (SMW) 扩展。
今天,我开始浏览维基统计信息,并发现了一些可疑的属性“已使用但未定义”。我发现,这是由于使用 SMW属性语法 应用于在wiki页面上链接到完全限定类名的页面时会导致问题的 C++命名空间分隔符::
的碰撞造成的。SMW始终将名称缩短为类名称。[1]
如果我在维基文本中编写:
[[MyNamespace::MyClass]]
[[MyNamespace::MyClass|MyNamespace::MyClass]]
[[MyClass|MyNamespace::MyClass]]
渲染后的维基页面将显示:
MyClass MyClass MyClass
而链接到的页面在任何情况下都是MyClass。
通常我会通过引入新的MediaWiki模板[2]来处理这种问题。但在这种特殊情况下,有很多页面将受到影响,因此我对以前的经验感兴趣。(迄今为止,Google和SO都没有帮助)
如果你遇到了同样的问题,你找到了什么解决方法?
- [1] 补充:版本信息:MediaWiki 1.23.4与Semantik MediaWiki 2.0
- [2] 补充:通过尝试,我发现为此目的构建MediaWiki模板是困难的,甚至不可能...
<nowiki>
标签是不可行的吗? - leo<nowiki>
不管是行内还是通过模板使用都不可用,它在两种情况下都只会显示[[whole::wiki]]
的链接标记(没有创建超链接)。 - Wolf