Изменения
+флаг nav; возможность использовать флаги как булевы значения удалена для оптимизации, надеюсь, никто не использовал
{{#if: {{#if: {{{2|}}}{{{3|}}}{{{4|}}}{{{5|}}}{{{nl|}}}{{{nolink|}}}{{{s|}}}{{{п|}}}{{{g|}}}{{{u|}}}{{{b|}}}{{{lang|}}}{{{sister|}}}{{{text|}}} | | {{#if: {{{1|}}} | {{#ifexpr: {{str len|{{{1}}}}} = 1 | | {{#ifeq: {{str left|{{{1}}}|1}} | : | | x }} }} | {{#ifexpr: {{str len|{{ROOTPAGENAME}}}} = 1 | {{#if: {{#titleparts: {{PAGENAME}} | 1 | 2 }} | | x }} | x }} }} }}
{{#if: {{#if: {{{3|}}}{{{4|}}}{{{5|}}}{{{lang|}}}{{{sister|}}}{{{text|}}} | | {{#ifeq: {{{2|nav}}} | nav | {{#if: {{{1|}}} | {{#ifexpr: {{str len|{{{1}}}}} = 1 | | {{#ifeq: {{str left|{{{1}}}|1}} | : | | x }} }} | {{#ifexpr: {{str len|{{ROOTPAGENAME}}}} = 1 | {{#if: {{#titleparts: {{PAGENAME}} | 1 | 2 }} | | x }} | x }} }} | }} }}
<!-- Оптимизируем выполнение, не вынуждая парсер проходить через катакомбы сложной обработки параметров,
<!-- Оптимизируем выполнение, не вынуждая парсер проходить через катакомбы сложной обработки параметров,
если шаблон вызван без дополнительных параметров и то, что дано, не требует особой обработки -->
если шаблон вызван без дополнительных параметров и то, что дано, не требует особой обработки -->
| <span class="wp-templatelink">{{</span>{{#if: {{{1|}}} |
| {{#if: {{{1|}}} |
{{#ifeq:
{{#ifeq:
{{FULLPAGENAME: Шаблон:{{{1}}} }} <!-- {{FULLPAGENAME:}} для преобразования «_» в « » и т. п., -->
{{FULLPAGENAME: Шаблон:{{{1}}} }} <!-- {{FULLPAGENAME:}} для преобразования «_» в « » и т. п., -->
| {{FULLPAGENAME}} <!-- а также решения проблемы с именами на «*», «;» и т. п. при вызове ucfirst -->
| {{FULLPAGENAME}} <!-- а также решения проблемы с именами на «*», «;» и т. п. при вызове ucfirst -->
| <nowiki/><!-- фикс для имён на «*», «;» и т. п. -->{{{1}}}
| {{#ifeq: {{{2|}}} | nav | ''' }}<span class="wp-templatelink">{{</span>{{{1}}}<span class="wp-templatelink">}}</span> {{#ifeq: {{{2|}}} | nav | ''' }}
| [[Шаблон:{{{1}}}|{{{1}}}]]
| <span class="wp-templatelink">{{</span>[[Шаблон:{{{1}}}|{{{1}}}]]<span class="wp-templatelink">}}</span>
}}
}}
| {{#if: {{#titleparts: {{PAGENAME}} | 1 | 2 }}
| <span class="wp-templatelink">{{</span>{{#if: {{#titleparts: {{PAGENAME}} | 1 | 2 }}
| [[Шаблон:{{ROOTPAGENAME}}|{{lcfirst: {{ROOTPAGENAME}} }}]]
| [[Шаблон:{{ROOTPAGENAME}}|{{lcfirst: {{ROOTPAGENAME}} }}]]
| {{lcfirst: {{ROOTPAGENAME}} }}
| {{lcfirst: {{ROOTPAGENAME}} }}
}}<span class="wp-templatelink">}}</span>
}}
| {{#if: {{{1|}}}
<!-- С первым параметром -->
<!-- С первым параметром -->
| {{#if: <!-- Показывать ли ссылку -->
| {{#if: <!-- Показывать ли ссылку -->
{{#if: {{#switch:{{{2|}}}|nl=x|nolink=x|{{#switch:{{{3|}}}|nl=x|nolink=x|{{#switch:{{{4|}}}|nl=x|nolink=x|{{#switch:{{{5|}}}|nl=x|nolink=x|{{{nl|{{{nolink|}}}}}}}}}}}}}}
{{#if: {{#switch:{{{2|}}}|nl=x|nolink=x|{{#switch:{{{3|}}}|nl=x|nolink=x|{{#switch:{{{4|}}}|nl=x|nolink=x|{{#switch:{{{5|}}}|nl=x|nolink=x|}}}}}}}}
| x
| x
| {{#if: {{{lang|}}}
| {{#if: {{{lang|}}}
|
|
| {{#ifeq:
| {{#ifeq:
{{#if: {{#ifeq:{{{2|}}}|g|x|{{#ifeq:{{{3|}}}|g|x|{{#ifeq:{{{4|}}}|g|x|{{#ifeq:{{{5|}}}|g|x|{{{g|{{#ifeq: {{str left|{{{1}}}|1}} | : | x | }}}}}}}}}}}}}
{{#if: {{#ifeq:{{{2|}}}|g|x|{{#ifeq:{{{3|}}}|g|x|{{#ifeq:{{{4|}}}|g|x|{{#ifeq:{{{5|}}}|g|x|{{#ifeq: {{str left|{{{1}}}|1}} | : | x | }}}}}}}}}}
| {{FULLPAGENAME: {{{1}}} }} <!-- ←↙ Что сравниваем -->
| {{FULLPAGENAME: {{{1}}} }} <!-- ←↙ Что сравниваем -->
| {{FULLPAGENAME: Шаблон:{{{1}}} }} <!-- {{FULLPAGENAME:}} для преобразования «_» в « » и т. п., -->
| {{FULLPAGENAME: Шаблон:{{{1}}} }} <!-- {{FULLPAGENAME:}} для преобразования «_» в « » и т. п., -->
}}
}}
}}
}}
| {{{#if: {{#ifeq:{{{2|}}}|s|x|{{#ifeq:{{{3|}}}|s|x|{{#ifeq:{{{4|}}}|s|x|{{#ifeq:{{{5|}}}|s|x|{{{s|}}}}}}}}}}} | subst: | {{#if: {{#ifeq:{{{2|}}}|п|x|{{#ifeq:{{{3|}}}|п|x|{{#ifeq:{{{4|}}}|п|x|{{#ifeq:{{{5|}}}|п|x|{{{п|}}}}}}}}}}} | подст: | }} }}</span>{{{text|{{{1}}}}}}<span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|{{{b|}}}}}}}}}}} | | class="wp-templatelink" }}>}
| {{#if: {{#ifeq:{{{2|}}}|nav|x|{{#ifeq:{{{3|}}}|nav|x|{{#ifeq:{{{4|}}}|nav|x|{{#ifeq:{{{5|}}}|nav|x|}}}}}}}} | ''' }}<span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|}}}}}}}} | | class="wp-templatelink" }}>{{{{#if: {{#ifeq:{{{2|}}}|s|x|{{#ifeq:{{{3|}}}|s|x|{{#ifeq:{{{4|}}}|s|x|{{#ifeq:{{{5|}}}|s|x|}}}}}}}} | subst: | {{#if: {{#ifeq:{{{2|}}}|п|x|{{#ifeq:{{{3|}}}|п|x|{{#ifeq:{{{4|}}}|п|x|{{#ifeq:{{{5|}}}|п|x|}}}}}}}} | подст: | }} }}</span>{{{text|{{{1}}}}}}<span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|}}}}}}}} | | class="wp-templatelink" }}>}}</span>{{#if: {{#ifeq:{{{2|}}}|nav|x|{{#ifeq:{{{3|}}}|nav|x|{{#ifeq:{{{4|}}}|nav|x|{{#ifeq:{{{5|}}}|nav|x|}}}}}}}} | ''' }}
| {{#if:
| {{#if:
{{#ifexpr: {{str len|{{{text|{{{1}}}}}}}} != 1
{{#ifexpr: {{str len|{{{text|{{{1}}}}}}}} != 1
| x
| x
| {{#switch:{{{2|}}}|s=x|п=x|b=x|{{#switch:{{{3|}}}|s=x|п=x|b=x|{{#switch:{{{4|}}}|s=x|п=x|b=x|{{#switch:{{{5|}}}|s=x|п=x|b=x|{{{s|{{{п|{{{b|}}}}}}}}}}}}}}}}}
| {{#switch:{{{2|}}}|s=x|п=x|b=x|{{#switch:{{{3|}}}|s=x|п=x|b=x|{{#switch:{{{4|}}}|s=x|п=x|b=x|{{#switch:{{{5|}}}|s=x|п=x|b=x|{{{s|{{{п|}}}}}}}}}}}}}}
}} <!-- Забирать ли в ссылку соседние фигурные скобки -->
}} <!-- Забирать ли в ссылку соседние фигурные скобки -->
| {{{#if: {{#ifeq:{{{2|}}}|s|x|{{#ifeq:{{{3|}}}|s|x|{{#ifeq:{{{4|}}}|s|x|{{#ifeq:{{{5|}}}|s|x|{{{s|}}}}}}}}}}} | subst: | {{#if: {{#ifeq:{{{2|}}}|п|x|{{#ifeq:{{{3|}}}|п|x|{{#ifeq:{{{4|}}}|п|x|{{#ifeq:{{{5|}}}|п|x|{{{п|}}}}}}}}}}} | подст: | }} }}</span>[[:{{#if: {{#ifeq:{{{2|}}}|g|x|{{#ifeq:{{{3|}}}|g|x|{{#ifeq:{{{4|}}}|g|x|{{#ifeq:{{{5|}}}|g|x|{{{g|{{#ifeq: {{str left|{{{1}}}|1}} | : | x | }}}}}}}}}}}}} | {{FULLPAGENAME: {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister}}}: | }}{{{1}}} }} | {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister}}}: | }}Template:{{{1}}} }}|{{{text|{{{1}}}}}}]]<span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|{{{b|}}}}}}}}}}} | | class="wp-templatelink" }}>}
| <span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|}}}}}}}} | | class="wp-templatelink" }}>{{{{#if: {{#ifeq:{{{2|}}}|s|x|{{#ifeq:{{{3|}}}|s|x|{{#ifeq:{{{4|}}}|s|x|{{#ifeq:{{{5|}}}|s|x|}}}}}}}} | subst: | {{#if: {{#ifeq:{{{2|}}}|п|x|{{#ifeq:{{{3|}}}|п|x|{{#ifeq:{{{4|}}}|п|x|{{#ifeq:{{{5|}}}|п|x|}}}}}}}} | подст: | }} }}</span>[[:{{#if: {{#ifeq:{{{2|}}}|g|x|{{#ifeq:{{{3|}}}|g|x|{{#ifeq:{{{4|}}}|g|x|{{#ifeq:{{{5|}}}|g|x|{{#ifeq: {{str left|{{{1}}}|1}} | : | x | }}}}}}}}}} | {{FULLPAGENAME: {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister}}}: | }}{{{1}}} }} | {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister}}}: | }}Template:{{{1}}} }}|{{{text|{{{1}}}}}}]]<span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|}}}}}}}} | | class="wp-templatelink" }}>}}</span>
<!-- {{{lang}}} и {{{sister}}} появляются не в начале, а с FULLPAGENAME,
<!-- {{{lang}}} и {{{sister}}} появляются не в начале, а с FULLPAGENAME,
чтобы FULLPAGENAME не менял название пространств имён для других разделов/проектов -->
чтобы FULLPAGENAME не менял название пространств имён для других разделов/проектов -->
| </span>[[:{{#ifeq: {{{1}}} | : | <!-- «:» как ссылка на другие разделы работает, а не должно (в случае шаблонов) --> | {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister|}}}: | }}}}{{#if: {{#ifeq:{{{2|}}}|g|x|{{#ifeq:{{{3|}}}|g|x|{{#ifeq:{{{4|}}}|g|x|{{#ifeq:{{{5|}}}|g|x|{{{g|{{#ifeq: {{str left|{{{1}}}|1}} | : | x | }}}}}}}}}}}}} | {{FULLPAGENAME: {{{1}}} }} | Template:{{{1}}} }}|<span class="wp-templatelink">{</span>{{{text|{{{1}}}}}}<span class="wp-templatelink">}</span>]]<span class="wp-templatelink">
| <span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|}}}}}}}} | | class="wp-templatelink" }}>{</span>[[:{{#ifeq: {{{1}}} | : | <!-- «:» как ссылка на другие разделы работает, а не должно (в случае шаблонов) --> | {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister|}}}: | }}}}{{#if: {{#ifeq:{{{2|}}}|g|x|{{#ifeq:{{{3|}}}|g|x|{{#ifeq:{{{4|}}}|g|x|{{#ifeq:{{{5|}}}|g|x|{{#ifeq: {{str left|{{{1}}}|1}} | : | x | }}}}}}}}}} | {{FULLPAGENAME: {{{1}}} }} | Template:{{{1}}} }}|<span class="wp-templatelink">{</span>{{{text|{{{1}}}}}}<span class="wp-templatelink">}</span>]]<span class="wp-templatelink">}</span>
}}
}}
}}
}}
| {{#if: <!-- Без первого параметра. Показывать ли ссылку -->
| {{#if: <!-- Без первого параметра. Показывать ли ссылку -->
{{#if: {{#switch:{{{2|}}}|nl=x|nolink=x|{{#switch:{{{3|}}}|nl=x|nolink=x|{{#switch:{{{4|}}}|nl=x|nolink=x|{{#switch:{{{5|}}}|nl=x|nolink=x|{{{nl|{{{nolink|}}}}}}}}}}}}}}
{{#if: {{#switch:{{{2|}}}|nl=x|nolink=x|{{#switch:{{{3|}}}|nl=x|nolink=x|{{#switch:{{{4|}}}|nl=x|nolink=x|{{#switch:{{{5|}}}|nl=x|nolink=x|}}}}}}}}
| x
| x
| {{#if: {{#titleparts: {{PAGENAME}} | 1 | 2 }}
| {{#if: {{#titleparts: {{PAGENAME}} | 1 | 2 }}
}}
}}
}}
}}
| {{{#if: {{#ifeq:{{{2|}}}|s|x|{{#ifeq:{{{3|}}}|s|x|{{#ifeq:{{{4|}}}|s|x|{{#ifeq:{{{5|}}}|s|x|{{{s|}}}}}}}}}}} | subst: | {{#if: {{#ifeq:{{{2|}}}|п|x|{{#ifeq:{{{3|}}}|п|x|{{#ifeq:{{{4|}}}|п|x|{{#ifeq:{{{5|}}}|п|x|{{{п|}}}}}}}}}}} | подст: | }} }}</span>{{{text|{{#if: {{#ifeq:{{{2|}}}|u|x|{{#ifeq:{{{3|}}}|u|x|{{#ifeq:{{{4|}}}|u|x|{{#ifeq:{{{5|}}}|u|x|{{{u|}}}}}}}}}}} | {{ROOTPAGENAME}} | {{lcfirst: {{ROOTPAGENAME}} }} }}}}}<span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|{{{b|}}}}}}}}}}} | | class="wp-templatelink" }}>}
| {{#if: {{#ifeq:{{{2|}}}|nav|x|{{#ifeq:{{{3|}}}|nav|x|{{#ifeq:{{{4|}}}|nav|x|{{#ifeq:{{{5|}}}|nav|x|}}}}}}}} | ''' }}<span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|}}}}}}}} | | class="wp-templatelink" }}>{{{{#if: {{#ifeq:{{{2|}}}|s|x|{{#ifeq:{{{3|}}}|s|x|{{#ifeq:{{{4|}}}|s|x|{{#ifeq:{{{5|}}}|s|x|}}}}}}}} | subst: | {{#if: {{#ifeq:{{{2|}}}|п|x|{{#ifeq:{{{3|}}}|п|x|{{#ifeq:{{{4|}}}|п|x|{{#ifeq:{{{5|}}}|п|x|}}}}}}}} | подст: | }} }}</span>{{{text|{{#if: {{#ifeq:{{{2|}}}|u|x|{{#ifeq:{{{3|}}}|u|x|{{#ifeq:{{{4|}}}|u|x|{{#ifeq:{{{5|}}}|u|x|}}}}}}}} | {{ROOTPAGENAME}} | {{lcfirst: {{ROOTPAGENAME}} }} }}}}}<span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|}}}}}}}} | | class="wp-templatelink" }}>}}</span>{{#if: {{#ifeq:{{{2|}}}|nav|x|{{#ifeq:{{{3|}}}|nav|x|{{#ifeq:{{{4|}}}|nav|x|{{#ifeq:{{{5|}}}|nav|x|}}}}}}}} | ''' }}
| {{#if:
| {{#if:
{{#ifexpr: {{str len|{{{text|{{ROOTPAGENAME}}}}}}} != 1
{{#ifexpr: {{str len|{{{text|{{ROOTPAGENAME}}}}}}} != 1
| x
| x
| {{#switch:{{{2|}}}|s=x|п=x|b=x|{{#switch:{{{3|}}}|s=x|п=x|b=x|{{#switch:{{{4|}}}|s=x|п=x|b=x|{{#switch:{{{5|}}}|s=x|п=x|b=x|{{{s|{{{п|{{{b|}}}}}}}}}}}}}}}}}
| {{#switch:{{{2|}}}|s=x|п=x|b=x|{{#switch:{{{3|}}}|s=x|п=x|b=x|{{#switch:{{{4|}}}|s=x|п=x|b=x|{{#switch:{{{5|}}}|s=x|п=x|b=x|{{{s|{{{п|}}}}}}}}}}}}}}
}} <!-- Забирать ли в ссылку соседние фигурные скобки -->
}} <!-- Забирать ли в ссылку соседние фигурные скобки -->
| {{{#if: {{#ifeq:{{{2|}}}|s|x|{{#ifeq:{{{3|}}}|s|x|{{#ifeq:{{{4|}}}|s|x|{{#ifeq:{{{5|}}}|s|x|{{{s|}}}}}}}}}}} | subst: | {{#if: {{#ifeq:{{{2|}}}|п|x|{{#ifeq:{{{3|}}}|п|x|{{#ifeq:{{{4|}}}|п|x|{{#ifeq:{{{5|}}}|п|x|{{{п|}}}}}}}}}}} | подст: | }} }}</span>[[Шаблон:{{ROOTPAGENAME}}|{{{text|{{#if: {{#ifeq:{{{2|}}}|u|x|{{#ifeq:{{{3|}}}|u|x|{{#ifeq:{{{4|}}}|u|x|{{#ifeq:{{{5|}}}|u|x|{{{u|}}}}}}}}}}} | {{ROOTPAGENAME}} | {{lcfirst: {{ROOTPAGENAME}} }} }}}}}]]<span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|{{{b|}}}}}}}}}}} | | class="wp-templatelink" }}>}
| <span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|}}}}}}}} | | class="wp-templatelink" }}>{{{{#if: {{#ifeq:{{{2|}}}|s|x|{{#ifeq:{{{3|}}}|s|x|{{#ifeq:{{{4|}}}|s|x|{{#ifeq:{{{5|}}}|s|x|}}}}}}}} | subst: | {{#if: {{#ifeq:{{{2|}}}|п|x|{{#ifeq:{{{3|}}}|п|x|{{#ifeq:{{{4|}}}|п|x|{{#ifeq:{{{5|}}}|п|x|}}}}}}}} | подст: | }} }}</span>[[Шаблон:{{ROOTPAGENAME}}|{{{text|{{#if: {{#ifeq:{{{2|}}}|u|x|{{#ifeq:{{{3|}}}|u|x|{{#ifeq:{{{4|}}}|u|x|{{#ifeq:{{{5|}}}|u|x|}}}}}}}} | {{ROOTPAGENAME}} | {{lcfirst: {{ROOTPAGENAME}} }} }}}}}]]<span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|}}}}}}}} | | class="wp-templatelink" }}>}}</span>
| <span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|}}}}}}}} | | class="wp-templatelink" }}>{</span>[[Шаблон:{{ROOTPAGENAME}}|<span class="wp-templatelink">{</span>{{{text|{{#if: {{#ifeq:{{{2|}}}|u|x|{{#ifeq:{{{3|}}}|u|x|{{#ifeq:{{{4|}}}|u|x|{{#ifeq:{{{5|}}}|u|x|}}}}}}}} | {{ROOTPAGENAME}} | {{lcfirst: {{ROOTPAGENAME}} }} }}}}}<span class="wp-templatelink">}</span>]]<span class="wp-templatelink">}</span>
}}
}}
}}
}}
}}}</span>
}}
}}<!--
}}<!--