0

私は現在 Template Toolkit を使用していますが、TT の前に学習したり使用したりしたことはありません。

たとえば、2011 年 dd/mm/2011 の 5 つのファイルと dd/mm/2012 の 5 つのファイルの 10 個のファイルがあります。年を一度だけ表示する必要があります。foreach ループを使用してみましたが、2011 を 5 回、2012 を 5 回表示する代わりに、1 回だけ表示したいのです。

私が達成する必要があるのは、年を取得し、それを使用して、その年にそれらのドキュメントを表示するためのリンクを作成することです。

皆さんが理解してくれることを願っています。親切な魂が私を助けてください。=×

4

1 に答える 1

2

TT では、他のプログラミング言語で使用するのと同様のアプローチを使用します。見た最後の年をメモし、現在のものと異なる場合にのみ印刷します。

で実行できる簡単な例を次に示しますtpage

$ cat years.tt 
[%- dates = [ '01/11/2012', '01/12/2012', '01/01/2013', '01/02/2013'];
    lastyear = '';
    FOREACH date IN dates;
        bits = date.split('/');
        IF bits.2 != lastyear;
            bits.2 _ "\n";
        END;
        bits.0 _ '/' _ bits.1 _ "\n";
        lastyear = bits.2;
    END -%]
$ tpage years.tt
2012
01/11
01/12
2013
01/01
01/02

しかし、より賢明なデータ構造を TT に渡すことを考えたいと思うことはほぼ間違いありません。

于 2013-03-07T10:59:37.827 に答える