为了描述一些C ++类并提供方法,我们成功使用基于MediaWiki的wiki多年。记录的类通常在C ++命名空间中定义,因此我们使用以cppnamespace::classname
约定命名的Wiki页面。
一年前,为wiki启用了Semantic MediaWiki(SMW)扩展。
今天,我开始浏览维基统计数据,我发现了一些可疑的属性"已使用但未定义"。正如我发现的那样,这些是由于应用于 C ++命名空间分隔符::
的 SMW属性语法的特殊含义的碰撞造成的,这会导致wiki页面出现问题链接到完全限定类命名的页面。 SMW总是将名称缩短为类名。 [1]
如果我用维基文写作,
[[MyNamespace::MyClass]]
[[MyNamespace::MyClass|MyNamespace::MyClass]]
[[MyClass|MyNamespace::MyClass]]
...将显示呈现的维基页面,
MyClass MyClass MyClass
...并且在每种情况下链接到的页面都是 MyClass 。
我通常会通过引入新的MediaWiki模板 [2] 来处理此类问题。但我不确定这种特殊情况下的最佳解决方案,因为有许多页面会受到影响。因此,我对之前的体验感兴趣。 (到目前为止Google和SO都没有提供帮助)
如果您遇到同样的问题,您找到了什么解决方案?
答案 0 :(得分:2)
根据http://semantic-mediawiki.org/wiki/Help:Properties_and_types
要使用::创建普通链接而不创建属性,请使用前面的冒号转义标记, 例如[[:C ++ :: operator]]。