2017-07-18 6 views
0

私はそれが配置された時間を示すテンプレートを作ろうとしています。 #invokeを使わずにテンプレートをトランスコードするときだけ、魔法の言葉に置き換えることはできますか?

This is a template ({{<includeonly>subst:</includeonly>CURRENTTIMESTAMP}}) 

が、トランスクルードする場合には、代わりにタイムスタンプを代入する This is a template ({{subst:CURRENTTIMESTAMP}})として現れるでしょう:私はこれを試してみました。私は試しました

This is a template ({{{{{|safesubst:}}}CURRENTTIMESTAMP}}) 

しかし、それはそれを置き換えませんでした。タイムスタンプは更新し続けるでしょう。次に、私は試しました

This is a template ({{<includeonly>{{{|safesubst:}}}</includeonly>CURRENTTIMESTAMP}}) 

しかし、ダイスはありません。

{{#invoke:}}でも可能ですが、そのオプションはありません。誰かが私を助けてくれますか?

+0

テンプレートを継承しているページが編集されたとき、そのテンプレートはどのように知っていますか?あなたはテンプレートを置き換えることができ、最初の例がうまくいきます。それ以外の場合は、タイムスタンプの保存場所はどこですか? – Tgr

+0

@Tgr私が取り組んでいるwikiは置換についてあまり知らないので、テンプレートはテンプレートが最初に置かれたとき(transluded _or_ substitution)の時間を節約することです。 –

+0

まあ、あなたは単純な転落でそれをすることはできません。 – Tgr

答えて

0

テンプレートの保存方法を検討してください。再帰的にテンプレートを置換すると、テンプレートの内容はインクルードページのwikitextに格納され、CURRENTTIMESTAMPが実際のタイムスタンプに置き換えられます。テンプレートを置換しないと、wikitextには{{MyTemplate}}しか含まれず、編集のタイムスタンプはどこにも保存されません。パーサーが記事をレンダリングしてCURRENTTIMESTAMPに出会うと、現在のタイムスタンプだけが使用されます。その周りに道はない、#invokeかどうか。

タイムスタンプをパラメータにすることは、含まれるページで{{MyTemplate|{{subst:CURRENTTIMESTAMP}}}}と書いて、タイムスタンプがページに格納されるようにすることです。その正確な内容のラッパーテンプレートを作成することができます。ユーザーは{{subst:MyTemplateWrapper}}と入力するだけです。少し簡単です。 that's a bit more involvedが、テンプレートにエラーを表示するか、サブテンプレートなしでエラーカテゴリを追加することさえできます。

+0

ありがとう!私は、あなたが言及した2番目のメソッド( '{{subst:TemplateWrapper}}')に行き、トランスコードされていればエラーメッセージを追加すると思います。これは私の質問に答えたので、私はそれを受け入れられるとマークします:) –

+0

実際には、{{{{{{safesubst:}}} CURRENTTIMESTAMP}} 'がうまく働いていることが分かりました。 –

関連する問題