WikiDer > Справка: Метатемпликация - Википедия

Help:Metatemplating - Wikipedia

В контексте Википедии метатематическое покрытие предполагает использование шаблоны в качестве основы для создания других шаблонов. Немного метатаблицы работают как любой другой шаблон, и включен. Другие генерируют разметка вики на лету; это макро метатаблицы, и заменен. Метатемпликация позволяет создавать стандартные шаблоны, при этом многие шаблоны могут использовать общий набор компонентов и форматов.

Макро-метатемплиты несут обычные недостатки замены, но они также используют преимущества двух сильных сторон: подстановка в конечном итоге более эффективна и позволяет динамически генерировать разметку вики. Это делает его подходящим для более сложных систем, чем те, которые созданы с включением.

Замена

Есть два префикса подстановки: subst: и safesubst:. Разница появляется, когда шаблон включается вместо замены; в таком случае, subst: шаблоны будут печатать текст как есть, без оценки, в то время как safesubst: шаблоны будут включены.

Замена будет переоценена при включении результирующего шаблона, в отличие от включения. Это делает его полезным для создания макросов.

Пузыри

Замена пузыри:

  • Если шаблон A включает шаблон B, а шаблон B содержит safesubst: включает, safesubst: будет использовать включение. subst: не стал бы оценивать.
  • Если шаблон A заменяет шаблон B, а шаблон B содержит safesubst: включает, safesubst: будет использовать замену. subst: тоже заменил бы.

Пузырьковая подстановка продолжается через цепочку замен до тех пор, пока не будет достигнуто включение, после чего используются только включения.

Шаблоны маркировки, предназначенные для замены

Шаблоны, предназначенные исключительно для замены, должны иметь {{только замена}} в верхней части их страниц документации.

Чтобы другие пользователи могли научиться использовать замещенные шаблоны, метатемплиты верхнего уровня, которые будут появляться в обычных шаблонах (а не в других метатемплитах), должны отмечать свое присутствие комментарием. Этот комментарий обычно идет в конце шаблона и просто содержит ссылку на замененный шаблон:

...<!------ Substituted from [[Template:Example]].---->  ...

Отсроченная оценка

Процесс создания текста во время первой замены, который будет оцениваться в будущих включениях / заменах, является отложенная оценка. Шаблоны используются для формирования цепочки замен и включений. Отложенная оценка обычно требует, чтобы все, кроме последнего включенного в цепочку, были заменены.

Отложенная оценка может быть достигнута с помощью шаблона путем печати текста, который будет оцениваться как разметка вики другим шаблоном. Например, <и> печатаются как есть, когда они по отдельности, но вместе их можно использовать для формирования тегов. Если шаблон хотел сформировать тег при замене, он мог использовать форму {{{| <}}} пример / {{{|>}}}. Угловые скобки заключены в отдельные блоки разметки вики, поэтому они не соединяются. Поскольку "пустое" имя параметра всегда не определено, угловые скобки всегда будут печататься как резервные значения, а результирующий текст будет <example/>.

HTML-объекты

(X) HTML-объекты, такие как &#124; (|) не будут переведены во время замены, поэтому они никогда не будут оцениваться. Они полезны только для предотвращения оценки текста вообще.

Неопределенные значения параметров по умолчанию

Параметры могут иметь значения по умолчанию, когда они не определены: {{{имя-параметра | значение по умолчанию}}}

Есть один параметр, который всегда используется по умолчанию: безымянный параметр. Если имя параметра опущено, всегда будет печататься значение по умолчанию: {{{| всегда-печатает}}}

Неопределенные значения параметров по умолчанию полезны для экранирования текста, который в противном случае оценивался бы. Например, чтобы разбить тег, который должен печататься как текст:

{{{| <}}} пример / {{{|>}}}

После первой замены:

<example/>

Дальнейшие включения будут оценивать тег.

Параметры обрабатываются перед заменой, поэтому их также можно использовать для условной замены. Например, заменять только тогда, когда нет субстанции параметр не определен:

{{{{{nosubst | subst:}}} пример}}

Теги

Фигурные скобки ограничивают угловые скобки, чтобы предотвратить формирование тега, поэтому самый простой способ избежать тегов - использовать неопределенные значения параметров по умолчанию. Это не требует дополнительных затрат на вызов шаблона. Пример:

{{{| <}}} пример / {{{|>}}}

После первой замены:

<example/>

Теги можно экранировать так же, как подтяжки. В качестве альтернативы {{меньше, чем}} шаблон можно использовать, но он менее эффективен. Получение того же результата, что и в предыдущем примере:

<includeonly><</includeonly>example/<includeonly>></includeonly>{{lessthan}}example/>

Обычно это необходимо только для включать только, не включать, и Nowiki теги. В таком случае предпочтительнее использовать {{включать только}}, {{не включать}}, и {{Nowiki}} шаблоны соответственно:

{{includeonly | {{example}}}}

После первой замены:

<includeonly>{{example}}</includeonly>

Дальнейшие включения и замены:

Это пример шаблона.
Для получения справки по шаблонам см. Справка: шаблон.

Брекеты

Фигурные скобки, если они разделены включать только теги, будут печататься как есть. Обратите внимание, что эти три тега (includeonly, noinclude и nowiki) не могут быть вложены внутри себя, поэтому этот трюк можно использовать только в коде верхнего уровня. Nowiki Теги не будут работать, поскольку они не будут удалены в процессе замены. Возможны несколько комбинаций:

 {{ пример }}  {{ пример }} {{ пример }}

После первой замены каждая производит:

{{пример}}

Дальнейшие включения и замены:

Это пример шаблона.
Для получения справки по шаблонам см. Справка: шаблон.

Менее эффективный метод - использовать метатаблицы с фигурными скобками. В отличие от включать только разделение тегов, метатемплиты будут работать внутри другого блока разметки вики, например, в аргументе другого шаблона. Существуют универсальные метатаблицы, в которых вместо фигурных скобок используются круглые скобки. Это даст результат, идентичный результату в предыдущем примере:

{{((}}пример{{))}}

Другие метатемплейты для создания подобных комбинаций:

  • {{(}} производит {
  • {{)}} производит }
  • {{((}} производит {{
  • {{))}} производит }}
  • {{(((}} производит {{{
  • {{)))}} производит }}}

Смотрите также Категория: Шаблоны пространств имен шаблонов.

Шаблон {{подтяжки}} может производить, например, следующее:

{{подтяжки| Templatename | item1 | item2 | ... | item8}}    {{Имя Шаблона|item1|item2|...|item8}}
{{подтяжки| code = on | Templatename | item1 | item2 | ... | item8}}    {{Имя Шаблона|item1|item2|...|item8}}

Подробнее см. Шаблон: Подтяжки.

Другие символы разметки вики

Эти символы и последовательности часто необходимо экранировать при написании шаблона, но их следует оценивать в будущих шаблонах. Также см § Подтяжки над. Разрывы строк показаны п.

  • {{!}} производит |
  • {{!!}} производит ||
  • {{!(}} производит [
  • {{!)}} производит ]
  • {{!((}} производит [[
  • {{!))}} производит ]]
  • {{=}} производит =
  • {{!-}} производит |-
  • {{-!-}} производит & nbsp; п п|-
  • {{s-start}} производит начало центрированного стола; увидеть исходный код s-start для подробностей.
  • {{конец}} производит |}
  • {{меньше, чем}} производит <

Смотрите также