Столкновение между синтаксисом пространства имен Semantic MediaWiki и C ++

Чтобы описать некоторые классы C ++ и предоставить практические рекомендации, мы годами успешно используем вики на базе MediaWiki. Документированные классы обычно определяются в пространстве имен C ++, поэтому мы используем вики-страницы, названные в честь cppnamespace::classname условность.

Год назад расширение Semantic MediaWiki (SMW) было включено для вики.

Сегодня я начал просматривать статистику вики и обнаружил, что некоторые подозрительные атрибуты «используются, но не определены». Как я обнаружил, они были вызваны столкновением особого значения Синтаксис атрибута SMW применяется к Пространство имен C ++ разделитель :: это вызывает проблемы на вики-страницах со ссылками на страницы, названные полностью определенными классами. SMW всегда сокращает имя до имени класса.[1]

Если я напишу в вики текст,

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

…отобразится визуализированная вики-страница,

MyClass MyClass MyClass

…и страница, которая связана с Мои занятия в каждом случае.

Обычно я решал подобные проблемы, представляя новый шаблон MediaWiki.[2]. Но я не уверен в лучшем решении в этом особом случае, потому что есть много страниц, которые будут затронуты. Так что меня интересует предыдущий опыт с этим. (ни Google, ни SO пока не помогли)

Если у вас была такая же проблема, какое решение вы нашли?


  • [1] Дополнение: Информация о версии: MediaWiki 1.23.4 с семантикой MediaWiki 2.0
  • [2] Дополнение: Я попытался выяснить, что создание шаблона MediaWiki для этой цели сложно, если не невозможно …

3

Решение

В соответствии с http://semantic-mediawiki.org/wiki/Help:Properties_and_types

Чтобы сделать обычную ссылку с :: без создания свойства, экранируйте разметку с двоеточием впереди,
например [[: C ++ :: operator]].

2

Другие решения


По вопросам рекламы [email protected]