Перейти к содержанию
Главное меню
Главное меню
переместить в боковую панель
скрыть
Навигация
Заглавная страница
Указатели
Свежие правки
Случайная страница
Справка по MediaWiki
Народные Сказки
Поиск
Найти
Создать учётную запись
Войти
Персональные инструменты
Создать учётную запись
Войти
Страницы для неавторизованных редакторов
узнать больше
Вклад
Обсуждение
Редактирование:
Модуль:Transclude/doc
Модуль
Обсуждение
русский
Читать
Править код
История
Инструменты
Инструменты
переместить в боковую панель
скрыть
Действия
Читать
Править код
История
Общие
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
{{Docpage}} {{TOC right}} {{СИШ}} {{Рейтинг модуля|p}} Этот модуль содержит функции, позволяющие вызывать внутренний шаблон из объемлющего шаблона после некоторой обработки параметров. Под объемлющим шаблоном имеется в виду шаблон, в котором написано <code><nowiki>{{#invoke:Transclude|...</nowiki></code>, например, {{T|Пиктограммы СГС}}. В вызове модуля указывается название функции и внутренний шаблон, вроде {{T|Пиктограммы СГС/основа}}, который собственно и обрабатывает аргументы, полученные от объемлющего шаблона. {{Clear}} {| class="wikitable" ! Функция ! Код объемлющего шаблона ! style="min-width:20em;" | Код его вызова ! style="min-width:20em;" | Результат |- | [[#call|call]] | <code><nowiki>{{#invoke:Transclude|call|внутренний шаблон}}<br>дополнение</nowiki></code> | <code><nowiki>{{объемлющий шаблон|1|2|3}}</nowiki></code> | <code><nowiki>{{внутренний шаблон|1|2|3}}<br>дополнение</nowiki></code> |- | [[#forall|forall]] | <code><nowiki>{{#invoke:Transclude|forall|внутренний шаблон}}</nowiki></code> | <code><nowiki>{{объемлющий шаблон|1|2|3}}</nowiki></code> | <code><nowiki>{{внутренний шаблон|1}}</nowiki><br><nowiki>{{внутренний шаблон|2}}</nowiki><br><nowiki>{{внутренний шаблон|3}}</nowiki></code> |- | [[#join|join]] | <code><nowiki>{{#invoke:Transclude|join|<nowiki>, </now</nowiki><nowiki>iki>|<nowiki> и </now</nowiki><nowiki>iki>}}</nowiki></code> | <code><nowiki>{{объемлющий шаблон|1|2|3}}</nowiki></code> | <code><nowiki>1, 2 и 3</nowiki></code> |- | [[#npc|npc]] | <code><nowiki>{{#invoke:Transclude|npc|внутренний шаблон|вверху=|внизу=}}</nowiki></code> | <pre><nowiki>{{объемлющий шаблон |вверху1 = 11 |внизу1 = 12 |вверху2 = 21 |внизу2 = 22 }}</nowiki></pre> | <pre><nowiki>{{внутренний шаблон |вверху = 11 |внизу = 12 }}{{внутренний шаблон |вверху = 21 |внизу = 22 }}</nowiki></pre> |- | [[#cycle|cycle]] | TODO | TODO | TODO |} == Методы == === call === : <code><nowiki>{{#invoke:Transclude|call|</nowiki>''внутренний шаблон''<nowiki>}}</nowiki></code> Вызывает внутренний шаблон с аргументами объемлющего шаблона (того, в коде которого указан #invoke). Нужно для того, чтобы дописать к выводу внутреннего шаблона что-то новое. Передаются как нумерованные, так и именованные аргументы. Например, объемлющий шаблон с кодом : <code><nowiki>{{#invoke:Transclude|call|внутренний шаблон}}<br>дополнение</nowiki></code>, вызванный таким образом: : <code><nowiki>{{объемлющий шаблон|1|2|3}}</nowiki></code>, вернёт : <code><nowiki>{{внутренний шаблон|1|2|3}}<br>дополнение</nowiki></code>. Пример использования: [[Шаблон:TRef]]. === forall === : <code><nowiki>{{#invoke:Transclude|forall|</nowiki>''внутренний шаблон''<nowiki>}}</nowiki></code> : <code><nowiki>{{#invoke:Transclude|forall|</nowiki>''внутренний шаблон''<nowiki>|</nowiki>separator=''разделитель''<nowiki>|</nowiki>conjunction=''последний разделитель''<nowiki>}}</nowiki></code> Вызывает внутренний шаблон, по одному передавая ему нумерованные параметры объемлющего шаблона (того, в коде которого указан #invoke). Параметры могут быть набраны в произвольном порядке и с пропусками, они будут отсортированы. Пустые параметры не пробрасываются. Например, объемлющий шаблон с кодом : <code><nowiki>{{#invoke:Transclude|forall|внутренний шаблон}}</nowiki></code>, вызванный таким образом: : <code><nowiki>{{объемлющий шаблон|1|2|3}}</nowiki></code>, вернёт : <code><nowiki>{{внутренний шаблон|1}}{{внутренний шаблон|2}}{{внутренний шаблон|3}}</nowiki></code>. Можно передать разделитель и последний разделитель через параметры ''separator'' и ''conjunction'', по умолчанию они пусты. Если указан только ''separator'', то ''conjunction'' заполняется из него. Например, объемлющий шаблон с кодом : <code><nowiki>{{#invoke:Transclude|forall|внутренний шаблон|separator=<nowiki>, </now</nowiki><nowiki>iki>|conjunction=<nowiki> и </now</nowiki><nowiki>iki>}}</nowiki></code>, вызванный таким образом: : <code><nowiki>{{объемлющий шаблон|1|2|3}}</nowiki></code>, вернёт : <code><nowiki>{{внутренний шаблон|1}}, {{внутренний шаблон|2}} и {{внутренний шаблон|3}}</nowiki></code>, а объемлющий шаблон с кодом : <code><nowiki>{{#invoke:Transclude|forall|внутренний шаблон|separator=<nowiki>, </now</nowiki><nowiki>iki>}}</nowiki></code>, вызванный таким образом: : <code><nowiki>{{объемлющий шаблон|1|2|3}}</nowiki></code>, вернёт : <code><nowiki>{{внутренний шаблон|1}}, {{внутренний шаблон|2}}, {{внутренний шаблон|3}}</nowiki></code>. Если требуется, чтобы разделитель содержал пробел в начале или в конце, нужно заключить его в <code><now<nowiki>iki></now</nowiki>iki></code>. Примеры использования: * Простой: [[Шаблон:Пиктограммы СГС]] вызывает [[Шаблон:Пиктограммы СГС/основа]], см. [[Шаблон:Пиктограммы СГС/тесты]]. * Более продвинутый: [[Шаблон:Falseredirect]] вызывает [[Шаблон:Falseredirect/основа]], см. [[Шаблон:Falseredirect/тесты]]. === join === : <code><nowiki>{{#invoke:Transclude|join|</nowiki>''разделитель''|''последний разделитель''<nowiki>}}</nowiki></code> Берёт нумерованные аргументы объемлющего шаблона (того, в коде которого указан #invoke) и склеивает их в единую строку. Пустые аргументы пропускаются. Используются разделитель и последний разделитель, указанные первым и вторым параметрами в вызове модуля. Если указан только первый параметр, второй заполняется из него. Например, объемлющий шаблон с кодом : <code><nowiki>{{#invoke:Transclude|join|<nowiki>, </now</nowiki><nowiki>iki>|<nowiki> и </now</nowiki><nowiki>iki>}}</nowiki></code>, вызванный таким образом: : <code><nowiki>{{объемлющий шаблон|1|2|3}}</nowiki></code>, вернёт : <code><nowiki>1, 2 и 3</nowiki></code>, а объемлющий шаблон с кодом : <code><nowiki>{{#invoke:Transclude|join|<nowiki>, </now</nowiki><nowiki>iki>}}</nowiki></code>, вызванный таким образом: : <code><nowiki>{{объемлющий шаблон|1|2|3}}</nowiki></code>, вернёт : <code><nowiki>1, 2, 3</nowiki></code>. Если требуется, чтобы разделитель содержал пробел в начале или в конце, нужно заключить его в <code><now<nowiki>iki></now</nowiki>iki></code>. Фактически аналогичен использованию [[#forall]] с внутренним шаблоном с кодом <code><nowiki>1</nowiki></code> и другим способом указания разделителей. Пример использования: [[Шаблон:Luaman]] и [[Шаблон:Luaman/тесты]] (TODO: заменить на более внятный пример). См. также: [[Модуль:Separated entries]]. === npc === : <code><nowiki>{{#invoke:Transclude|npc|</nowiki>''внутренний шаблон''<nowiki>|</nowiki>''параметр''=<nowiki>|</nowiki>''другой параметр''=<nowiki>|…}}</nowiki></code> : <code><nowiki>{{#invoke:Transclude|npc|</nowiki>''внутренний шаблон''<nowiki>|</nowiki>''общий параметр''=''значение''<nowiki>|</nowiki>''другой общий параметр''=''значение''<nowiki>|…|</nowiki>''параметр''=<nowiki>|</nowiki>''другой параметр''=<nowiki>|…}}</nowiki></code> Вызывает внутренний шаблон несколько раз, передавая в него блоки аргументов объемлющего шаблона (того, в коде которого указан #invoke). Параметр ''название12'' передаётся как ''название'' в 12-й вызов шаблона. Для этого нужно указать в вызове модуля {{Para|''название''|}}. Например, объемлющий шаблон с кодом : <code><nowiki>{{#invoke:Transclude|npc|внутренний шаблон|вверху=|внизу=}}</nowiki></code>, вызванный таким образом: <pre><nowiki>{{объемлющий шаблон |вверху1 = 11 |внизу1 = 12 |вверху2 = 21 |внизу2 = 22 |вверху3 = 31 |внизу3 = 32 }}</nowiki></pre> возращает <pre><nowiki>{{внутренний шаблон |вверху = 11 |внизу = 12 }}{{внутренний шаблон |вверху = 21 |внизу = 22 }}{{внутренний шаблон |вверху = 31 |внизу = 32 }}</nowiki></pre> Можно также указать в вызове модуля общие аргументы, который будут передаваться в каждый вызов внутреннего шаблона. Например, объемлющий шаблон с кодом : <code><nowiki>{{#invoke:Transclude|npc|внутренний шаблон|общий={{{общий|}}}|вверху=|внизу=}}</nowiki></code>, вызванный таким образом: <pre><nowiki>{{объемлющий шаблон |общий = 0 |вверху1 = 11 |внизу1 = 12 |вверху2 = 21 |внизу2 = 22 |вверху3 = 31 |внизу3 = 32 }}</nowiki></pre> возращает <pre><nowiki>{{внутренний шаблон |общий = 0 |вверху = 11 |внизу = 12 }}{{внутренний шаблон |общий = 0 |вверху = 21 |внизу = 22 }}{{внутренний шаблон |общий = 0 |вверху = 31 |внизу = 32 }}</nowiki></pre> Обратите внимание, что необходимо ставить вертикальную черту сразу после значения общего параметра, потому что вызовы модулей, в отличие от вызовов шаблонов, не обрезают пробелы: : <code><nowiki>{{#invoke:Transclude|npc|внутренний шаблон|общий={{{общий|}}}|вверху=|внизу=}}</nowiki></code> или <pre><nowiki>{{#invoke:Transclude|npc|внутренний шаблон| общий={{{общий|}}}| вверху=| внизу=}}</nowiki></pre> но не <pre><nowiki>{{#invoke:Transclude|npc|внутренний шаблон |общий={{{общий|}}} |вверху= |внизу=}}</nowiki></pre> Замечания: * Общие параметры также учитываются вместе с остальными при выборе того, что передавать во внутренний шаблон: если в объемлющем шаблоне указан параметр ''общий12'', он передастся в 12-й вызов внутреннего шаблона под названием ''общий'' и может заменить общий параметр. * Происходят вызовы внутреннего шаблона не для всех нумерованных блоков параметров, а только для непустых, так что могут быть пропуски. А именно, вызывается блок 12, если в объемлющем шаблоне есть параметр ''параметр12'' и в вызове модуля есть параметр ''параметр''. Рекомендуется, чтобы внутренний шаблон при вызове без параметров возвращал пустую строку. Пример использования: [[Шаблон:Карточка]] вызывает [[Шаблон:Карточка/внизу]]. === cycle === : <code><nowiki>{{#invoke:Transclude|cycle|</nowiki>''имя шаблона''|{{Mvar|n}}|''список параметров''…<nowiki>}}</nowiki></code> {{Заготовка раздела}} Действует аналогично [[#forall]] по числовой переменной, изменяющейся от 1 до {{Mvar|n}}. Другое начало можно задать в виде «-10..10» вместо {{Mvar|n}}, или в обратном порядке «10..-10». Также можно задать предел цикла в виде имени шаблона (если второго параметра нет или он имеет вид «1..», шаблон раскрывается, пока не пуст). Не увлекайтесь! Замечание: номера нумерованных параметров шаблона при записи увеличить на 1. Параметром <code>output</code> можно задать как выводить шаблоны. * ''newline'' — каждый шаблон на новой строке. * ''inline'' — все шаблоны в одну строку (по-умолчанию). == Тесты шаблона == См. [[Модуль:Transclude/tests]] и [[Шаблон:Test transclude]]. == См. также == * [[Модуль:String/split]] * [[Модуль:CallMW]] <includeonly>[[Категория:РуСказки:Модули]]</includeonly>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «Народные Сказки» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
РуСказки:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Отобразить/Скрыть ограниченную ширину содержимого