While working on the next generation of ThePresidentsOftheUnitedStates.com, a site I'm working on with my 10yr old daughter, we needed to add a little bit of JavaScript in the template to add the ordinal suffix to a number (e.g., "3rd President").
It's easy enough to do by registering a Handlebars helper and calling it with "{{{nth number}}}". Here's the code in context:
<header> <h1>The Presidents Of The United States</h1> </header> <script> Handlebars.registerHelper('nth', function(n) { return new Handlebars.SafeString( ["st","nd","rd"][((n+90)%100-10)%10-1]||"th" ); }); </script> <script id="entry-template" type="text/x-handlebars-template"> {{#each presidents}} <div class="row" itemscope itemtype="http://schema.org/Person"> <div class="col-sm-4 centered" > <!-- left panel --> <h2 class="name" itemprop="name">{{fname}} {{mname}} {{lname}}</h2> <p class="ordinal">{{number}}{{{nth number}}} President of the United States</p>Special thanks to Tomas Langkaas from stackoverflow for the "nth" algorithm in JS.
No comments:
Post a Comment