Шаблон:If pagename/doc: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
DonRumata (обсуждение | вклад) Нет описания правки |
H13Bot (обсуждение | вклад) м →top: оформление кода: шаблон docpage не нуждается в обёртке |
||
(не показано 10 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
{{docpage}} |
|||
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> |
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> |
||
<!-- Пожалуйста добавляйте категории и интервики внизу страницы --> |
<!-- Пожалуйста добавляйте категории и интервики внизу страницы --> |
||
Строка 20: | Строка 20: | ||
</pre> |
</pre> |
||
Если шаблон включён на странице |
Если шаблон включён на странице «Шаблон: Пример/doc» код выше вернёт: |
||
:{{if pagename |
: {{if pagename |
||
| /doc = Текст для страницы документации |
| /doc = Текст для страницы документации |
||
| other = Текст для остальных страниц |
| other = Текст для остальных страниц |
||
Строка 30: | Строка 30: | ||
Если шаблон включён на ''другой'' странице, имя которой не содержит /doc, то код вернёт: |
Если шаблон включён на ''другой'' странице, имя которой не содержит /doc, то код вернёт: |
||
:{{if pagename |
: {{if pagename |
||
| /doc = Текст для страницы документации |
| /doc = Текст для страницы документации |
||
| other = Текст для остальных страниц |
| other = Текст для остальных страниц |
||
Строка 36: | Строка 36: | ||
}} |
}} |
||
Далее приводится перечень всех вариантов проверки страниц образцу: |
Далее приводится перечень всех вариантов проверки страниц по образцу: |
||
<pre> |
<pre> |
||
Строка 65: | Строка 65: | ||
<!-- Совпадение с частью имени подстраницы (без различения прописных и строчных буквв) --> |
<!-- Совпадение с частью имени подстраницы (без различения прописных и строчных буквв) --> |
||
| /чтон* = Любая страница имя которой начинается с "/чтон" или "/Чтон". |
| /чтон* = Любая страница имя которой начинается с "/чтон" или "/Чтон". |
||
| / |
| /архи* = Сработает на странице "Обсуждение участника:Пример/Архив 1". |
||
<!-- Запасные варианты по умолчанию --> |
<!-- Запасные варианты по умолчанию --> |
||
Строка 74: | Строка 74: | ||
</pre> |
</pre> |
||
Сравнение производится сверху вниз и возвращается тот вариант, в котором произошло совпадение. Под словами |
Сравнение производится сверху вниз и возвращается тот вариант, в котором произошло совпадение. Под словами «с верху вниз» имеется ввиду порядок вариантов выше, а не порядок параметров которые передаются в шаблон. |
||
В шаблоне нет ограничений на количество параметров, которые можно передать, кроме ограничений накладываемых сервером и движком MediaWiki. |
В шаблоне нет ограничений на количество параметров, которые можно передать, кроме ограничений накладываемых сервером и движком MediaWiki. |
||
Большинство проверок не зависят от регистра букв. Однако образец |
Большинство проверок не зависят от регистра букв. Однако образец «<code>/test</code>» совпадёт с «Участник: Пример/test» но не с «Участник: Пример/Test». |
||
Проверка на совпадение с частью имени подстраницы, такой как |
Проверка на совпадение с частью имени подстраницы, такой как «<code>/чтон*</code>» имеет некоторые ограничения. См. [[#Частичные имена подстраниц|специально посвященный этому раздел]] ниже. |
||
Разрешается задавать пустое значение в параметре сравнения, при совпадении с образцом дальнейшее сравнение прекращается и шаблон возвращает пустую строку. Это может использоваться для следующих целей: |
Разрешается задавать пустое значение в параметре сравнения, при совпадении с образцом дальнейшее сравнение прекращается и шаблон возвращает пустую строку. Это может использоваться для следующих целей: |
||
Строка 92: | Строка 92: | ||
</pre> |
</pre> |
||
Код выше ничего не отобразит, если шаблон вызовется на странице /doc, но на странице /sandbox он вернёт: |
Код выше ничего не отобразит, если шаблон вызовется на странице /doc, но на странице /sandbox он вернёт: |
||
:{{if pagename |
: {{if pagename |
||
| /doc = |
| /doc = |
||
| /sandbox = Текст для страницы песочницы |
| /sandbox = Текст для страницы песочницы |
||
Строка 103: | Строка 103: | ||
А на остальных страницах отобразится: |
А на остальных страницах отобразится: |
||
:{{if pagename |
: {{if pagename |
||
| /doc = |
| /doc = |
||
| /sandbox = Текст для страницы песочницы |
| /sandbox = Текст для страницы песочницы |
||
Строка 116: | Строка 116: | ||
<pre> |
<pre> |
||
{{if pagename |
{{if pagename |
||
| / |
| /архи* = Текст для страницы архива |
||
| other = Текст для остальных страниц |
| other = Текст для остальных страниц |
||
}} |
}} |
||
</pre> |
</pre> |
||
На странице |
На странице «Участник: Пример/Архив 1» код выше вернёт: |
||
:{{if pagename |
: {{if pagename |
||
| / |
| /архи* = Текст для страницы архива |
||
| other = Текст для остальных страниц |
| other = Текст для остальных страниц |
||
| page = Участник:Пример/Архив 1 |
| page = Участник:Пример/Архив 1 |
||
}} |
}} |
||
Название параметра образца сравнения |
Название параметра образца сравнения «<code>/чтон*</code>» не должно содержать заглавных букв, но совпадение будет на подстраницах содержащий как большие, так и маленькие буквы, таких как «Участник: Пример/ЧтоНибудь» и «Участник: Пример/чтонибудь». |
||
Сравниваемая часть имени страницы в образце может содержать 4, 6 и 8 символов. Сравнение с |
Сравниваемая часть имени страницы в образце может содержать 4, 6 и 8 символов. Сравнение с «<code>/чтон*</code>», «<code>/чтониб*</code>» и «<code>/чтонибуд*</code>» сработает, но с «<code>/что*</code>» или «<code>/чтони*</code>» — нет. |
||
Сначала сравниваются длинные образцы, например если заданы оба образца |
Сначала сравниваются длинные образцы, например если заданы оба образца «<code>/чтонибуд*</code>» и «<code>/чтон*</code>», и текущая станица называется «Участник: Пример/Чтонибудь», то шаблон вернёт то, что задано в параметре «<code>/чтонибуд*</code>». |
||
=== Параметр «page» === |
=== Параметр «page» === |
||
Строка 149: | Строка 149: | ||
И не важно на какой странице код выше будет вызван, он всегда вернёт: |
И не важно на какой странице код выше будет вызван, он всегда вернёт: |
||
:{{if pagename |
: {{if pagename |
||
| /test = Текст для страницы теста |
| /test = Текст для страницы теста |
||
| other = Текст для другой страницы |
| other = Текст для другой страницы |
||
Строка 155: | Строка 155: | ||
}} |
}} |
||
Параметр '''page''' заставляет шаблон вести себя в точности так, как если бы он был вызван на указанной в нём странице. |
Параметр '''page''' заставляет шаблон вести себя в точности так, как если бы он был вызван на указанной в нём странице. |
||
Если параметр '''page''' пустой или не задан, результат определяется в зависимости от названия текущей страницы. |
Если параметр '''page''' пустой или не задан, результат определяется в зависимости от названия текущей страницы. |
||
Строка 181: | Строка 181: | ||
}} |
}} |
||
</pre> |
</pre> |
||
Так на странице |
Так на странице «Участник: Пример/doc» код ничего не вернёт, но на странице «Шаблон: Пример/doc» он вернёт: |
||
:{{template other |
: {{template other |
||
| {{if pagename |
| {{if pagename |
||
| /doc = Текст на странице документации шаблона. |
| /doc = Текст на странице документации шаблона. |
||
Строка 195: | Строка 195: | ||
Это шаблон определяет подстраницы даже если он используется на страницах в пространстве имён, для которых запрещено [[meta:Link#Subpage feature|создание подстраниц]]. Таким образом, он одинаково работает во всех пространствах имён. |
Это шаблон определяет подстраницы даже если он используется на страницах в пространстве имён, для которых запрещено [[meta:Link#Subpage feature|создание подстраниц]]. Таким образом, он одинаково работает во всех пространствах имён. |
||
<!-- |
|||
=== See also === |
|||
{{pagename detect see also}} |
|||
--> |
|||
<includeonly> |
<includeonly> |
||
[[Категория:Шаблоны:Условные]] |
|||
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS --> |
|||
<!-- Категории и интервики здесь --> |
|||
[[Категория:Википедия:Мета-шаблоны|{{PAGENAME}}]] |
|||
[[en:Category:Wikipedia metatemplates]] |
|||
[[sl:Predloga:If pagename]] |
|||
[[tpi:Template:If pagename]] |
|||
</includeonly> |
</includeonly> |
Текущая версия от 09:32, 20 августа 2019
Этот мета-шаблон предназначен для использования внутри других шаблонов.
Он помогает другим шаблонам определить на какой странице они исполняются. Шаблон проверяет на совпадение имя страницы по заданному образцу.
Использование
[править код]Шаблон может обрабатывать более одного параметра. Большинство параметров не имеют определённого имени, так как их имена используются для задания образца поиска. Например:
{{if pagename | /doc = Текст для страницы документации | other = Текст для остальных страниц }}
Если шаблон включён на странице «Шаблон: Пример/doc» код выше вернёт:
- Текст для страницы документации
Если шаблон включён на другой странице, имя которой не содержит /doc, то код вернёт:
- Текст для остальных страниц
Далее приводится перечень всех вариантов проверки страниц по образцу:
{{if pagename <!-- Проверка на совпадение с полным именем страницы --> | Участник:Пример/test = Текст для "Участник:Пример/test". | Участник:Пример= Текст для "Участник:Пример". | Обсуждение участника:Пример= Текст для "Обсуждение участника:Пример". <!-- Проверка на совпадение с полным именем базовой страницы, для базовых страниц или их подстраниц --> | Участник:Пример/+ = Сработает на страницах "Участник:Пример" и "Участник:Пример/test". <!-- Проверка на совпадение с именем страницы, для базовых страниц --> | Пример = Сработает на страницах "Участник:Пример", "Обсуждение участника:Пример", "Шаблон:Пример" и т.п., но не на "Участник:Пример/чтонибудь". <!-- Проверка на совпадение с полным именем базовой страницы, только для подстраниц --> | Участник:Пример/* = Сработает на странице "Участник:Пример/чтонибудь", но не на "Участник:Пример". | Обсуждение участника:Пример/* = Matches "Обсуждение участника:Пример/чтонибудь". <!-- Совпадение с именем базовой страницы, только для подстраниц --> | Пример/* = Сработает на страницах "Участник:Пример/чтонибудь" и "Обсуждение участника:Пример/чтонибудь". <!-- Совпадение с именем подстраницы --> | /чтонибудь = Любая страница заканчивающаяся на "/чтонибудь". | /doc = Любая страница заканчивающаяся на "/doc". <!-- Совпадение с частью имени подстраницы (без различения прописных и строчных буквв) --> | /чтон* = Любая страница имя которой начинается с "/чтон" или "/Чтон". | /архи* = Сработает на странице "Обсуждение участника:Пример/Архив 1". <!-- Запасные варианты по умолчанию --> | basepage = Тест для любой базовой страницы. | subpage = Текст для любой продстраницы. | other = Текст для любой страницы. }}
Сравнение производится сверху вниз и возвращается тот вариант, в котором произошло совпадение. Под словами «с верху вниз» имеется ввиду порядок вариантов выше, а не порядок параметров которые передаются в шаблон.
В шаблоне нет ограничений на количество параметров, которые можно передать, кроме ограничений накладываемых сервером и движком MediaWiki.
Большинство проверок не зависят от регистра букв. Однако образец «/test
» совпадёт с «Участник: Пример/test» но не с «Участник: Пример/Test».
Проверка на совпадение с частью имени подстраницы, такой как «/чтон*
» имеет некоторые ограничения. См. специально посвященный этому раздел ниже.
Разрешается задавать пустое значение в параметре сравнения, при совпадении с образцом дальнейшее сравнение прекращается и шаблон возвращает пустую строку. Это может использоваться для следующих целей:
{{if pagename | /doc = | /sandbox = Текст для страницы песочницы | other = Текст для остальных страниц }}
Код выше ничего не отобразит, если шаблон вызовется на странице /doc, но на странице /sandbox он вернёт:
- Текст для страницы песочницы
А на остальных страницах отобразится:
- Текст для остальных страниц
Частичные имена подстраниц
[править код]Также этот шаблон может сравнивать часть имени подстраницы. Например:
{{if pagename | /архи* = Текст для страницы архива | other = Текст для остальных страниц }}
На странице «Участник: Пример/Архив 1» код выше вернёт:
- Текст для страницы архива
Название параметра образца сравнения «/чтон*
» не должно содержать заглавных букв, но совпадение будет на подстраницах содержащий как большие, так и маленькие буквы, таких как «Участник: Пример/ЧтоНибудь» и «Участник: Пример/чтонибудь».
Сравниваемая часть имени страницы в образце может содержать 4, 6 и 8 символов. Сравнение с «/чтон*
», «/чтониб*
» и «/чтонибуд*
» сработает, но с «/что*
» или «/чтони*
» — нет.
Сначала сравниваются длинные образцы, например если заданы оба образца «/чтонибуд*
» и «/чтон*
», и текущая станица называется «Участник: Пример/Чтонибудь», то шаблон вернёт то, что задано в параметре «/чтонибуд*
».
Параметр «page»
[править код]Для проверки и демонстрации работы шаблон обрабатывает параметр page. Например:
{{if pagename | /test = Текст для страницы теста | other = Текст для другой страницы | page = Шаблон:Пример/test }}
И не важно на какой странице код выше будет вызван, он всегда вернёт:
- Текст для страницы теста
Параметр page заставляет шаблон вести себя в точности так, как если бы он был вызван на указанной в нём странице.
Если параметр page пустой или не задан, результат определяется в зависимости от названия текущей страницы.
Вы можете добавить параметр page в вызывающий шаблон, чтобы показать на его странице документации как он будет выглядеть на разных страницах. Например:
{{if pagename | /test = Текст для страницы теста | other = Текст для другой страницы | page = {{{page|}}} }}
Сравнение имени пространства
[править код]Этот шаблон не сравнивает имена пространств. Если вам нужно это, то объединяйте это шаблон с одним из шаблонов проверки имён пространств, таких как {{template other}}. Например:
{{template other | {{if pagename | /doc = Текст на странице документации шаблона. }} | <!-- Ничего не показывать на других страницах --> }}
Так на странице «Участник: Пример/doc» код ничего не вернёт, но на странице «Шаблон: Пример/doc» он вернёт:
- Текст на странице документации шаблона.
Технические детали
[править код]Это шаблон определяет подстраницы даже если он используется на страницах в пространстве имён, для которых запрещено создание подстраниц. Таким образом, он одинаково работает во всех пространствах имён.