Изменения
Перейти к навигации
Перейти к поиску
Строка 1:
Строка 1:
− +
− +
Строка 7:
Строка 7:
− +
Строка 20:
Строка 20:
− +
− +
− +
− +
− +
+
+
+
Строка 30:
Строка 33:
− +
Строка 37:
Строка 40:
− +
− +
− +
− +
− +
+
+
+
− +
− +
− +
− +
+r/raw
{{#if: {{{1|}}} <!-- С первым параметром -->
<span {{#if: {{#switch:{{{2|}}}|r=x|raw=x|{{#switch:{{{3|}}}|r=x|raw=x|{{#switch:{{{4|}}}|r=x|raw=x|{{#switch:{{{5|}}}|r=x|raw=x|{{{r|{{{raw|}}}}}}}}}}}}}} | | class="wp-templatelink" }}>{{{#if: {{{1|}}} <!-- С первым параметром -->
| {{#if: <!-- Показывать ли ссылку -->
| {{#if: <!-- Показывать ли ссылку -->
{{#if: {{#switch: {{{2|}}} | nl = x | nolink = x | {{#switch: {{{3|}}} | nl = x | nolink = x | {{#switch: {{{4|}}} | nl = x | nolink = x | {{{nolink|{{{nl|}}}}}} }} }} }}
{{#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|{{{nolink|{{{nl|}}}}}}}}}}}}}}
| x
| x
| {{#ifeq: {{lc: {{{lang|ru}}} }} | ru
| {{#ifeq: {{lc: {{{lang|ru}}} }} | ru
|
|
| {{#ifeq:
| {{#ifeq:
{{#if: {{#ifeq: {{{2|}}} | g | x | {{#ifeq: {{{3|}}} | g | x | {{#ifeq: {{{4|}}} | g | x | {{#ifeq: {{str index|{{{1}}}|1}} | : | x | {{{g|}}} }} }} }} }}
{{#if: {{#ifeq:{{{2|}}}|g|x|{{#ifeq:{{{3|}}}|g|x|{{#ifeq:{{{4|}}}|g|x|{{#ifeq:{{{5|}}}|g|x|{{#ifeq: {{str index|{{{1}}}|1}} | : |x|{{{g|}}}}}}}}}}}}}
| {{FULLPAGENAME: {{{1}}} }} <!-- ←↙ Что сравниваем -->
| {{FULLPAGENAME: {{{1}}} }} <!-- ←↙ Что сравниваем -->
| {{FULLPAGENAME: Шаблон:{{{1}}} }} <!-- {{FULLPAGENAME:}} для преобразования «_» в « » и т. п.,
| {{FULLPAGENAME: Шаблон:{{{1}}} }} <!-- {{FULLPAGENAME:}} для преобразования «_» в « » и т. п.,
}}
}}
}}
}}
| <span class="wp-templatelink">{{{{#if: {{#switch: {{{2|}}} | s = x | subst = x | {{#switch: {{{3|}}} | s = x | subst = x | {{#switch: {{{4|}}} | s = x | subst = x | }} }} }} | subst: | {{#if: {{#switch: {{{2|}}} | п = x | подст = x | {{#switch: {{{3|}}} | п = x | подст = x | {{#switch: {{{4|}}} | п = x | подст = x | }} }} }} | подст: | }} }}</span>{{{text|{{{1}}}}}}<span class="wp-templatelink">}}</span>
| {{{#if: {{#switch:{{{2|}}}|s=x|subst=x|{{#switch:{{{3|}}}|s=x|subst=x|{{#switch:{{{4|}}}|s=x|subst=x|{{#switch:{{{5|}}}|s=x|subst=x|{{{s|{{{subst|}}}}}}}}}}}}}} | subst: | {{#if: {{#switch:{{{2|}}}|п=x|подст=x|{{#switch:{{{3|}}}|п=x|подст=x|{{#switch:{{{4|}}}|п=x|подст=x|{{#switch:{{{5|}}}|п=x|подст=x|{{{п|{{{подст|}}}}}}}}}}}}}} | подст: | }} }}</span>{{{text|{{{1}}}}}}<span {{#if: {{#switch:{{{2|}}}|r=x|raw=x|{{#switch:{{{3|}}}|r=x|raw=x|{{#switch:{{{4|}}}|r=x|raw=x|{{#switch:{{{5|}}}|r=x|raw=x|{{{r|{{{raw|}}}}}}}}}}}}}} | | class="wp-templatelink" }}>}
| {{#ifexpr: {{str len|{{{text|{{{1}}}}}}{{#switch: {{{2|}}} | s = x | subst = x | п = x | подст = x | {{#switch: {{{3|}}} | s = x | subst = x | п = x | подст = x | {{#switch: {{{4|}}} | s = x | subst = x | п = x | подст = x | }} }} }}}} = 1
| {{#ifexpr: {{str len|{{{text|{{{1}}}}}}{{#switch:{{{2|}}}|s=x|subst=x|п=x|подст=x|{{#switch:{{{3|}}}|s=x|subst=x|п=x|подст=x|{{#switch:{{{4|}}}|s=x|subst=x|п=x|подст=x|{{#switch:{{{5|}}}|s=x|subst=x|п=x|подст=x|{{{s|{{{subst|{{{п|{{{подст|{{#switch:{{{2|}}}|r=x|raw=x|{{#switch:{{{3|}}}|r=x|raw=x|{{#switch:{{{4|}}}|r=x|raw=x|{{#switch:{{{5|}}}|r=x|raw=x|{{{r|{{{raw|}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} = 1
<!-- Забирать ли в ссылку соседние фигурные скобки -->
<!-- Забирать ли в ссылку соседние фигурные скобки.
| <span 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: {{str index|{{{1}}}|1}} | : | x | {{{g|}}} }} }} }} }} | {{FULLPAGENAME: {{{1}}} }} | Template:{{{1}}} }}|<span class="wp-templatelink">{</span>{{{text|{{{1}}}}}}<span class="wp-templatelink">}</span>]]<span class="wp-templatelink">}</span>
Здесь очень много вложенных условий, которые оправданны с точки зрения логики (срабатывает одно условие —
| <span class="wp-templatelink">{{{{#if: {{#switch: {{{2|}}} | s = x | subst = x | {{#switch: {{{3|}}} | s = x | subst = x | {{#switch: {{{4|}}} | s = x | subst = x | }} }} }} | subst: | {{#if: {{#switch: {{{2|}}} | п = x | подст = x | {{#switch: {{{3|}}} | п = x | подст = x | {{#switch: {{{4|}}} | п = x | подст = x | }} }} }} | подст: | }} }}</span>[[:{{#if: {{#ifeq: {{{2|}}} | g | x | {{#ifeq: {{{3|}}} | g | x | {{#ifeq: {{{4|}}} | g | x | {{#ifeq: {{str index|{{{1}}}|1}} | : | x | {{{g|}}} }} }} }} }} | {{FULLPAGENAME: {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister}}}: | }}{{{1}}} }} | {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister}}}: | }}Template:{{{1}}} }}|{{{text|{{{1}}}}}}]]<span class="wp-templatelink">}}</span>
можно не обрабатывать последующие), но не факт, что это комфортно для парсера. Если что,
кусок начиная со «{{#switch:{{{2|}}}|r=x|raw=x|» можно просто перенести на один уровень с первым switch -->
| </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 index|{{{1}}}|1}} | : |x|{{{g|}}}}}}}}}}}}} | {{FULLPAGENAME: {{{1}}} }} | Template:{{{1}}} }}|<span class="wp-templatelink">{</span>{{{text|{{{1}}}}}}<span class="wp-templatelink">}</span>]]<span class="wp-templatelink">
| {{{#if: {{#switch:{{{2|}}}|s=x|subst=x|{{#switch:{{{3|}}}|s=x|subst=x|{{#switch:{{{4|}}}|s=x|subst=x|{{#switch:{{{5|}}}|s=x|subst=x|{{{s|{{{subst|}}}}}}}}}}}}}} | subst: | {{#if: {{#switch:{{{2|}}}|п=x|подст=x|{{#switch:{{{3|}}}|п=x|подст=x|{{#switch:{{{4|}}}|п=x|подст=x|{{#switch:{{{5|}}}|п=x|подст=x|{{{п|{{{подст|}}}}}}}}}}}}}} | подст: | }} }}</span>[[:{{#if: {{#ifeq:{{{2|}}}|g|x|{{#ifeq:{{{3|}}}|g|x|{{#ifeq:{{{4|}}}|g|x|{{#ifeq:{{{5|}}}|g|x|{{#ifeq: {{str index|{{{1}}}|1}} | : |x|{{{g|}}}}}}}}}}}}} | {{FULLPAGENAME: {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister}}}: | }}{{{1}}} }} | {{#if: {{{lang|}}} | {{{lang}}}: | }}{{#if: {{{sister|}}} | {{{sister}}}: | }}Template:{{{1}}} }}|{{{text|{{{1}}}}}}]]<span {{#if: {{#switch:{{{2|}}}|r=x|raw=x|{{#switch:{{{3|}}}|r=x|raw=x|{{#switch:{{{4|}}}|r=x|raw=x|{{#switch:{{{5|}}}|r=x|raw=x|{{{r|{{{raw|}}}}}}}}}}}}}} | | class="wp-templatelink" }}>}
<!-- {{{lang}}} и {{{sister}}} появляются не в начале, а с FULLPAGENAME,
<!-- {{{lang}}} и {{{sister}}} появляются не в начале, а с FULLPAGENAME,
чтобы FULLPAGENAME не менял название пространств имён для других разделов/проектов -->
чтобы FULLPAGENAME не менял название пространств имён для других разделов/проектов -->
}}
}}
| {{#if: <!-- Без первого параметра. Показывать ли ссылку -->
| {{#if: <!-- Без первого параметра. Показывать ли ссылку -->
{{#if: {{#switch: {{{2|}}} | nl = x | nolink = x | {{#switch: {{{3|}}} | nl = x | nolink = x | {{#switch: {{{4|}}} | nl = x | nolink = x | {{{nolink|{{{nl|}}}}}} }} }} }}
{{#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|{{{nolink|{{{nl|}}}}}}}}}}}}}}
| x
| x
| {{#if: {{#titleparts: {{PAGENAME}} | 1 | 2 }}
| {{#if: {{#titleparts: {{PAGENAME}} | 1 | 2 }}
}}
}}
}}
}}
| <span class="wp-templatelink">{{{{#if: {{#switch: {{{2|}}} | s = x | subst = x | {{#switch: {{{3|}}} | s = x | subst = x | {{#switch: {{{4|}}} | s = x | subst = x | }} }} }} | subst: | {{#if: {{#switch: {{{2|}}} | п = x | подст = x | {{#switch: {{{3|}}} | п = x | подст = x | {{#switch: {{{4|}}} | п = x | подст = x | }} }} }} | подст: | }} }}</span>{{#if: {{#ifeq: {{{2|}}} | u | x | {{#ifeq: {{{3|}}} | u | x | {{#ifeq: {{{4|}}} | u | x | {{{u|}}} }} }} }} | {{ROOTPAGENAME}} | {{lcfirst: {{ROOTPAGENAME}} }} }}<span class="wp-templatelink">}}</span>
| {{{#if: {{#switch:{{{2|}}}|s=x|subst=x|{{#switch:{{{3|}}}|s=x|subst=x|{{#switch:{{{4|}}}|s=x|subst=x|{{#switch:{{{5|}}}|s=x|subst=x|{{{s|{{{subst|}}}}}}}}}}}}}} | subst: | {{#if: {{#switch:{{{2|}}}|п=x|подст=x|{{#switch:{{{3|}}}|п=x|подст=x|{{#switch:{{{4|}}}|п=x|подст=x|{{#switch:{{{5|}}}|п=x|подст=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: {{#switch:{{{2|}}}|r=x|raw=x|{{#switch:{{{3|}}}|r=x|raw=x|{{#switch:{{{4|}}}|r=x|raw=x|{{#switch:{{{5|}}}|r=x|raw=x|{{{r|{{{raw|}}}}}}}}}}}}}} | | class="wp-templatelink" }}>}
| {{#ifexpr: {{str len|{{{text|{{ROOTPAGENAME}}}}}{{#switch: {{{2|}}} | s = x | subst = x | п = x | подст = x | {{#switch: {{{3|}}} | s = x | subst = x | п = x | подст = x | {{#switch: {{{4|}}} | s = x | subst = x | п = x | подст = x | }} }} }}}} = 1
| {{#ifexpr: {{str len|{{{text|{{ROOTPAGENAME}}}}}{{#switch:{{{2|}}}|s=x|subst=x|п=x|подст=x|{{#switch:{{{3|}}}|s=x|subst=x|п=x|подст=x|{{#switch:{{{4|}}}|s=x|subst=x|п=x|подст=x|{{#switch:{{{5|}}}|s=x|subst=x|п=x|подст=x|{{{s|{{{subst|{{{п|{{{подст|{{#switch:{{{2|}}}|r=x|raw=x|{{#switch:{{{3|}}}|r=x|raw=x|{{#switch:{{{4|}}}|r=x|raw=x|{{#switch:{{{5|}}}|r=x|raw=x|{{{r|{{{raw|}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} = 1
<!-- Забирать ли в ссылку соседние фигурные скобки -->
<!-- Забирать ли в ссылку соседние фигурные скобки.
| <span class="wp-templatelink">{</span>[[Шаблон:{{ROOTPAGENAME}}|<span class="wp-templatelink">{</span>{{{text|{{#if: {{#ifeq: {{{2|}}} | u | x | {{#ifeq: {{{3|}}} | u | x | {{#ifeq: {{{4|}}} | u | x | {{{u|}}} }} }} }} | {{ROOTPAGENAME}} | {{lcfirst: {{ROOTPAGENAME}} }} }}}}}<span class="wp-templatelink">}</span>]]<span class="wp-templatelink">}</span>
Здесь очень много вложенных условий, которые оправданны с точки зрения логики (срабатывает одно условие —
| <span class="wp-templatelink">{{{{#if: {{#switch: {{{2|}}} | s = x | subst = x | {{#switch: {{{3|}}} | s = x | subst = x | {{#switch: {{{4|}}} | s = x | subst = x | }} }} }} | subst: | {{#if: {{#switch: {{{2|}}} | п = x | подст = x | {{#switch: {{{3|}}} | п = x | подст = x | {{#switch: {{{4|}}} | п = x | подст = x | }} }} }} | подст: | }} }}</span>[[Шаблон:{{ROOTPAGENAME}}|{{{text|{{#if: {{#ifeq: {{{2|}}} | u | x | {{#ifeq: {{{3|}}} | u | x | {{#ifeq: {{{4|}}} | u | x | {{{u|}}} }} }} }} | {{ROOTPAGENAME}} | {{lcfirst: {{ROOTPAGENAME}} }} }}}}}]]<span class="wp-templatelink">}}</span>
можно не обрабатывать последующие), но не факт, что это комфортно для парсера. Если что,
кусок начиная со «{{#switch:{{{2|}}}|r=x|raw=x|» можно просто перенести на один уровень с первым switch -->
| </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|{{{u|}}}}}}}}}}} | {{ROOTPAGENAME}} | {{lcfirst: {{ROOTPAGENAME}} }} }}}}}<span class="wp-templatelink">}</span>]]<span class="wp-templatelink">
| {{{#if: {{#switch:{{{2|}}}|s=x|subst=x|{{#switch:{{{3|}}}|s=x|subst=x|{{#switch:{{{4|}}}|s=x|subst=x|{{#switch:{{{5|}}}|s=x|subst=x|{{{s|{{{subst|}}}}}}}}}}}}}} | subst: | {{#if: {{#switch:{{{2|}}}|п=x|подст=x|{{#switch:{{{3|}}}|п=x|подст=x|{{#switch:{{{4|}}}|п=x|подст=x|{{#switch:{{{5|}}}|п=x|подст=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: {{#switch:{{{2|}}}|r=x|raw=x|{{#switch:{{{3|}}}|r=x|raw=x|{{#switch:{{{4|}}}|r=x|raw=x|{{#switch:{{{5|}}}|r=x|raw=x|{{{r|{{{raw|}}}}}}}}}}}}}} | | class="wp-templatelink" }}>}
}}
}}
}}
}}
}}<!--
}}}</span><!--
Некоторые детали для понимания (части) логики:
Некоторые детали для понимания (части) логики:
• больше всего места занимает «прочесывание» параметров в поисках регламентированных значений;
• больше всего места занимает «прочесывание» параметров в поисках допустимых значений;
• если шаблон вызывается без первого параметра, максимум ненумерованных параметров может быть 4, поэтому нужные значения (nl/nolink, u, s/subst) ищутся во 2-4 параметрах;
• если шаблон вызывается без первого параметра, максимум ненумерованных параметров может быть 5, поэтому нужные значения (nl/nolink, u, s/subst/п/подст, r/raw) ищутся во 2-5 параметрах;
• если шаблон вызывается с первым параметром, максимум ненумерованных параметров может быть 3, поэтому нужные значения (nl/nolink, s/subst, g; но nl несовместимо с g) ищутся... все равно в 2-4 параметрах, мало ли;
• если шаблон вызывается с первым параметром, максимум ненумерованных параметров может быть 4, поэтому нужные значения (nl/nolink, s/subst/п/подст, g, r/raw; но nl несовместимо с g) ищутся... все равно во 2-5 параметрах, мало ли;
• когда мы находимся в документации (Шаблон:Имя шаблона/doc), ссылка тоже показывается;
• когда мы находимся в документации (Шаблон:Имя шаблона/doc), ссылка тоже показывается;
• x — подобие true или крестика в чекбоксе (со значением 1 получается путаница, ведь противоположность 1 — 0, но 0 тоже обрабатывается как true).
• x — подобие true или крестика в чекбоксе (со значением 1 получается путаница, ведь противоположность 1 — 0, но 0 тоже обрабатывается как true).
--><noinclude>{{doc}}</noinclude>
--><noinclude>{{doc}}</noinclude>