X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fmkws-handlebars.js;h=605282f641b4e5ca05078ad5ecc6c99087f9c863;hb=33587b3b07b0e4b8a9ce09d340114ded913722d2;hp=916ddba9cd8be1fc33c17f321b3544f58203379a;hpb=655b6236d3b8c8f254557072908f0b2192cefa04;p=mkws-moved-to-github.git diff --git a/src/mkws-handlebars.js b/src/mkws-handlebars.js index 916ddba..605282f 100644 --- a/src/mkws-handlebars.js +++ b/src/mkws-handlebars.js @@ -1,13 +1,26 @@ // Handlebars helpers + Handlebars.registerHelper('mkws-json', function(obj) { return $.toJSON(obj); }); -Handlebars.registerHelper('mkws-paragraphs', function(obj) { +// This is intended to handle paragraphs from Wikipedia, hence the +// rather hacky code to remove numbered references. +// +Handlebars.registerHelper('mkws-paragraphs', function(obj, count) { var acc = []; - for (var i = 0; i < obj.length; i++) { - acc.push('

', obj[i], '

'); + + // For some reason, Handlebars provides the value + // {"hash":{},"data":{}} for parameters that are not provided. So we + // have to be prepared for actual numbers, explicitly undefined + // values and this dumb magic value. + if (count === undefined || count.hasOwnProperty('hash') || count == 0 || count > obj.length) { + count = obj.length; + } + + for (var i = 0; i < count; i++) { + acc.push('

', obj[i].replace(/\[[0-9,]+\]/g, ''), '

'); } return acc.join(''); });