19

Gerçekten django/jinja2 şablonlama dillerini seviyorum. Onların sözdizimi son derece basit ve henüz çok yönlü. Javascript'teki hem sözdiziminde hem de yetenekte buna benzer bir şey var mı, yoksa her ikisi de değilse, en azından kabiliyette.Jinja benzeri JS şablon dili

Alt çizgilere, jquery şablonlarına ve bıyık şablonlarına baktım ve bunların hiçbiri aradığım şey değildi.

Ek notlar

tüm kütüphanelerini (Ben baktım) bıyık en iyisidir ama sözdizimi hazzetmiyorum dışarı düşünüyorum. Örneğin bu bıyık şablonu

{{#people}} 
    {{name}} 
{{/people}} 
{{^people}} 
    No people :(
{{/people}} 

Django'nın şablonlara göre: Ayrıca

{% for person in people %} 
    {{ person.name }} 
{% empty %} 
    No people :(
{% endfor %}` 

filtreleri uygulamak için aynı şey. Örneğin:

{{#filter}}{{value}}{{/filter}} 

{{ value|filter }} 

vs Django/jinja2 yaklaşımı daha temiz ve sadece daha doğal hissediyor.

Django/jinja'ya çok benzeyen şablonlar içeren herhangi bir js kitaplığı var mı? Değilse, sanırım ben muschache ile yaşamak zorundayım (ya da belki de başka bir iyi js kütüphanesi - ben haksızlıklara açığım), ama sadece doğru hissetmiyor.

Teşekkür ederiz.

+0

Bıyıkta hangi özellikler eksik? – pradeek

+0

Ek notlara bakın – miki725

+2

[Jinja] için bir JavaScript bağlantı noktası var (https://github.com/ericclemmons/jinja.js) ama henüz şahsen denemedim. – pradeek

cevap

2

bir javascript şablon kütüphanesi Django şablon dili ile uyumlu olmayı amaçlayan

Plate

5

JavaScript'im Jinja uygulaması burada bulunabilir: https://github.com/sstur/jinja

Destekler Jinja ve Sıvı sözdizimi hem JavaScript içermeyen bağımlılık için şablonları derleyip tarayıcıda ve Düğüm çalışır ve yaklaşık 3K

http://sstur.com/jinja/demo/

Testler dahil

gzip'lenmiş olduğunu. Devam eden Express.js destek ..

3

Swig node.js ve tarayıcı için müthiş bir Django/Jinja benzeri şablon motorudur.

{% filter %}{{value}}{% endfilter %} 
{% filter 'value' %} 
{{ value | filter }} 

Yan not: Sen Django en request.is_ajax() şartlı bir un-render Django şablonu geri göndermek için kullanabilirsiniz ve kullanabilirsiniz Swig için Şablon sözdizimi çeşitli ulaşmak için özel etiketler ekleyebilir

<h1>{{ pagename|title }}</h1> 
<ul> 
{% for author in authors %} 
    <li{% if loop.first %} class="first"{% endif %}>{{ author }}</li> 
{% endfor %} 
</ul> 

bir JSON nesnesi ile render.

+1

Özellikle de Express uyumluluğundan dolayı bunu yapıyorum! – DandyDev

12

Jinja2'den esinlenerek tasarlanmış bir JS şablon motoru olan Nunjucks'a bakın. Blok kalıtımını, makroları, filtreleri ve çok daha fazlasını destekler ve hem sunucu (NodeJS) hem de istemci tarafı (çoğu tarayıcı) çalışır.

+4

Partiye geç kaldığım kadarıyla, Nunjucks burada github'da faaliyeti bulunan tek projedir. Mozilla tarafından çalıştırılan, muhtemelen yakın zamanda uzaklara gitmeyecek ... –

+0

Nunjucks artık korunmuyor – felipecrp

+0

@felipecrp Nunjucks hala devam ediyor. Komiteleri, PRs, aktivite bol https://github.com/mozilla/nunjucks – KayakinKoder