2015-01-25 16 views
8

Giả sử tôi có hai liên kết: "tất cả bài đăng" và "cá nhân". Khi người dùng nhấp vào liên kết "cá nhân", anh ta chỉ nên xem các bài đăng có danh mục "cá nhân". Ngay bây giờ, thẻ chất lỏng là {% for post in site.posts %}. Tôi muốn tìm hiểu xem có cách nào để truy cập biến số site.posts từ javascript, để tôi có thể nghe sự kiện nhấp và tự động lọc bài đăng hay không. Nếu không, tôi nên làm gì?Jekyll: thẻ chất lỏng bên trong javascript

Trả lời

14

Bạn có thể làm cho Jekyll phân tích cú pháp bất kỳ tệp nào bằng cách thêm một mặt trước trống vào nó.

dụ: tài sản/js/script.js

Sửa 16/07/28: bạn có thể sử dụng jsonifyfilter cho bất kỳ băm hoặc mảng

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

Cũ câu trả lời

--- 
--- 
{% 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}} 

Thao tác này sẽ đặt bộ sưu tập đối tượng site.posts vào dạng json và gán chúng cho bạn javascript posts var.

+0

nó mang lại cho tôi lỗi "Cú pháp không mong muốn: Mã thông báo không mong muốn {" ngay sau khi tôi bao gồm thẻ chất lỏng –

+0

Đúng. Tôi đã chỉnh sửa câu trả lời của mình. –

+0

Thêm mặt trước trống vào đầu tệp js của tôi gây ra cảnh báo 'Ngoại lệ lỏng: Cú phápError: Mã thông báo không mong đợi' để kích hoạt. – user3411192

Các vấn đề liên quan