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

Материал из Энциклопедия автомобильных номеров мира
Перейти к навигации Перейти к поиску
/>Lanhiaze
м (орфография)
м (1 версия импортирована: Шаблоны:Для шаблонов)
Строка 4: Строка 4:
Этот мета-шаблон предназначен для определения типа страницы по имени пространства.
Этот мета-шаблон предназначен для определения типа страницы по имени пространства.


Шаблон определяет и разделяет все [[Википедия:Пространство имён|пространства]] страниц используемые в Википедии на несколько типов:
Шаблон определяет и разделяет все [[ЭАНМ:Пространство имён|пространства]] страниц используемые в ЭАНМ на несколько типов:


:'''<code>main</code>''' = основное/пространство статей, в котором располагаются обычные статьи Википедии.
:'''<code>main</code>''' = основное/пространство статей, в котором располагаются обычные статьи ЭАНМ.
:'''<code>talk</code>''' = любые пространства обсуждения страниц, начинающиеся со слов «Обсуждение:», «Обсуждение участника:», «Обсуждение файла:» и т.п.
:'''<code>talk</code>''' = любые пространства обсуждения страниц, начинающиеся со слов «Обсуждение:», «Обсуждение участника:», «Обсуждение файла:» и т.п.
:'''<code>user, wikipedia, file, mediawiki, template, help, category</code>''' и '''<code>portal</code>''' = другие пространства кроме пространств обсуждения.
:'''<code>user, wikipedia, file, mediawiki, template, help, category</code>''' и '''<code>portal</code>''' = другие пространства кроме пространств обсуждения.
Строка 150: Строка 150:
Если вы намереваетесь передавать таблицы в значениях параметров в этот шаблон, вам необходимо учесть:
Если вы намереваетесь передавать таблицы в значениях параметров в этот шаблон, вам необходимо учесть:


[[Википедия:Механизм шаблонов|Механизм шаблонов]] не позволяет передавать символ разделителя параметров  «<code>|</code>» внутри значений параметров, если только он не используется внутри другого шаблона <code><nowiki>{{name|param1}}</nowiki></code> или не является разделителем в ссылке <code><nowiki>[[Википедия:Механизм шаблонов|помощь]]</nowiki></code>. Поэтому в шаблон нельзя передавать [[Википедия:Оформление таблиц|таблицы]] в викиразметке в значениях параметров, если только вы не делаете это безопасным способом используя шаблон {{tl|!}} вместо «<code>|</code>». Чтобы избежать этих сложностей лучше использовать HTML разметку для таблиц, что более продуктивно.
[[ЭАНМ:Механизм шаблонов|Механизм шаблонов]] не позволяет передавать символ разделителя параметров  «<code>|</code>» внутри значений параметров, если только он не используется внутри другого шаблона <code><nowiki>{{name|param1}}</nowiki></code> или не является разделителем в ссылке <code><nowiki>[[ЭАНМ:Механизм шаблонов|помощь]]</nowiki></code>. Поэтому в шаблон нельзя передавать [[ЭАНМ:Оформление таблиц|таблицы]] в викиразметке в значениях параметров, если только вы не делаете это безопасным способом используя шаблон {{tl|!}} вместо «<code>|</code>». Чтобы избежать этих сложностей лучше использовать HTML разметку для таблиц, что более продуктивно.


== См. также ==
== См. также ==

Версия от 18:31, 8 января 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 разметку для таблиц, что более продуктивно.

См. также