2014-10-29 58 views
3

爲了描述一些C++類並提供操作方法,我們成功地使用了一個基於MediaWiki的wiki多年。記錄的類通常在C++名稱空間中定義,因此我們使用以cppnamespace::classname慣例命名的wiki頁。Semantic MediaWiki和C++命名空間語法之間的碰撞

一年前,wiki的Semantic MediaWiki(SMW)擴展已啓用。

今天,我開始瀏覽wiki統計信息,並發現一些可疑屬性「使用但未定義」。正如我所發現的那樣,這些問題是由特殊含義的碰撞造成的,這些特殊含義適用於C++命名空間分隔符::,導致維基頁面上的問題出現鏈接到由完全限定類命名的頁面。 SMW總是將名稱縮短爲類名稱。 [1]

如果我在維基文本編寫,

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

...呈現的wiki頁面會顯示,

MyClass的MyClass的MyClass的

.. 。並且鏈接到的頁面在每種情況下都是MyClass

我通常會通過引入一個新的MediaWiki模板來處理這類問題[2]。但我不確定在這種特殊情況下的最佳解決方案,因爲有很多頁面會受到影響。所以我對以前的經驗感興趣。 (谷歌和SO都沒有幫助到目前爲止)

如果你有同樣的問題,你找到了什麼解決方案?


  • [1]增加:版本信息:鏈接到MediaWiki 1.23.4與Semantik鏈接到MediaWiki 2.0
  • [2]增加:我發現通過嘗試,即建立一個MediaWiki模板爲此目的很難,如果不是不可能...
+0

這個問題似乎是離題,因爲屬於http://webmasters.stackexchange.com/ – 2014-10-29 12:16:30

+0

@CaptainObvlious你說得對,如果它不是一個維基問題。 Wikis,特別是基於MediaWiki時,儘可能向所有人開放。 (例如,我不是網站管理員) – Wolf 2014-10-29 12:25:19

+0

正在使用''標籤嗎? – leo 2014-10-29 14:50:57

回答

2

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

爲了與::普通鏈路而不創建屬性,與在前面, 例如結腸逸出的標記[[:C++ :: operator]]。

+0

嘿,它非常簡單,完美地工作。 ) – Wolf 2014-11-26 08:51:12

+0

似乎內容已移到頁面[幫助:文本內註釋 - semantic-mediawiki.org](https://www.semantic-mediawiki.org/wiki/Help:In-text_annotation) – Wolf 2017-02-01 15:30:26