Википедия, если заявление не работает

Это мой шаблон: тест

id1: {{{#if: {{{id1}}} | {{{id1}}} | text1}}} <br>
id2: {{{#if: {{{id2}}} | {{{id2}}} | text2}}} <br>
id3: {{{#if: {{{id3}}} | {{{id3}}} | text3}}} <br>
id4: {{{#if: {{{id4}}} | {{{id4}}} }}} <br>
<br>

Это код страницы TestPage с использованием этого шаблона:

{{Test
| id1 = 123
| id2 = 
}}

Вывод моей TestPage (что видит пользователь):

id1: 123
id2:
id3: {{{id3}}}
id4: {{{id4}}}

Я хочу, чтобы вывод был:

id1: 123
id2: text2
id3: text3
id4:

Что я делаю неправильно? Почему это не выводит то, что я хочу? Изменить: я использую MediaWiki версии MediaWiki-1.30.0.

1 ответ

Когда параметр не указан (как для id3 а также id4 Ваш пример включения, id2 пусто, но дано) {{{id3}}} оценивает к буквальному тексту {{{id3}}}, Это истинная ценность в #if состояние.

Вместо этого используйте {{{id3|}}}, который имеет значение по умолчанию для "когда не дано" после канала, здесь оно пустое - и рассматривается как ложное в #if состояние. Рассматривать

id1: {{{id1|text1}}}<br>
id2: {{{id2|text2}}}<br>
id3: {{{id3|text3}}}<br>
id4: {{{id4|}}}<br>

который для вашего включения приведет к выходу

id1: 123
id2:
id3: text3
id4: 

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

id1: {{#if: {{{id1|}}} | {{{id1}}} | text1}} <br>
id2: {{#if: {{{id2|}}} | {{{id2}}} | text2}} <br>
id3: {{#if: {{{id3|}}} | {{{id3}}} | text3}} <br>
id4: {{#if: {{{id4|}}} | {{{id4}}} }} <br>
Другие вопросы по тегам