2012-11-25 39 views
7

Tôi có một trang web Jekyll với filestructure như vậy:Làm cách nào để bao gồm tệp HTML bên trong tệp đánh dấu trong jekyll?

▾ _includes/ 
    post-entry.html 
▾ _posts/ 
    2012-11-25-first-post.markdown 
index.markdown 

Trong index.markdown của tôi, tôi muốn bao gồm một post-entry.html như thế này:

{% for post in site.posts %} 
* {% include post-entry.html %} 
{% endfor %} 

Nhưng điều này dường như là một đoạn mã HTML trong blog. Làm thế nào tôi có thể ngăn chặn HTML được bảo vệ ?

Trả lời

12

Bạn có thể sử dụng thẻ chất lỏng trong bất kỳ tệp đánh dấu nào miễn là tệp có tiêu đề YAML. Ví dụ: hãy xem index.md được cung cấp trong số jekyllbootstrap template for Jekyll sites.

Nếu bạn liên kết đến chỉ mục thực tế của bạn.markdown hoặc chính kho lưu trữ của bạn (ví dụ: nếu nó trên github), chúng tôi có thể có ý tưởng tốt hơn về những gì đã xảy ra. Ví dụ của bạn sẽ hoạt động, mặc dù bạn có thể cần sử dụng phần tử danh sách HTML <li> thay vì đánh dấu *.

+0

Trong tập tin, tôi đã thực sự đặt mã như tôi đề cập ở trên, nhưng tôi đã làm như bây giờ. PS: Không thấy lịch sử, nó thực sự là lịch sử của một kho lưu trữ khác. Phải làm một 'rebase' hay cái gì đó. – SiddharthaRT

+0

Tuyệt vời, vì vậy có vẻ như mọi thứ đang hoạt động với mã chất lỏng trong tệp 'index.markdown' như bạn dự định, phải không? – cboettig

+0

Không. Bây giờ tôi đang thực hiện phương pháp được đề cập ở cuối liên kết của bạn: [như thế này] (git: //gist.github.com/4174354.git). Khi tôi bao gồm nó như '{% include post.html%}', tôi nhận được kết quả như [so] (http://imgur.com/FOoDo). – SiddharthaRT

-7

Bạn không thể. Tệp đánh dấu chỉ là các tệp văn bản có kiểu dáng. Nếu bạn muốn sử dụng thẻ Chất lỏng, bạn sẽ phải làm như vậy trong _layouts

Nếu tôi đoán bạn muốn tệp đánh dấu này trên trang chỉ mục của bạn? Vì vậy, trong bố cục default.html sau thẻ {{content}}, bạn có thể sử dụng các thẻ chất lỏng bạn muốn sử dụng. Không cần phải trộn các tệp đánh dấu bằng mã.

+0

tôi đã thư giãn trên beanbag của tôi và nhìn chằm chằm lên trần nhà khi nó đánh tôi. Cảm ơn. – SiddharthaRT

+7

Tôi xin lỗi, nhưng câu trả lời này chỉ đơn giản là sai. Bạn thực sự có thể sử dụng chất lỏng trong một tập tin index.markdown, như tôi chỉ ra trong câu trả lời của tôi. – cboettig

0

Sử dụng {{ post.content }} để thay thế.

Dưới đây là đoạn code tôi sử dụng trên trang web của tôi như là một ví dụ:

{% for post in site.posts %} 
    <a href="{{ post.url }}"> 
     <h2>{{ post.title }} &mdash; {{ post.date | date_to_string }}</h2> 
    </a> 
    {{ post.content }} 
{% endfor %} 
3

Vấn đề là phân tích cú pháp xem HTML như các khối mã. Cách tốt nhất là nên tắt khối mã như tôi asked in this question

Để làm việc xung quanh sử dụng thẻ thay thế:

{% capture includeGuts %} 
{% include post-entry.html %} 
{% endcapture %} 
{{ includeGuts | replace: ' ', ''}} 
Các vấn đề liên quan