#arraymap не включает разделитель в выводе - PullRequest
0 голосов
/ 30 сентября 2011

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

<span style="display:none;">{{#arraymap: {{{programmers|}}}|,|x|</span><!--
-->{{!}} Programmer: {{!!}} x
{{!-}}<span style="display:none;">}}</span>

Есть ли способ скрыть разделитель и получить таблицу, или, может быть, есть отдельный способ сделать это вообще?

Если вы хотите полный упрощенный тестовый пример, у меня есть следующий ввод:

{{authors|programmers=Ryan Scheel, Ryan Dean}}

и я хочу следующий вывод:

{| class="wikitable"
|-
! colspan="2" style="text-align:center;" ! Authors
|-
| Programmer: || Ryan Scheel
|-
| Programmer: || Ryan Dean
|}

или в форме шаблона:

{{{!}} class="wikitable"
{{!-}}
! colspan="2" style="text-align:center;" ! Authors
{{!-}}
{{!}} Programmer: {{!!}} Ryan Scheel
{{!-}}
{{!}} Programmer: {{!!}} Ryan Dean
{{!}}}

1 Ответ

3 голосов
/ 07 октября 2011

Я решил вашу проблему, передав пустой 5-й аргумент функции [1] . Этот аргумент определяет, что заменить разделитель.

{{#arraymap: Ryan Scheel, Ryan Dean|,|x|<nowiki />
{{!-}}
{{!}} Programmer: {{!!}} x
|<!-- empty 5th parameter -->}}

расширенный результат будет следующим:

{|
<nowiki />
|-
| Programmer: || Ryan Scheel<nowiki />
|-
| Programmer: || Ryan Dean
|}

Я немного изменил ваш пример для собственного удобства во время моих тестов, не стесняйтесь подгонять его по своему вкусу. Я поставил |- (HTML

) перед | (HTML ), потому что это более логично.

Более важно, как вы, возможно, уже знаете, аргументы функций синтаксического анализатора обрезаны [2] . Проблема заключается в том, что разметка вики-таблиц ({|, |- и т. Д.) Должна находиться в начале строк источника, в противном случае она не интерпретируется [3] . Итак, чтобы вставить разрыв строки, в этом примере перед |- я использовал симпатичный трюк <nowiki />; -)

В качестве примечания, ваша строка ! colspan="2" (...) ! Authors содержит ошибку, ! перед "Авторами" должно быть вместо |.


[1] документация на http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Semantic_Forms_and_templates

[2] вопреки неназванным параметрам шаблонов!

[3] Насколько я знаю, единственным исключением является то, что вы можете поместить пробелы и комментарии HTML раньше.

...