Semantic MediaWiki和C++命名空间语法之间的冲突

3

为了描述一些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模板是困难的,甚至不可能...

这个问题似乎不适合在此讨论,应该在http://webmasters.stackexchange.com/上进行讨论。 - Captain Obvlious
@CaptainObvlious,如果这不是维基问题,那么你是正确的。维基百科,特别是基于MediaWiki的维基,对每个人都尽可能开放。(例如,我不是网站管理员) - Wolf
使用<nowiki>标签是不可行的吗? - leo
@leo 好主意,但不适用于MW 1.23.4 + SMW 2.0,无论如何还是谢谢。 - Wolf
@leo... <nowiki> 不管是行内还是通过模板使用都不可用,它在两种情况下都只会显示 [[whole::wiki]] 的链接标记(没有创建超链接)。 - Wolf
1个回答

2

似乎内容已经移动到页面Help:In-text annotation – semantic-mediawiki.org - Wolf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接