2017-10-04 40 views
0

我正尝试在我的gh页面博客上创建一些代码块,但我遇到了一些问题。问题使用GFM在Jekyll中创建围栅代码块

这是在我的_config.yml

#Stuff I have added 
highlight: rouge 
markdown: kramdown 

kramdown: 
    input: GFM 
    highlighter: rouge 

现在我试图如下运行这段代码,

~~~ 
Is this really how code should be represented? 

Answer = NO!!! 
~~~ 

但这

enter image description here

请帮帮忙,我只想要好的围栏代码结构谢谢!

+2

什么是理想的输出创造围栏代码块?你没有指定任何语言,并没有代码,所以我没有看到任何问题的方式工作 – marcanuy

+0

我希望代码有一个很好的围栏结构,但(如图所示)我目前的设置就好像它在行代码中看起来很糟糕。 –

+0

“好围栏结​​构”是什么意思? '栅栏'是_source_中的'〜'字符(或者某些变体中的字符),与原来的使用缩进代码的Markdown规范不同(它有时可能有点难以用于复制/粘贴等) )。 – matt

回答

0

它没有显示源代码的围栏,因为没有源代码

如果不指定任何东西,然后它会使用:

<div class="highlighter-rouge"><pre class="highlight"><code> 
Is this really how code should be represented? 

Answer = NO!!! 
</code></pre> 
</div> 

你总是要定制使用像highlighter-rouge生成的类的输出选项。

在另一方面,如果你指定语言:

~~~ html 
<html> 
<body> 
<p>Is this really how code should be represented?</p> 
<div>Answer = NO!!!</div> 
</body> 
</html> 
~~~ 

那么它会产生更多的spific造型:

<div class="language-html highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;html&gt;</span> 
<span class="nt">&lt;body&gt;</span> 
<span class="nt">&lt;p&gt;</span>Is this really how code should be represented?<span class="nt">&lt;/p&gt;</span> 
<span class="nt">&lt;div&gt;</span>Answer = NO!!!<span class="nt">&lt;/div&gt;</span> 
<span class="nt">&lt;/body&gt;</span> 
<span class="nt">&lt;/html&gt;</span> 
</code></pre> 
</div> 

如果您仍然无法看到任何默认的语法高亮,那么包含这些类的css就会丢失,典型的Jekyll自带_syntax-highlighting.scss,它已经包含了它们,但是你可以使用你想要的配色方案,例如默认的主题使用这个:https://github.com/jekyll/minima/blob/master/_sass/minima/_syntax-highlighting.scss

或者你可以安装任何你想要的高棉主题:https://github.com/jneen/rouge/tree/master/lib/rouge/themes

$ rougify foo.rb 
$ rougify style monokai.sublime > syntax.css 
0

尝试用三重反引号```代替了三重波浪线~~~

 
``` 
Is this really how code should be represented in GFM? 

Answer = YEP!!! 
``` 
+0

不,我已经尝试过使用'''和~~~以及没有GFM的redcarpet和kramdown。所有的结果都给我提供了与我的代码一样的总体逐行栅栏。 –

+0

如果@marcanuy的更新答案不能解决您的问题,您需要发布一个公共链接到您的回购站,以便人们可以尝试重现这种情况。否则,这只会​​最终成为一个XY问题 – ashmaroli