0

mediawiki テンプレートを作成しようとしています:

|-
| {{{name}}}{{#if:{{{ref|}}}|<ref>{{{ref}}}</ref>|}}{{#if:{{{ndb|}}}|<ref>https://ndb.nal.usda.gov/ndb/foods/show/{{{ndb}}}</ref>|}} || {{{size|--}}} || {{{carbs|--}}} || {{{sugar|--}}} || {{{fiber|--}}} || {{{fat|--}}} || {{{protein|--}}}

refほとんどは正常に動作しますが、またはndbパラメーターを渡すと、#if正しく動作しません

<ref>{{{ref}}}</ref>

また

<ref>https://ndb.nal.usda.gov/ndb/foods/show/{{{ndb}}}</ref>

私が期待するものが得られません:

<ref>http://the.passed.value/</ref>

また

<ref>https://ndb.nal.usda.gov/ndb/foods/show/passed_value</ref>

4

1 に答える 1

1

#if問題の原因ではないようです。その理由は、<ref>期待どおりの順序で処理されていないためです。#tag後のテンプレート処理段階で、パーサーまたは拡張タグを生成する必要があります。

Template:Googleソースコード:

<includeonly><!--
-->{{#if: {{{ref|}}}
   | {{#tag: ref |{{{ref}}}}}
   }}<!--
-->{{#if: {{{q|}}}
   | {{#tag: ref |[https://google.com/search?q={{#urlencode:{{{q}}}}} Google: {{{q}}}]}}
   }}<!--
--></includeonly>

ページのソース コード:

{{Google
| ref = http://google.com/search?q=foo+bar
| q = foo bar
}}

<references/>

ページ出力:

[1][2]

  1. http://google.com/search?q=foo+bar
  2. グーグル:フーバー
于 2016-05-29T07:40:48.447 に答える