Шаблон:Namespace detect: различия между версиями
(Новая страница: «{{#switch: {{Lc: <!--Lower case the result--> <!--If no or empty "demospace" parameter then detect namespace--> {{#if:{{{demospace|}}} | {{{demospace}}} | {{#ifeq:{{NAMESPACE}}|{{ns:0}} | main | {{#ifeq:{{NAMESPACE}}|{{TALKSPACE}} | {{#if:{{{talk|}}} | talk | {{#if:{{{andtalk|}}}|{{SUBJECTSPACE}}|talk}} }} | {{NAMESPACE}} }} }} }} }} <!-- Only one of the lines below will be ex...») |
Импортёр (обсуждение | вклад) м (1 версия импортирована) |
(нет различий)
|
Текущая версия от 21:31, 30 апреля 2024
Этот мета-шаблон предназначен для определения типа страницы по имени пространства.
Шаблон определяет и разделяет все пространства страниц используемые в РуСказках на несколько типов:
main
= основное/пространство статей, в котором располагаются обычные статьи РуСказок.talk
= любые пространства обсуждения страниц, начинающиеся со слов «Обсуждение:», «Обсуждение участника:», «Обсуждение файла:» и т.п.user, wikipedia, file, mediawiki, template, help, category
иportal
= другие пространства кроме пространств обсуждения.other
= любые пространства не указанные в параметре шаблона. См. пояснение ниже.
Для обратной совместимости этот шаблон понимает старое имя image
(изображение) для пространства file
(файл). Однако использовать image
теперь нежелательно.
Внимание! В большинстве случаев лучше использовать более простые шаблоны определения пространств страниц (смотри раздел См. также ниже), так как этот шаблон более уязвим к таким человеческим ошибкам, как описки в имени параметров.
Использование[править код]
Этот шаблон принимает один или более параметров названных ниже, которые задают типы страниц перечисленные выше. Например:
{{Namespace detect | main = текст в статье | talk = текст на странице обсуждения | other = текст на остальных страницах }}
Если шаблон будет вызван в статье, находящейся в основном пространстве, он вернёт следующее:
- текст в статье
Если шаблон будет вызван на любой другой странице, кроме статьи или страницы обсуждения, он вернёт:
- текст на остальных страницах
Примеры выше обязательно что-то вернут на любом типе страниц, но если мы не будем задавать параметр other
или оставим его пустым, то ничего не вернётся на остальных страниц. Например:
{{Namespace detect | file = текст на странице описания файла | category = текст на странице категории | other = }}
На любых страницах, кроме страниц описания файлов и страниц категорий шаблон ничего не отобразит.
Используя пустое значение параметра можно указать, чтобы шаблон ничего не отображал на указанном типе страниц. Например:
{{Namespace detect | main = | other = текст на остальных страницах }}
Код выше ничего не отобразит в статье, но вернёт следующее на остальных страницах:
- текст на остальных страницах
Параметры demospace и page[править код]
Для проверки и демонстрации работы шаблон обрабатывает два параметра demospace
(демо-пространство) и page
(страница).
Параметр demospace
может принимать любое значение типа страницы которое используемое в шаблоне, включая тип other
. Он указывает шаблону вести себя так, так бы он вёл себя будучи вызван на указанном типе страниц. Например:
{{Namespace detect | main = текст в статье | other = текст на остальных страницах | demospace = main }}
Не важно на каком типе странице вы поместите код, указанный выше он всегда вернёт:
- текст в статье
В отличие от него параметр page
задаёт имя страницы, которое заставляет шаблон вести себя именно так, как если бы он был помещён на указанной в нём странице, которая не обязательно должна существовать на самом деле. Например:
{{Namespace detect | user = текст на личной странице пользователя | other = текст на остальных страницах | page = Участник:Например }}
Не важно на каком типе страниц будет помещён пример, указанный выше, он всегда вернёт:
- текст на остальных страницах
С помощью параметров page
и demospace
удобно демонстрировать различное поведение вашего шаблона если он использует шаблон {{Namespace detect}}. Для этого их нужно поддержать в вызывающем шаблоне и передать в {{Namespace detect}} следующим образом:
{{Namespace detect | main = текст в статье | other = текст на остальных страницах | demospace = {{{demospace|}}} | page = {{{page|}}} }}
Если оба параметра demospace
и page
пусты или не заданы, то шаблон будет определять тип страницы как обычно.
Параметры[править код]
Список всех параметров:
{{Namespace detect | main = ... | other = | demospace = {{{demospace|}}} / main / talk / user / wikipedia / file / mediawiki / template / help / category / portal / other | page = {{{page|}}} / Участник:Например }}
Примечание: Пустые значения параметров для "main" ... "portal" имеют специальное назначение.
Технические детали[править код]
Пространство «Image» (Изображение) было переименовано в «File» (Файл) 11 декабря 2008 года. Этот шаблон обновлён и понимает оба эти названия, как это было раньше. Для обратной совместимости шаблон корректно обрабатывает название «image», как в названии параметра «image = страница описания файла», так и значении параметра «demospace = image».
Если вы намереваетесь передавать таблицы в значениях параметров в этот шаблон, вам необходимо учесть:
Механизм шаблонов не позволяет передавать символ разделителя параметров «|
» внутри значений параметров, если только он не используется внутри другого шаблона {{Name|param1}}
или не является разделителем в ссылке [[РуСказки:Механизм шаблонов|помощь]]
. Поэтому в шаблон нельзя передавать таблицы в викиразметке в значениях параметров, если только вы не делаете это безопасным способом используя шаблон {{!}} вместо «|
». Чтобы избежать этих сложностей лучше использовать HTML разметку для таблиц, что более продуктивно.
См. также[править код]
- {{Main other}}
- {{Talk other}}
- {{User other}}
- {{Template other}}
- {{Category other}}