Изменения

892 байта убрано ,  9 лет назад
принцип "don't worry about performance" себя не оправдал: на странице с сотней включений шаблона эта штука тормозила. оптимизировал до норм. значений
Строка 1: Строка 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" }}>&#123;{{#if: {{{1|}}} <!-- С первым параметром -->
+
{{#if: {{#if: {{{2|}}}{{{3|}}}{{{4|}}}{{{5|}}}{{{nl|}}}{{{nolink|}}}{{{u|}}}{{{s|}}}{{{п|}}}{{{g|}}}{{{b|}}}{{{lang|}}}{{{sister|}}}{{{text|}}} | | {{#if: {{{1|}}} | {{#ifexpr: {{str len|{{{1}}}}} = 1 | | {{#ifeq: {{str left|{{{1}}}|1}} | : | | x }} }} | {{#ifexpr: {{str len|{{ROOTPAGENAME}}}} = 1 | | x }} }} }}
| {{#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|{{{nolink|{{{nl|}}}}}}}}}}}}}}
+
                    если шаблон вызван без дополнительных параметров -->
    | x
+
| <span class="wp-templatelink">&#123;&#123;</span>{{#if: {{{1|}}} |
    | {{#ifeq: {{lc: {{{lang|ru}}} }} | ru
+
    {{#ifeq:
      | {{#if: {{{sister|}}}
+
      {{FULLPAGENAME: Шаблон:{{{1}}} }} <!-- {{FULLPAGENAME:}} для преобразования «_» в « » и т. п., -->
        |
+
    | {{FULLPAGENAME}}                  <!-- а также решения проблемы с именами на «*», «;» и т. п. при вызове ucfirst -->
        | {{#ifeq:
+
    | {{FULLPAGENAME: {{{1}}} }}
            {{#if: {{#ifeq:{{{2|}}}|g|x|{{#ifeq:{{{3|}}}|g|x|{{#ifeq:{{{4|}}}|g|x|{{#ifeq:{{{5|}}}|g|x|{{#ifeq: {{str index|{{{1}}}|1}} | : |x|{{{g|}}}}}}}}}}}}}
+
    | [[Шаблон:{{{1}}}|{{{1}}}]]
            | {{FULLPAGENAME: {{{1}}} }}    <!-- ←↙ Что сравниваем -->
+
    }}
            | {{FULLPAGENAME: Шаблон:{{{1}}} }} <!-- {{FULLPAGENAME:}} для преобразования «_» в « » и т. п.,
+
  | {{#if: {{#titleparts: {{PAGENAME}} | 1 | 2 }}
                                                    а также решения проблемы с именами на «*», «;» и т. п. при вызове ucfirst -->
+
    | [[Шаблон:{{ROOTPAGENAME}}|{{lcfirst: {{ROOTPAGENAME}} }}]]
 +
    | {{lcfirst: {{ROOTPAGENAME}} }}
 +
    }}
 +
  }}<span class="wp-templatelink">&#125;&#125;</span>
 +
| <span {{#if: {{#ifeq:{{{2|}}}|b|x|{{#ifeq:{{{3|}}}|b|x|{{#ifeq:{{{4|}}}|b|x|{{#ifeq:{{{5|}}}|b|x|{{{b|}}}}}}}}}}} | | class="wp-templatelink" }}>&#123;{{#if: {{{1|}}}
 +
                <!-- С первым параметром -->
 +
  | {{#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|}}}}}}}}}}}}}}
 +
      | x
 +
      | {{#ifeq: {{lc: {{{lang|ru}}} }} | ru
 +
        | {{#if: {{{sister|}}}
 +
          |
 +
          | {{#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 | }}}}}}}}}}}}}
 +
              | {{FULLPAGENAME: {{{1}}} }}    <!-- ←↙ Что сравниваем -->
 +
              | {{FULLPAGENAME: Шаблон:{{{1}}} }} <!-- {{FULLPAGENAME:}} для преобразования «_» в « » и т. п., -->
 +
              }}                                  <!-- а также решения проблемы с именами на «*», «;» и т. п. при вызове ucfirst -->
 +
            | {{FULLPAGENAME}}                    <!-- С чем сравниваем -->
 +
            | x
 +
            |
 
             }}
 
             }}
          | {{FULLPAGENAME}}                    <!-- С чем сравниваем -->
  −
          | x
  −
          |
   
           }}
 
           }}
 +
        |
 
         }}
 
         }}
      |
   
       }}
 
       }}
     }}
+
     | &#123;{{#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" }}>&#125;
  | &#123;{{#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" }}>&#125;
+
    | {{#if:
  | {{#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
+
        {{#ifexpr: {{str len|{{{text|{{{1}}}}}}}} != 1
                <!-- Забирать ли в ссылку соседние фигурные скобки.
+
        | 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|}}}|r=x|raw=x|» можно просто перенести на один уровень с первым switch -->
+
      | &#123;{{#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" }}>&#125;
    | </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">&#123;</span>{{{text|{{{1}}}}}}<span class="wp-templatelink">&#125;</span>]]<span class="wp-templatelink">
  −
    | &#123;{{#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" }}>&#125;
   
                 <!-- {{{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">&#123;</span>{{{text|{{{1}}}}}}<span class="wp-templatelink">&#125;</span>]]<span class="wp-templatelink">
 +
      }}
 
     }}
 
     }}
   }}
+
   | {{#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|{{{nolink|{{{nl|}}}}}}}}}}}}}}
  −
    | x
  −
    | {{#if: {{#titleparts: {{PAGENAME}} | 1 | 2 }}
  −
      |
   
       | x
 
       | x
 +
      | {{#if: {{#titleparts: {{PAGENAME}} | 1 | 2 }}
 +
        |
 +
        | x
 +
        }}
 +
      }}
 +
    | &#123;{{#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" }}>&#125;
 +
    | {{#if:
 +
        {{#ifexpr: {{str len|{{{text|{{ROOTPAGENAME}}}}}}} != 1
 +
        | 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|}}}}}}}}}}}}}}}}}
 +
        }}      <!-- Забирать ли в ссылку соседние фигурные скобки -->
 +
      | &#123;{{#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" }}>&#125;
 +
      | </span>[[Шаблон:{{ROOTPAGENAME}}|<span class="wp-templatelink">&#123;</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">&#125;</span>]]<span class="wp-templatelink">
 
       }}
 
       }}
 
     }}
 
     }}
   | &#123;{{#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" }}>&#125;
+
   }}&#125;</span>
  | {{#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
+
}}<!--
                <!-- Забирать ли в ссылку соседние фигурные скобки.
  −
                    Здесь очень много вложенных условий, которые оправданны с точки зрения логики (срабатывает одно условие —
  −
                    можно не обрабатывать последующие), но не факт, что это комфортно для парсера. Если что,
  −
                    кусок начиная со «{{#switch:{{{2|}}}|r=x|raw=x|» можно просто перенести на один уровень с первым switch -->
  −
    | </span>[[Шаблон:{{ROOTPAGENAME}}|<span class="wp-templatelink">&#123;</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">&#125;</span>]]<span class="wp-templatelink">
  −
    | &#123;{{#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" }}>&#125;
  −
    }}
  −
  }}
  −
}}&#125;</span><!--
      
Некоторые детали для понимания (части) логики:
 
Некоторые детали для понимания (части) логики:
 
• больше всего места занимает «прочесывание» параметров в поисках допустимых значений;
 
• больше всего места занимает «прочесывание» параметров в поисках допустимых значений;
• если шаблон вызывается без первого параметра, максимум ненумерованных параметров может быть 5, поэтому нужные значения (nl/nolink, u, s/subst/п/подст, r/raw) ищутся во 2-5 параметрах;
+
• если шаблон вызывается без первого параметра, максимум ненумерованных параметров может быть 5, поэтому нужные значения (nl/nolink, u, s/п, b) ищутся во 2-5 параметрах;
• если шаблон вызывается с первым параметром, максимум ненумерованных параметров может быть 4, поэтому нужные значения (nl/nolink, s/subst/п/подст, g, r/raw; но nl несовместимо с g) ищутся... все равно во 2-5 параметрах, мало ли;
+
• если шаблон вызывается с первым параметром, максимум ненумерованных параметров может быть 4, поэтому нужные значения (nl/nolink, s/п, g, b; но 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>
Анонимный участник