Анонимный участник
Шаблон:Namespace detect/doc: различия между версиями
м
орфография
Admin (обсуждение | вклад) |
/>Lanhiaze м (орфография) |
||
Строка 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». | |||
Если вы намереваетесь передавать таблицы в значениях параметров в этот шаблон, вам необходимо учесть: | |||
[[ЭАНМ:Механизм шаблонов|Механизм шаблонов]] не позволяет передавать символ разделителя параметров «<code>|</code>» внутри значений параметров, если только он не используется внутри другого шаблона <code><nowiki>{{name|param1}}</nowiki></code> или не является разделителем в ссылке <code><nowiki>[[ЭАНМ:Механизм шаблонов|помощь]]</nowiki></code>. Поэтому в шаблон нельзя передавать [[ЭАНМ:Оформление таблиц|таблицы]] в викиразметке в значениях параметров, если только вы не делаете это безопасным способом используя шаблон {{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> |