2016-11-23 6 views
0

TiddlyWikiテンプレートをいくつか組み立てていますが、これはいいと思うことがありますが、実際に可能かどうかはわかりません。TiddlyWikiのキャプションフィールド(またはタブマクロのタイトルのみ)を動的に変更します

私はtabsマクロを使用して別のティトラーに含めるチートラーをいくつか持っています。それぞれの仲間には2つのタグのうちの1つが関連付けられています。どのタグが関連付けられているかに基づいて、タブビューのcaptionにテキストのスニペットを追加したいと思います。

私は再計算するtabsマクロの呼び出しを変更すること、これは保存上のcaptionを編集するために、コールバックのいくつかの種類を追加することによって行われているかどうかについて強い優先、何とかその場で希望captionを算出し、何かを持っていませんレンダリング時にcaption、または何らかの理由でテンプレートにcaptionフィールドを計算させます。

私はドキュメンテーションを通して有望なことは何も発見していませんが、おそらく私の問題に関連するものを見つけていない可能性があります。私はそれがたくさん起こることがわかります。

私はタグが存在するかどうかに基づいて条件を書くことができますが、何らかの計算に基づいてcaptionフィールドにテキストを補間する方法はありません。ちょうどtiddlersのリストを引き出し、提供のテンプレートを使用して、タブにそれらをテンプレートtranscludeこと、

<<tabs [list[]] state:$:/state/tabPeriod template:PeriodTemplate>> 

<<tabs [list[$(currentTab)$]] state:$:/state/tabEvent class:"tc-vertical" template:"EventTemplate">> 

<<tabs [list[$(currentTab)$]] state:$:/state/tabScene template:"SceneTemplate">> 

これらの行のすべての異なるテンプレートから、次のとおりです。参考のため

は、ここに私の現在のマクロ呼び出します。 現在の場合、タブはテッドラーcaption(定義されている場合)でキャプションされ、titleに戻ります。理想的にはあまりにも多くの定型文を挿入しないで、字幕を変更したいと思います。

答えて

0

私は異なったやりかたが必要であることを理解しました:タブマクロに基づいてカスタムマクロを定義し、ロジックを追加しました。私は私が正しくリストウィジェットを使用しているかどうかわからないんだけど、それが動作

<$set name="tv-wikilinks" value="no"> 
<$transclude tiddler=<<currentTab>> field="caption"> 
<$macrocall $name="currentTab" $type="text/plain" $output="text/plain"/> 
</$transclude> 
<$list filter='[<currentTab>tag[light]]'> 
○ 
</$list> 
<$list filter='[<currentTab>tag[dark]]'> 
● 
</$list> 
</$set> 

:私は基本的にはちょうどにキャプションロジックの現在の内容を変更しました。

関連する問題