Шаблон:Namespace detect/doc: различия между версиями

Материал из wikixw
Перейти к навигации Перейти к поиску
(Новая страница: «{{docpage}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> Этот мета-шаблон предназначен для определения типа страницы по имени пространства. Шаблон определяет и разделяет все пространства страниц используемые в Википедии на неск...»)
 
(Полностью удалено содержимое страницы)
Метки: очистка отменено
Строка 1: Строка 1:
{{docpage}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->


Этот мета-шаблон предназначен для определения типа страницы по имени пространства.
Шаблон определяет и разделяет все [[Википедия:Пространство имён|пространства]] страниц используемые в Википедии на несколько типов:
:'''<code>main</code>''' = основное/пространство статей, в котором располагаются обычные статьи Википедии.
:'''<code>talk</code>''' = любые пространства обсуждения страниц, начинающиеся со слов «Обсуждение:», «Обсуждение участника:», «Обсуждение файла:» и т.п.
:'''<code>user, wikipedia, file, mediawiki, template, help, category</code>''' и '''<code>portal</code>''' = другие пространства кроме пространств обсуждения.
:'''<code>other</code>''' = любые пространства не указанные в параметре шаблона. См. пояснение ниже.
Для обратной совместимости этот шаблон понимает старое имя '''<code>image</code>''' (изображение) для пространства '''<code>file</code>''' (файл). Однако использовать '''<code>image</code>''' теперь нежелательно.
'''Внимание!''' В большинстве случаев лучше использовать более простые шаблоны определения пространств страниц (смотри раздел [[#См. также|См. также]] ниже), так как этот шаблон более уязвим к таким человеческим ошибкам, как описки в имени параметров.
=== Использование ===
Этот шаблон принимает один или более параметров названных ниже, которые задают типы страниц перечисленные выше. Например:
<pre>
{{namespace detect
| main  = текст в статье
| talk  = текст на странице обсуждения
| other = текст на остальных страницах
}}
</pre>
Если шаблон будет вызван в статье, находящейся в основном пространстве, он вернёт следующее:
:{{namespace detect| demospace=main
| main  = текст в статье
| talk  = текст на странице обсуждения
| other = текст на остальных страницах
}}
Если шаблон будет вызван на любой другой странице, кроме статьи или страницы обсуждения, он вернёт:
:{{namespace detect
| main  = текст в статье
| talk  = текст на странице обсуждения
| other = текст на остальных страницах
}}
Примеры выше обязательно что-то вернут на любом типе страниц, но если мы не будем задавать параметр '''<code>other</code>''' или оставим его пустым, то ничего не вернётся на остальных страниц. Например:
<pre>
{{namespace detect
| file    = текст на странице описания файла
| category = текст на странице категории
| other    =
}}
</pre>
На любых страницах, кроме страниц описания файлов и страниц категорий шаблон ничего не отобразит.
<!-- Не убирайте этот пример. Он ничего не отображает, но нужен для целей тестирования. -->
:{{namespace detect
| file    = текст на странице описания файла
| category = текст на странице категории
| other    =
}}
Используя пустое значение параметра можно указать, чтобы шаблон ничего не отображал на указанном типе страниц. Например:
<pre>
{{namespace detect
| main  =
| other = текст на остальных страницах
}}
</pre>
Код выше ничего не отобразит в статье, но вернёт следующее на остальных страницах:
:{{namespace detect
| main  =
| other = текст на остальных страницах
}}
=== Параметры demospace и page ===
Для проверки и демонстрации работы шаблон обрабатывает два параметра '''<code>demospace</code>''' (демо-пространство) и '''<code>page</code>''' (страница).
Параметр <code>demospace</code> может принимать любое значение типа страницы которое используемое в шаблоне, включая тип '''<code>other</code>'''. Он указывает шаблону вести себя так, так бы он вёл себя будучи вызван на указанном типе страниц. Например:
<pre>
{{namespace detect
| main  = текст в статье
| other = текст на остальных страницах
| demospace = main
}}
</pre>
Не важно на каком типе странице вы поместите код, указанный выше он всегда вернёт:
:{{namespace detect
| main  = текст в статье
| other = текст на остальных страницах
| demospace = main
}}
В отличие от него параметр <code>page</code> задаёт имя страницы, которое заставляет шаблон вести себя именно так, как если бы он был помещён на указанной в нём странице, которая не обязательно должна существовать на самом деле. Например:
<pre>
{{namespace detect
| user  = текст на личной странице пользователя
| other = текст на остальных страницах
| page = Участник:Например
}}
</pre>
Не важно на каком типе страниц будет помещён пример, указанный выше, он всегда вернёт:
:{{namespace detect
| user  = текст на личной странице пользователя
| other = текст на остальных страницах
| page = Участник:Например
}}
С помощью параметров <code>page</code> и <code>demospace</code> удобно демонстрировать различное поведение вашего шаблона если он использует шаблон {{tl|namespace detect}}. Для этого их нужно поддержать в вызывающем шаблоне и передать в {{tl|namespace detect}} следующим образом:
<pre>
{{namespace detect
| main  = текст в статье
| other = текст на остальных страницах
| demospace = {{{demospace|}}}
| page  = {{{page|}}}
}}
</pre>
Если оба параметра '''<code>demospace</code>''' и '''<code>page</code>''' пусты или не заданы, то шаблон будет определять тип страницы как обычно.
=== Параметры ===
Список всех параметров:
<pre>
{{namespace detect
| main  =
...
| other =
| demospace = {{{demospace|}}} / main / talk / user /
              wikipedia / file / mediawiki / template /
              help / category / portal / other
| page  = {{{page|}}} / Участник:Например
}}
</pre>
Примечание: Пустые значения параметров для "main" ... "portal" имеют специальное назначение.
=== Технические детали  ===
Пространство «Image» (Изображение) было переименовано в «File» (Файл) 11 декабря 2008 года. Этот шаблон обновлён и понимает оба эти названия, как это было раньше. Для обратной совместимости шаблон корректно обрабатывает название «image», как в названии параметра «image = страница описания файла», так и значении параметра «demospace = image».
Если вы намереваетесь передавать таблицы в значениях параметров в этот шаблон, вам необходимо учесть:
[[Wikixw:Механизм шаблонов|Механизм шаблонов]] не позволяет передавать символ разделителя параметров  «<code>|</code>» внутри значений параметров, если только он не используется внутри другого шаблона <code><nowiki>{{name|param1}}</nowiki></code> или не является разделителем в ссылке <code><nowiki>[[Wikixw:Механизм шаблонов|помощь]]</nowiki></code>. Поэтому в шаблон нельзя передавать [[Wikixw:Оформление таблиц|таблицы]] в викиразметке в значениях параметров, если только вы не делаете это безопасным способом используя шаблон {{tl|!}} вместо «<code>|</code>». Чтобы избежать этих сложностей лучше использовать HTML разметку для таблиц, что более продуктивно.
== См. также ==
* {{tl|main other}}
* {{tl|talk other}}
* {{tl|user other}}
* {{tl|template other}}
* {{tl|category other}}
<includeonly>
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Категория:Шаблоны:Для шаблонов]]
</includeonly>

Версия от 13:31, 6 июня 2023