Jekyll의 마크 다운 코드 블록 내에서 이중 중괄호 이스케이프


89

저는 Jekyll을 사용하여 핸들 바와 같은 구문을 포함하는 일부 코드를 문서화하려는 문서 사이트를 만들고 있습니다. 예를 들면 {{foo}}. 문제는 Jekyll이 액체 태그를 사용하고 내가 무엇을하든 내 이중 컬리가 액체 프로세서에 의해 찢어지고 있다는 것입니다.

그건 그렇고, 나는 마크 다운 프로세서로 kramdown을 사용하고 있습니다.

다음은 내가 시도한 것입니다.

{% highlight html linenos %}
  Hello, my name is {{name}}.
{% endhighlight %}

이것은 유동 변수에 대한 참조라고 생각하기 때문에 {{name}} 섹션을 완전히 제거합니다.

나는 또한 이것을 시도했다 :

{% highlight html linenos %}
  Hello, my name is \{\{name\}\}.
{% endhighlight %}

이 경우 중괄호를 이스케이프하려고하지만 결과적으로 슬래시가 페이지에 렌더링됩니다.

나는 이것을 시도했다.

{% highlight html linenos %}
  Hello, my name is <span>{</span>{name}}.
{% endhighlight %}

분명히 이것은 꽤 멍청했습니다. 이 경우 구문을 html (필요한 경우)로 지정했기 때문에 span 태그가 페이지에 렌더링됩니다.

그렇다면이 문제를 어떻게 해결할 수 있을까요?

답변:


184

당신은 {% raw %}태그를 찾고 있습니다.

{% raw %}
Hello, my name is {{name}}.
{% endraw %}

6
아 하! 당신은 나의 새로운 가장 친한 친구입니다.
rescuecreative

고마워요, 이것이 제가 원하는 것입니다.
wukong 2014 년

고마워요 ...이게 날 미치게 만들었어요.
learningMachine

당신이 원하는 코드가 바로이 {% raw %} {{...}} {% endraw %}주제를 다루는 블로그 포스트에서 찾을 수 있는 코드라면 어떨까요 ?
starfry

3
@starfry : 재미 당신이 요청해야 ... blog.slaks.net/2013-06-10/jekyll-endraw-in-code
SLaks

33

를 사용 {% raw %}하여 Jekyll이 콘텐츠를 수정하지 않도록 할 수 있습니다 .

{% raw %}
This is inserted literally: {{foo}}
{% endraw %}

그러나 이것은 코드 블록아닙니다 . 콘텐츠를 코드로 렌더링하려면 추가 코드 형식이 필요합니다.

{% raw %}
    I'm a code block, because I'm indented by 4 spaces
{% endraw %}
{% raw %}
```handlebars
I'm a code block that contains {{handlebars}}
with highlighting.
```
{% endraw %}

추가해 주셔서 감사합니다. 나는 {% raw %}{{ foo }}{% endraw %}모든 사건에 대해 그런 것보다 조금 더 추한 일을하게되었으므로 여기서 당신이 한 일을 살펴볼 것입니다.
rescuecreative 2016-06-03

이것은 코드 블록과 구문을 유지할 수 있으므로보다 유연한 솔루션입니다.
Kiddo 2011

20

jekyll의 코드는 다음과 같습니다.

{% highlight html%}
{% raw %}
     <h2> {{ user.name.first | uppercase }}</h2>
     <p> {{ user.email }}</p>
{% endraw %}
{% endhighlight %}

이것이 정확한 해결책입니다. 감사!
Jerad Rutnam

주목할만한 가치 : 위의 작업은 Rouge 형광펜과 함께 사용됩니다. (3 개 역 따옴표 HTML ...```같은) 코드를 강조하기위한 울타리 구문을 사용하는 경우에는 원시 그러나하지 작업을 수행
프랭크 Nocke

5

향후 참조를 위해 : 일반 사용 {% raw %}및 것은 {% endraw %}정상적인 github.com에 마크 다운을 보면 표시됩니다 그 이후에만 두 번째 최적의 솔루션입니다.

가장 좋은 방법은 배치하는 것입니다 {% raw %}{% endraw %}HTML의 코멘트 :

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

HTML 주석으로 인해 Github에서 주석으로 표시됩니다. Github 페이지에서 원시 태그는 태그 사이의 중괄호 구문 분석을 방지합니다.


3

이것은 jekyll 에서 작동합니다 .

{%raw%}{{thing}}{%endraw%}

참고로, Jekyll 내의 코드 블록이 작동 함을 보여주기 위해 세 개의 역 따옴표를 포함했습니다. 그것은 :) 응답에서 코드 블록을 생성하도록 구성되지 않았습니다
리사 싱클레어를
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.