用に構築された handlebars-helpers のヘルパーgrunt-assemble
は、この特定のケースで実行したいことの一部を処理しません。
私たちは dev ブランチの公開に取り組んでおり、これらのいくつかはハンドルバーのサブエクスプレッションで簡単に使用できるようになります。
今のところ、ソートを行う独自のヘルパーを作成することをお勧めしますfirst
。
ヘルパーsort.js
ファイルを作成します。
var get = require('get-value');
module.exports = function sort(array, field, options) {
var arr = cloneArray(array);
if (typeof options === 'undefined') {
options = field;
field = null;
arr = arr.sort();
} else {
arr = arr.sort(sortBy(field));
}
if (options.hash && options.hash.dir === 'desc') {
arr = arr.reverse();
}
return arr;
};
function cloneArray(arr) {
var len = arr.length, i = 0;
var results = new Array(len);
while(i++ < len) {
results[i] = arr[i++];
}
return results;
}
function sortBy(prop) {
return function(a, b) {
var aVal = get(a, prop);
var bVal = get(b, prop);
if (aVal > bVal) {
return 1;
} else {
if (aVal < bVal) {
return -1;
}
}
return 0;
}
}
ヘルパーを assemble で登録し、テンプレートで使用します。
{{#each pageElements}}
{{#is pageElement "news"}}
{{#withFirst (sort pages "data.posted" dir="desc")}}
<a href="/{{relativeLink}}">
{{formatDate data.posted "%d.%m.%Y"}}: {{data.title}}
</a>
{{/withFirst}}
{{/is}}
{{/each}}
これで必要なものが得られるはずです。それが役に立てば幸い。