在Jekyll中显示文件名并突出显示Pygments代码

在Jekyll中显示文件名并突出显示Pygments代码,jekyll,pygments,Jekyll,Pygments,在已知位置突出显示标准文件时,我希望将文件名放在代码块中;最好在上面。一个假设的例子是 {% highlight apache show_filename=/etc/httpd/conf/httpd.conf %} .... the file contents .... {% endhighlight %} 这将呈现一个带有前缀文件名的代码块。有办法做到这一点吗?你可以简单地使用漂亮的html5数字标签 HTML元素表示自包含的内容,通常带有标题(figcaption),通常作为单个单元引用。

在已知位置突出显示标准文件时,我希望将文件名放在代码块中;最好在上面。一个假设的例子是

{% highlight apache show_filename=/etc/httpd/conf/httpd.conf %}
.... the file contents ....
{% endhighlight %}

这将呈现一个带有前缀文件名的代码块。有办法做到这一点吗?

你可以简单地使用漂亮的html5数字标签

HTML元素表示自包含的内容,通常带有标题(figcaption),通常作为单个单元引用。虽然它与主流相关,但其位置独立于主流。通常这是一个图像、插图、图表、代码片段或架构,在正文中引用,但可以移动到另一页或附录而不影响主流。”


文件:folderName/fileName.rb
{%highlight ruby%}
def print_hi(名称)
放“嗨,#{name}”
结束
{%endhighlight%}

另一个更好的解决方案,将与克拉姆敦配合使用:

>Some/test/xml/file.xml
{:.filename}
{% highlight xml %}
.... the file content ....
{% endhighlight %}
在您的.css文件中,您可以使用您的代码片段使其看起来很漂亮,例如:

.fileName{
  padding: 0px;
  margin: 0px;
  background-color: #292929;
  color: lightgrey;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
  margin-bottom: 0px;
  padding-left: 1em;
  font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
  border-left: 0px;    
}

你可以找到更多关于kramdown功能的信息。

不,这不是pygments提供的功能的一部分。你可以简单地在代码块的正上方添加一个块,并将其突出显示为纯文本。我想这可以通过插件来完成。不过,我对Ruby的了解还不够,无法编写一个。这个潜在的jekyll功能,也就是文件名的名称
caption
。-然而,就我所见,没有现成的特性可以添加。(不在Pydgments,不在rouge,不在kramdown的相关提及…)
.fileName{
  padding: 0px;
  margin: 0px;
  background-color: #292929;
  color: lightgrey;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
  margin-bottom: 0px;
  padding-left: 1em;
  font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
  border-left: 0px;    
}