Làm thế nào để thoát khỏi thẻ mẫu lỏng?


90

Điều này nghe có vẻ rất dễ dàng, tuy nhiên tôi không thể tìm thấy nó ở bất kỳ đâu trong tài liệu. Làm thế nào tôi có thể viết {% this %}trong một mẫu lỏng mà không cần xử lý bởi engine?


Bạn luôn có thể bình luận.
1934286

Câu trả lời:


121

Đối với những người tìm kiếm tương lai, có một cách để thoát khỏi mà không cần plug-in, sử dụng mã bên dưới:

{{ "{% this " }}%}

và đối với thẻ, để thoát khỏi {{ this }}việc sử dụng:

{{ "{{ this " }}}}

Ngoài ra còn có một plugin jekyll cho việc này giúp việc này trở nên dễ dàng hơn rất nhiều: https://gist.github.com/1020852

Thẻ thô cho jekyll. Ngăn không cho phân tích cú pháp văn bản betweeen {% raw%} và {% endraw%}

Tài liệu tham khảo


1
Tuyệt vời, cảm ơn đã tham khảo. Vì một số lý do mà tôi không thể tìm thấy thứ này trong tài liệu chất lỏng.
Attila O.

8
Bạn không còn cần một plugin để sử dụng nữa {% raw %}, đối với tôi, nó hoạt động hiệu quả và bây giờ nó đã có trong tài liệu
fregante 27/02

có thể thoát mã bằng `` `thay vì {% trong jekyll không?
Jas

3
Cặp đôi lời đề nghị đầu tiên đã không làm việc cho tôi, nhưng sử dụng rawđã làm: {% raw %}{{ this }}{% endraw %}.
Yevgeniy Brikman

nó làm việc, nhờ ... nhìn thấy một ví dụ thực tế đây g14n.info/2014/08/moving-from-blogger-to-github-pages/#comments
Gianluca Casati

120

có thể tắt công cụ xử lý chất lỏng bằng cách sử dụng rawthẻ:

{% raw  %}
{% this %}
{% endraw %}

sẽ hiển thị

{% this %}

Tôi tin rằng đây từng là một trình cắm thêm . Nó có đi vào động cơ cốt lõi trong khi chờ đợi không?
Attila O.

5
Có vẻ như rawthẻ đã được thêm vào một năm trước trong công cụ cốt lõi. Xem github.com/Shopify/liquid/commits/master/lib/liquid/tags/raw.rb
Etienne

2
Tuy nhiên, lối thoát này không được Github hỗ trợ.
leiming

2
@LeiMing vẻ như nó bây giờ (có lẽ kể từ tháng 5 năm 2013 )
atomicules

2
Đã xác nhận, nó hoạt động trên Trang GitHub. Các rawthẻ được giới thiệu vào năm lỏng 2.3.0 và GitHub Trang hiện đang sử dụng phiên bản 2.5.5 .
Enrico Campidoglio

13

BTW:

Nếu bạn muốn hiển thị {{ "{% this " }}%}trong Jekyll, bạn có thể viết mã như sau:

{{ "{{ " }}"{{ "{% this" }} " }}{{ "}}%}

Để thoát khỏi {{ "{{ this " }}}}việc sử dụng:

{{ "{{ " }}"{{ "{{ this" }} " }}{{ "}}}}

27
Ha, ha hahahah ah aaaaahhh.
RobW

13

Bạn có thể thoát khỏi thẻ lỏng trong các bài đăng của Jekyll bằng cách sử dụng {% raw%} {% endraw%} tức là

{% raw %}
  {% for post in site.posts %}
     {{ post.content }}
  {% endfor %}

{% endraw %}

sẽ sản xuất

  {% for post in site.posts %}
     {{ post.content }}
  {% endfor %}

10

Có một tùy chọn khác: sử dụng mã ký tự đặc biệt HTML để thay thế dấu ngoặc nhọn bằng mã phù hợp của nó:

  • thay thế từng { bằng & # 123;
  • thay mỗi } bằng & # 125;

Để biết thêm chi tiết về giải pháp này, hãy xem: http://www.tikalk.com/devops/curly_brances_workaround/


4

Tôi đã tìm thấy một cách toàn năng để hiển thị bất kỳ văn bản nào có dấu ngoặc nhọn. Bạn có thể gán văn bản thuần túy cho một biến và hiển thị nó.

{% assign var = "{{ sth }}" %}
{{ var }}

Cảm ơn bạn! Hữu ích để thoát khỏi dấu ngoặc kép hoặc đơn
JumpLink

1

Như đã đề cập ở đây , đơn giản {% raw %}{% endraw %}chỉ là giải pháp tốt thứ hai vì chúng được hiển thị nếu bạn tìm kiếm Markdown trên github.com bình thường.

Cách tốt nhất là đặt {% raw %}{% endraw %}nhận xét HTML:

<!-- {% raw %} -->
something with curlky brackets like { this } and { that }
<!-- {% endraw %} -->

Do các bình luận HTML, nó được Github xem như một bình luận. Trong các trang Github, các thẻ thô sẽ ngăn việc phân tích cú pháp của các dấu ngoặc nhọn ở giữa các thẻ.


Tôi thích phương pháp này, vì một số lý do, nó không gây rối với các đoạn trích của tôi.
Corstian Boerman

0

Tôi đã thử {% raw %}một cái gì đó {% endraw %},

{{ "{% this " }}%}. Nhưng cả hai đều không hoạt động.

cuối cùng, câu trả lời làm việc của tôi là {{ "{%" xxx }} something }}.

Mã của tôi:

{{ "{%" }} extends 'xadmin/base_site.html' %}
{{ "{%" }} block nav_form %}
    <h3>{{ "{{" }} title }}</h3>
    {{ "{%" }} for i in context1 %}
        <p>{{ "{{" }} i }}</p>
    {{ "{%" }} endfor %}
{{ "{%" }} endblock %}

Kết quả:

{% extends 'xadmin/base_site.html' %}
{% block nav_form %}
    <h3>{{ title }}</h3>
    {% for i in context1 %}
        <p>{{ i }}</p>
    {% endfor %}
{% endblock %}

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.