2016-04-12 23 views
3

Bir dersin öğelerini yönetmek için bir Jekyll koleksiyonu kullanıyorum. elemanları üzerindeÖzel eklentileri kullanmadan Jekyll'de sayıları biçimlendirme

--- 
duration: 5 
--- 

ben döngü her bir eleman için bir başlangıç ​​zamanı anlamaya: Her öğe onun YAML ön konuda bir süreye sahip

{% assign current = 0 %} 
<table> 
{% for element in site.elements %} 
    <tr> 
    <td>{{ forloop.index }}</td> 
    <td>{{ element.title }}</td> 
    <td>{{ current | divided_by: 60 }}:{{ current | modulo: 60 }}</td> 
    </tr> 
    {% assign current = current | plus: element.duration %} 
{% endfor %} 
</table> 

Bu hak çıkışını verir ama kötü biçimde olduğundan : özellikle, bazı zamanlar böyle gösterilir:

9:5 

yerine:

09:05 

"Zamanlar" dakikalar değil, tarihler olduğu için, istediğim çıktıyı almak için tarih biçimlendirmesini kullanmanın bir yolunu düşünemiyorum. Jekyll'de belirtilen sayıda ondalık basamak ve baştaki sıfır ile sayıları biçimlendirmenin bir yolu var mı?

cevap

2

Sen koşullu biçimlendirme kullanabilirsiniz:

{% assign h = timeInMinutes | divided_by: 60 %} 
{% if h <= 10 %}{% assign h = h | prepend: '0' %}{% endif %} 
{% assign m = timeInMinutes | modulo: 60 %} 
{% if m <= 10 %}{% assign m = m | prepend: '0' %}{% endif %} 
{{ h }}:{{ m }} 

Veya bir dize hile:

{{ timeInMinutes | divided_by: 60 | plus: 100 | slice: 1, 2 }} 
: 
{{ timeInMinutes | modulo: 60 | plus: 100 | slice: 1, 2 }} 
+0

Teşekkür - Fortran ilk günlerinde beni geri götürür ama vay. –