Mediawiki волшебное слово или функция синтаксического анализа в шаблоне, который печатает имя шаблона?

#mediawiki #mediawiki-extensions #mediawiki-templates

#mediawiki #mediawiki-расширения #mediawiki-шаблоны

Вопрос:

Контекст этого вопроса предназначен для отслеживания того, из каких шаблонов поступает переведенный контент.

Похоже, что встроенного средства, которое делает это, нет (см.https://www.mediawiki.org/wiki/Help:Magic_words). Большинство из них относятся к заголовкам страниц, как вы могли бы видеть в строке URL.

Вот гипотетический пример того, что я ищу:

Содержимое «Template:Foo»

 <includeonly>You transcluded Template:{{TEMPLATENAME}}</includeonly>
  

Содержимое «Страницы примера»

 {{Foo}}
  

Как должна выглядеть «Страница примера»:

 You transcluded Template:Foo
  

Использование {{PAGENAME}} или аналогичное не работает, потому что они используют текущую страницу, на которой они применяются. Например, если Template:Foo использовал {{PAGENAME}} вместо гипотетического {{TEMPLATENAME}}, то содержимое страницы примера было бы «Вы перевели шаблон: Страница примера», что было бы неверно.

Ответ №1:

Вы можете получить к нему доступ только через фрейм синтаксического анализа. Расширение Scribunto делает это доступным, если вы его не используете, вам придется написать свою собственную функцию синтаксического анализа (и объявить ее с SFH_OBJECT_ARGS опцией, чтобы фрейм был передан ей).