Автомобильные номера Макао: различия между версиями

Перейти к навигации Перейти к поиску
м
Строка 1: Строка 1:
{{Navbox with collapsible groups
{{docpage}}
| name = String-handling templates
{{esoteric}}
| state = {{{state|expanded}}}
{{используйте песочницу}}
| bodyclass = plainlist
{{TOC right}}
| title = String-handling templates
'''{{t}}''' — шаблон-суперкомбайн для создания символической записи имён шаблонов или ссылок на них, улучшенная версия {{t|tl}}. С помощью него можно сослаться на шаблон (и не только) где угодно, с любым текстом ссылки или без неё. Среди всего прочего, если в тексте ссылки всего один символ, в ссылку автоматически заключаются соседние фигурные скобки — {{t|!}}.
| selected = {{{selected|{{{expanded|{{{1|}}}}}}}}}


<!---------------------- Trimming ------------------------->
{{днш|ш|шаблон}}
| abbr1 = trim
| sect1 = [[Trimming (computer programming)|Trimming]]
| content1 =


{{Navbox (beta)|child
== Использование ==
{{tc|t|''имя шаблона или страницы''|''флаги''|lang{{=}}''код языкового раздела''|sister{{=}}''код родственного проекта''|text{{=}}''текст ссылки''|comment{{=}}''всплывающая подсказка''}}


  | group1 = By counting
Все параметры являются необязательными.
  | list1 =
  {{Aligned table |fullwidth=on |style=text-align:left; |col1width=50%;
    | {{Aligned table |style=padding-right:2.5em;
      |col1style=width:12.5em;text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
      | {{tl|str mid}}      | To return a substring specified by position and length.
      | {{tl|trunc}}        | To trim down to a specified number of characters.
      | {{tl|str left}}      | To trim down to a specified number of characters or duplicate the string to a specified number.
      | {{tl|str crop}}      | To crop a specified number of characters off the end.
      | {{tl|chop head and tail}} | To crop a specified number of characters off the beginning and end.
      }}
    | {{Aligned table
      |col1style=width:12.5em;text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
      | {{tl|str right}}    | To trim the first specified number of characters.
      | {{tl|str rightc}}    | To return a number of characters from the end, returns a parameter if the string is empty.
      | {{tl|str rightmost}} | To trim down to the last specified number of characters.
      | {{tl|str sub old}}  | To trim down to a specified number, starting at a given number from the left.
      | {{tl|str sub new}}  | Select a substr based on starting and ending index.
      | {{tl|str index}}    | Returns a given character from a string, but not accented letters.
  }} }}


  | group2 = By checking
Если использовать шаблон без параметров (или без первого параметра), то в фигурных скобках он выведет название текущей страницы (после двоеточия) со строчной первой буквы (это бывает полезно при упоминании шаблона в его собственной документации, особенно когда используется одна документация на несколько шаблонов).
  | list2 =
  {{Aligned table |fullwidth=on |style=text-align:left; |col1width=50%;
    | {{Aligned table |style=padding-right:2.5em;
      |col1style=width:12.5em;text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
      | {{tl|trim}}                | To trim any leading or trailing whitespace
      | {{tl|str letter/trim}}    | To trim down to the beginning letters.
      | {{tl|str number/trim}}    | To trim down to the beginning numbers.
      | {{tl|trim brackets}}      | To trim any leading or trailing square brackets.
      }}
    | {{Aligned table
      |col1style=width:12.5em;text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
      | {{tl|first word}}          | To trim down to the first space.
      | {{tl|remove first word}}  | To remove anything before the first space.
      | {{tl|last word}}          | To trim down from the last space.
      | {{tl|remove last word}}    | To remove anything after the last space.
  }} }}


  | group3 = Dedicated
Если использовать его с первым параметром, то он создаст ссылку на страницу, заданную в нём (то есть поведёт себя, как шаблон {{t|tl}}), за исключением случая, когда он уже находится на ней.
  | list3 =
  {{Aligned table |fullwidth=on |style=text-align:left; |col1width=50%;
    | {{Aligned table |style=padding-right:2.5em;
      |col1style=width:12.5em;text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
      | {{tl|delink}}              | Removes wikilink brackets (wikicode).
      | {{tl|remove file prefix}}  | Removes "File:" (or "Image:") from filenames.
      | {{tl|PAGENAMEBASE}}       | To trim off any parenthesis text at the end of a string (disambiguation).
      | {{tl|title disambig text}} | Returns text in parenthesis at the end of a string (disambiguation).
      }}
    | {{Aligned table
      |col1style=width:12.5em;text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
      | {{tl|WikiProjectbasename}} | Removes "WikiProject" from a pagename.
      | {{tl|remove unranked}}    | Removes the string "unranked_" from the left of a string (taxonomy).
      | {{tl|ship prefix}}        | Returns the length of a ship's name prefix, if listed (ship names).
      | {{tl|title year}}          | Returns the 4-digit year from a pagename, if any.
  }} }}
}}


<!----------- Insertion, replacement, length -------------->
Флаги записываются через вертикальную черту, например <code>nl|s|u</code>, их может быть не больше четырёх. Список флагов:
| abbr2 = IRL
* <code>nl</code> (<code>nolink</code>): подавить ссылку.
| sect2 = Insertion, replacement and length
* <code>s</code> и <code>п</code>: вывести ключевое слово [[ВП:Подстановка шаблонов|«subst:» и «подст:»]] соответственно перед именем шаблона.
| content2 =
* <code>g</code> (от ''global''): ссылаться по умолчанию на основное [[ЭАНМ:Пространства имён|пространство имён]] вместо пространства шаблонов. Этот флаг включается автоматически, если первым символом в названии шаблона или страницы является двоеточие, например '':Страница'' или '':Участник:Некий участник/подстраница'' (вики-движок интерпретирует начальное двоеточие в названии страницы в фигурных скобках как ссылку на корневое пространство; так, {{tc|:Страница}} включит содержимое соответствующей страницы ЭАНМ в текущую страницу).
{{Aligned table |style=margin:0 auto 0;text-align:left;
* <code>nav</code>: при использовании шаблона в рамках блока навигации. Благодаря этому флагу, когда вы находитесь на той странице, на которую должна вести ссылка, название шаблона выделяется жирным, что удобно для восприятия блоков навигации. Например, так сделано в навигационном шаблоне {{t|Языковые шаблоны}}. Работает только при указанном первом параметре. Доступен шаблон-обёртка {{t|tnav}}.
  |  <!---(Insertion, replacement)--->
* <code>noredir</code>: если ссылка ведёт на перенаправление, не перенаправлять (параметр URL ''?redirect=no''; используется, например, в {{t|днш}}).
    {{Aligned table |style=padding-right:2.5em;
* <code>u</code>: вывести имя шаблона с заглавной буквы. Работает только при опущенном первом параметре.
    |col1style=text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
* <code>b</code> (от ''black''): не использовать серый цвет текста для фигурных скобок (чтобы названия шаблонов смотрелись опрятно в коде).
    | {{tl|strloc insert}} | Inserts a string at character location strloc, or appends if strloc<{{=}}0.
    | {{tl|loop}}         | Repeat character string a specified number of times.
    | {{tl|repeat}}       | Repeat a string a specified number of times.
    | {{tl|replace}}      | Returns the string, after replacing ''all'' occurrences of a specified string with another string.
    | {{tl|str rep}}      | Returns the string, after replacing the first occurrence of a specified string with another string.
    | {{tl|str len}}       | Returns a string's length.
    }}
  |  <!---(Length)--->
    {{Aligned table
    |col1style=text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
    | {{tl|iflenge}}      | [if len]gth [g]reater than or [e]qual to.
    | {{tl|str ≥ len}}    | To check if a string is "longer or equally long" or "shorter" than a given length.
    | {{tl|str ≤ len}}    | To check if a string is "shorter or equally long" or "longer" than a given length.
    | {{tl|str ≠ len}}    | To check if a string is "not equal" or "equal" to a given length.
    | {{tl|str ≤ ≥ len}}  | To check if a string is "shorter", "equal", or "longer" than a given length.
}} }}


<!----------------- Analysis, technical ------------------->
Список кодов родственных проектов, записываемых в параметре {{para|sister}}, см. на странице [[ЭАНМ:Интервики]].
| abbr3 = anlys/tech
| sect3 = Analysis and technical
| content3 =
{{Aligned table |style=margin:0 auto 0;text-align:left;
  |  <!---(Analysis)--->
    {{Aligned table |style=padding-right:2.5em;
    |col1style=text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
    | {{tl|str endswith}}  | To check if a string ends with a given string.
    | {{tl|str find}}<br/>{{tl|strfind short}} |style2.2=vertical-align:middle;|''Returns the numerical location of a given string in a string.''
    | {{tl|str find0}}    | Zero-based substring search.
    | {{tl|str sub find}}  | Searches a substring in a string at the given offset.
    | {{tl|str letter}}    | Returns the number of letters that begin a string.
    | {{tl|str number}}    | Returns the number of numbers that begin a string.
    | {{tl|str gtr str}}   | Compares two strings for alphabetical order, and returns a value accordingly.
    }}
  |  <!---(Analysis cont'd)--->
    {{Aligned table
    |col1style=text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
    | {{tl|ASCII code}}    | Returns the ASCII value of a single character.
    | {{tl|a or an}}      | Takes a noun and produces the appropriate indefinite article, based on whether the first letter is a vowel.
    | &nbsp; | &nbsp;
    <!---(Technical)--->
    | [[Module:String]]    |
    | [[mw:Help:Magic words|...Magic words]] | {{noitalic|About <code><nowiki>{{padleft:&#124;}}</nowiki></code>.}}
    | [[mw:Help:Extension:ParserFunctions|...ParserFunctions]] | {{noitalic|About <code><nowiki>{{#titleparts:&#124;}}, {{#expr:&#124;}}, {{#ifeq:&#124;}}, </nowiki></code> etc.}}
}} }}


<!--------------------- (disabled) ------------------------>
Для ссылок на шаблоны в английском разделе доступен шаблон-обёртка {{t|ent}}.
<!----
| group12 = Feature requests
| list12 =
* [[bugzilla:6455]] – Set $wgPFEnableStringFunctions = true on WMF wikis
* [[bugzilla:26092]] – Enable or install string parsing wikimarkup functionality on WMF wikis


<!----Not in a navbox:
== Примеры ==
| group13 = [[Wikipedia:Template sandbox and test cases|Sandboxes, testcases]]
'''Базовые'''
| list13 =
* {{tc|t}} {{t}} &nbsp;(выводит название той страницы, на которой вы находитесь)
* {{tl|Str find/sandbox}}
* {{tc|t|t}} {{t|t}}
* {{tl|Str index/getchar/sandbox}}
* {{tc|t|шаблон}} {{t|шаблон}}
* {{tl|Str index/getchar/testcases}}
* {{tc|t|:Страница}} {{t|:Страница}}
* {{tl|Str index/sandbox}}
* {{tl|Str index/testcases}}
* {{tl|Str index any/sandbox}}
* {{tl|Str index any/testcases}}
* {{tl|Str left/sandbox}}
* {{tl|Str len/core/sandbox}}
* {{tl|Str len/sandbox}}
* {{tl|Str len/testcases}}
* {{tl|Str rightc/testcases}}
* {{tl|Str ≠ len/sandbox}}
* {{tl|Str ≠ len/testcases}}
----->


<!----------------------- below --------------------------->
<small>(Внешний вид этих примеров [наличие ссылки] будет отличаться на основной странице шаблона и на странице документации, [[Шаблон:T/doc]].)</small>
| belowclass = hlist
| below =
* [[:Category:String manipulation templates]]
* [[m:Category:String templates]]
* [[:commons:Category:String manipulation templates]]


| tracking = no <!--(keep all these string templates (by /doc pages) out of the tracking category)-->
{{^}}
'''Флаги'''
* {{tc|t|шаблон|nolink}} → {{t|шаблон|nolink}}
* {{tc|t|шаблон|п}} → {{t|шаблон|п}}
* {{tc|t|Участник:Jack who built the house/t|g}} → {{t|Участник:Jack who built the house/t|g}}
* {{tc|t|шаблон|noredir}} → {{t|шаблон|noredir}}
* {{tc|t||u}} → {{t||u}}
* {{tc|t|шаблон|b}} → {{t|шаблон|b}}


}}<noinclude>{{Doc}}</noinclude>
{{^}}
Флаг <code>nav</code> / шаблон {{t|tnav}}:
<pre>{{tnav|t}}{{·}}{{tnav|tp}}{{·}}{{tnav|tc}}{{·}}{{tnav|tlc}}</pre>
{{sp↓}}
{{tnav|t}}{{·}}{{tnav|tp}}{{·}}{{tnav|tc}}{{·}}{{tnav|tlc}}
 
{{^}}
Сразу несколько:
* {{tc|t||nl|s|u|b}} → {{t||nl|s|u|b}}
* {{tc|t|Участник:Jack who built the house/t|п|g|b}} → {{t|Участник:Jack who built the house/t|п|g|b}}
 
{{^}}
'''Остальные параметры'''
* {{tc|t|lang|<nowiki>text=lang-''xx''</nowiki>}} → {{t|lang|text=lang-''xx''}}
* {{пример|t|Удалялось|comment{{=}}Статья удалялась, но была восстановлена или была оставлена страница обсуждения удалённой статьи}}
* {{tc|t|template|<nowiki>lang=en|sister=q</nowiki>}} → {{t|template|lang=en|sister=q}}
 
{{^}}
'''Суперкомбо'''
 
Представим, что нам понадобилось сослаться на шаблон в китайском викисловаре, используемый с подстановкой, который некий участник хранит в своём личном пространстве, а текст ссылки заменить на свой:
* {{tc|t|User:Shizhao/Template:ru-sy名阴|g|s|<nowiki>lang=zh|sister=wikt|text=ru-sy名阴</nowiki>}} → {{t|User:Shizhao/Template:ru-sy名阴|g|s|lang=zh|sister=wikt|text=ru-sy名阴}}
<small>Он, кстати, реально существует.</small>
 
=== В оформлении документаций ===
Чтобы документация к шаблону выглядела опрятно и составлять её было легко, можно писать так (на страницах [[Шаблон:Lang]], [[Шаблон:Lang-en]] и т. д.):
<pre style="color: #009900;">Шаблон '''{{t}}''' входит в систему языковых шаблонов, используемых для оформления иноязычных фрагментов внутри русского текста статей (и наоборот). Большинство языковых шаблонов построены на базе шаблонов {{t|lang}} и {{t|langi}} ({{t|langi}} отличается от {{t|lang}} тем, что текст в нём отображается ''[[курсив]]ом'').</pre>
что даст:
: Шаблон '''{{t|lang|nl}}''' входит в систему языковых шаблонов, используемых для оформления иноязычных фрагментов внутри русского текста статей (и наоборот). Большинство языковых шаблонов построены на базе шаблонов {{t|lang|nl}} и {{t|langi}} ({{t|langi}} отличается от {{t|lang|nl}} тем, что текст в нём отображается ''[[курсив]]ом'').
 
— а не так:
<pre style="color: #CC0000;">Шаблон {{tl|{{lc: {{BASEPAGENAME}} }}}} входит в систему языковых шаблонов, используемых для оформления иноязычных фрагментов внутри русского текста статей (и наоборот). Большинство языковых шаблонов построены на базе шаблонов {{tl|lang}} и {{tl|langi}} ({{tl|langi}} отличается от {{tl|lang}} тем, что текст в нём отображается ''[[курсив]]ом'').</pre>
что даст:
 
: Шаблон <span style="color:#9098A0" class="wp-templatelink">&#123;{'''lang'''}}</span> входит в систему языковых шаблонов, используемых для оформления иноязычных фрагментов внутри русского текста статей (и наоборот). Большинство языковых шаблонов построены на базе шаблонов <span style="color:#9098A0" class="wp-templatelink">&#123;{'''lang'''}}</span> и {{tl|langi}} ({{tl|langi}} отличается от <span style="color:#9098A0" class="wp-templatelink">&#123;{'''lang'''}}</span> тем, что текст в нём отображается ''[[курсив]]ом'').
 
* N.B. для шаблонов заготовки для копирования лучше оформлять в plain-text через pre и code или хотя бы приводить их дополнительно, т.к. новые редакторы (визуальный и вики-текста) будут стараться копировать оформление вставляя вики-ссылки и nowiki и рядовому пользователю неизвестна "вставка как обычный текст".
 
== Детали ==
* Если шаблон используется без первого параметра, а в названии страницы есть слэш, то, что идёт после него, опускается.
* Шаблон понимает идентичность адресов ''Участник:Некий участник'' и ''Участник:Некий'''_'''участник'' и использует особые приёмы, чтобы обходить баги{{sp/}}особенности вики-движка, связанные с использованием символов «*», «:», «;» и т. п. на первом месте в названиях шаблонов или тексте ссылок. Не смутит его и замена символов их [[мнемоники в HTML|HTML-кодами]], типа <code>&amp;#47;</code> для «&#47;».
* Если вы хотите поменять что-то в этом шаблоне, воспользуйтесь тестами на странице [[Шаблон:T/тесты]] для проверки его работоспособности после внесения изменений.
 
== Можно сделать ==
* При ссылках на страницы в пространстве «Участник» и других (см. маску <code>Шаблон\:(Media|Служебная|Special|…<code> на [[MediaWiki:Titleblacklist]]) также можно автоматически включать флаг <code>g</code>, после чего нужда в ручном его указании останется только для других разделов.
* Шаблон сейчас не работает с опущенным первым параметром вне пространства «Шаблон» (но не факт, что за его пределами нужны документации).
* Переписать на Lua; модуль бы более эффективно работал с флагами.
 
== См. также ==
* {{t|tp}} — почти то же самое с параметрами
* {{t|tc}} — символическая запись в тегах {{tago|code}} и с параметрами (для создания примеров на страницах документации)
* {{t|tlc}} — то же, что предыдущий, плюс ссылка
* {{t|flt}} — короткий вариант для ссылок на шаблоны в других языковых разделах
* {{t|ent}} — для ссылок на шаблоны в английском разделе
 
<includeonly>
[[Категория:Шаблоны/модули, нуждающиеся в усовершенствовании]]
[[Категория:Шаблоны:Ссылки на шаблоны]]
[[Категория:Шаблоны:Для документирования шаблонов]]
</includeonly>
Cookie-файлы помогают нам предоставлять наши услуги. Используя наши сервисы, вы соглашаетесь с использованием cookie-файлов.

Навигация