3

为了描述一些 C++ 类并提供操作方法,我们多年来一直成功地使用基于 MediaWiki 的 wiki。文档类通常在 C++ 命名空间中定义,因此我们使用以约定命名的 wiki 页面cppnamespace::classname

一年前,为 wiki 启用了 Semantic MediaWiki (SMW) 扩展。

今天,我开始浏览 wiki 统计数据,发现一些可疑属性“已使用但未定义”。正如我所发现的,这些是由应用于C++ 命名空间分隔符的特殊含义的SMW 属性语法的冲突引起的,这会导致 wiki 页面出现问题,其中链接到由完全限定类命名的页面。SMW 总是将名称缩短为类名。[1]::

如果我用维基文本写作,

 [[MyNamespace::MyClass]]
 [[MyNamespace::MyClass|MyNamespace::MyClass]]
 [[MyClass|MyNamespace::MyClass]]

...呈现的 wiki 页面将显示,

我的班级 我的班级 我的班级

...并且链接到的页面在任何情况下都是MyClass

我通常通过引入新的 MediaWiki 模板[2]来处理此类问题。但我不确定这种特殊情况下的最佳解决方案,因为有很多页面会受到影响。所以我对以前的经验很感兴趣。(到目前为止,谷歌和 SO 都没有帮助)

如果你有同样的问题,你找到了什么解决方案?


  • [1] 补充:版本信息:MediaWiki 1.23.4 和 Semantik MediaWiki 2.0
  • [2] 补充:我通过尝试发现,为此目的构建 MediaWiki 模板很困难,如果不是不可能的话......
4

1 回答 1

2

根据http://semantic-mediawiki.org/wiki/Help:Properties_and_types

要在不创建属性的情况下与 :: 建立普通链接,请在前面使用冒号转义标记,例如 [[:C++ :: operator]]。

于 2014-11-26T03:09:13.497 回答