我寫了這個插件:如何防止Kramdown被C++ include所迷惑?
module Jekyll
module Tags
class Prism < Liquid::Block
def initialize(tag_name, text, tokens)
@arg = text.strip
super
end
def render(context)
output = super(context)
"<pre><code class=\"language-#{@arg}\">#{output}</code></pre>"
end
end
end
end
Liquid::Template.register_tag('prism', Jekyll::Tags::Prism)
這是我如何使用它:
{% prism cpp %}
#include <iostream>
// Hello World
int main()
{
cout << "hello world" << endl;
int a = 10;
}
{% endprism %}
現在的問題是,我主要是在我的網站上使用C++代碼。當我現在使用Jekyll生成這個降價時,{% endprism %}
之後的所有文字仍然會在<pre>
標記內,因爲Kramdown被<iostream>
弄糊塗瞭如果我逃過它,(\<iostream\>
),那麼我的插件按預期工作,但我的Javascript熒光筆是變得困惑。
如何在不啓用Jekyll熒光筆的情況下解決這種情況?
因爲我想使用prism.js。當jekyll解析這個時,kramdown不會感到困惑?它是一樣的,只是一個不同的降價標籤...突出而不是棱鏡。另外,學習插件的東西。 – DeleteMe