2015-01-25 17 views
8

Supponiamo di avere due collegamenti: "tutti i post" e "personale". Quando l'utente fa clic sul link "personale", dovrebbe vedere solo i post che hanno la categoria "personale". In questo momento, il tag del liquido è {% for post in site.posts %}. Voglio sapere se c'è un modo per accedere alla variabile site.posts da javascript, in modo che io possa ascoltare l'evento click e filtrare dinamicamente il post. Se no, cosa dovrei fare?Jekyll: etichetta liquida all'interno javascript

risposta

14

È possibile fare in modo che Jekyll analizzi qualsiasi file aggiungendo una parte anteriore vuota ad esso.

esempio: attività/js/script.js

Modifica 16/07/28: è possibile utilizzare jsonifyfilter per qualsiasi hash o array

--- 
--- 
{{ site.posts | jsonify }} 

Vecchio risposta

--- 
--- 
{% capture posts %} 
[ 
{% for post in site.posts %} 
{ 
"title" : "{{ post.title }}", 
"url"  : "{{ post.url }}", 
"date"  : "{{ post.date | date: "%B %d, %Y" }}", 
"content" : "{{ post.content | escape }}" 
} {% if forloop.last %}{% else %},{% endif %} 
{% endfor %} 
] 
{% endcapture %} 
var posts = {{posts | strip_newlines}} 

Inserirà la collezione di oggetti site.posts in un modulo json e li attribuirà a javascript posts var.

+0

mi dà l'errore "Uncaught SyntaxError: Unexpected token {" non appena includo i tag del liquido –

+0

True. Ho modificato la mia risposta. –

+0

L'aggiunta di argomenti frontali vuoti nella parte superiore del mio file js causa l'attivazione dell'avviso di 'Liquid Exception: SyntaxError: Unexpected token'. – user3411192