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

标签 c++ mediawiki mediawiki-templates semantic-mediawiki

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

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

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

如果我用 wiki 文本书写,

 [[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://semantic-mediawiki.org/wiki/Help:Properties_and_types

To make an ordinary link with :: without creating a property, escape the markup with a colon in front, e.g. The [[:C++ :: operator]].

关于c++ - Semantic MediaWiki 和 C++ 命名空间语法之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26629856/

相关文章:

C++ 双端队列 : when iterators are invalidated

mediawiki - 如何指定 {{{1}}} 的内容以避免 wiki 标记

api - 如何在Wiki API中获取图像URL?

javascript - 如何让我的维基时钟动态化?

php - MediaWiki 自定义皮肤 : check if current page is main page

c++ - vector 构造函数中的段错误

c++ - 尽可能快地比较 (a + sqrt(b)) 形式的两个值?

C++20 模块 : how to pick the strong or weak ownership model?

mediawiki - 我可以使用 MediaWiki 将所有链接设为小写并使用连字符而不是下划线作为单词分隔符吗?

mediawiki - 在 Semantic MediaWiki 中查询逆关系