Jekyll 使用 Rouge 主题

摘要:
今天,我发现GithubPages中的代码没有突出显示。看了代码后,我发现不设置css样式的最初原因是我使用了rougehighlight:rougeRouge是用纯Ruby编写的代码高亮显示,可以用来高亮显示60多种语言。它的源代码托管在GitHub上。从主页文档中,我了解到可以根据不同的样式生成css文件˃rougifystyle(theme_name)˃(css_file.css)

今日发现我的 Github Pages 中的代码并没有高亮,看了一下代码发现,原来的没有设置 css 样式的原因,我使用的代码高亮器是 rouge

highlighter: rouge

Rouge 是一个纯 Ruby 编写的代码高亮器,可用于 60 多种语言的高亮,其源代码托管在 GitHub上,在其主页文档上了解到可以根据不同的样式生成 css 文件

> rougify style (theme_name) > (css_file.css)

其中:

  • (theme_name) 表示要使用的主题名称,详细的主题列表可以通过 rougify help style 获得
  • (css_file.css) 表示要导出的样式文件路径

之后再在模板页面上引用导出的 css 文件即可

<link rel="stylesheet" type="text/css" href="http://t.zoukankan.com/{{ site.url }}/stylesheets/(css_file.css)">

为不同的博客配置不同的样式文件

样式那么多,想要为不同的文章配置不同的样式肿么搞?
首先将所有的样式文件导出,这里小生用了一个小小的 shell 脚本:

for style in base16 base16.dark base16.monokai base16.monokai.light base16.solarized base16.solarized.dark colorful github gruvbox gruvbox.light molokai monokai monokai.sublime thankful_eyes
do 
    rougify style $style > syntax.$style.css
done

然后,为每一个文章的头信息中添加一个 syntax 属性,
用于表示应用于当前文章的样式

syntax: colorful

最后,在模板上添加上相应的链接,并提供一个默认的样式文件 syntax.css

{% if page.syntax %}
    <link rel="stylesheet" type="text/css" href="http://t.zoukankan.com/{{ site.url }}/stylesheets/syntax/syntax.{{ page.syntax }}.css">
{% else %}
    <link rel="stylesheet" type="text/css" href="http://t.zoukankan.com/{{ site.url }}/stylesheets/syntax.css">
{% endif %}

至此,便可以随意的使用 Rouge 的样式了~~~

TIPs:

小生在用 Markdown 写文章时,发现引用块 > 中并不能添加代码块,
如果添加,就会将引用块截断... ...
后来想到,引用快会被转换成 HTML 中的 blockquote 标签,
所以小生就选择了最为笨拙的方法,
硬编码进去 blockquote 标签不就阔以了,如下:


<blockquote>
this is test start
{% highlight shell %}
> this is code
{% endhighlight %}
this is test end
</blockquote>

免责声明:文章转载自《Jekyll 使用 Rouge 主题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇AStar 启发函数设计(老物)linux下常用文件传输命令 (转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Springboot2.2.9接入阿里云ES(带高亮查询)

最近比较忙,好久没更新博客了,今天抽个空记录一下使用springboot接入阿里云ES并带模糊高亮查询功能,闲话不多说,上干活。 引入POM依赖: <!-- ES config 接入阿里云ES --> <dependency> <groupId>org.elasti...

【CSS】电脑、移动端公用样式

电脑端: /* Public */ @charset "utf-8"; html, body, div, p, ul, ol, li, dl, dt, dd, h1, h2, h3, h4, h5, h6, form, input, select, button, textarea, iframe, table, th, td {margin: 0; p...

css 高度自适应

对象height:100%并不能直接产生效果,是因为跟其父对象有关。 #center{height:100%;} 上面的css样式是无效的,不会产生任何效果。 需要改写: html,body{ margin:0px; height:100%;}#center{200px;height:100%;background-color:#666666...

CSS DIV自动适应高度

当div需要设定自适应高度时,可用到的css属性,min-height:200px;代表的是当div的内容超出了200px时,就会自动适应高度,兼容所有浏览器(IE6除外),如果是IE6则需要设置"_height" 代码: div{ _height:200px; min-height:200px; }...

Vue中使用Sass全局变量

前言 假设我们原有项目的主题色是蓝色的,这时有个需求,需要把主题色改成橙色的。一般情况下,我们可能会在main.js中引入公共样式文件,但你会发现,在组件中使用公共样式文件中定义的某个参数时,会报一个错误:"变量未定义"。 那还有一种写法是,在每个组件中都引入公共样式(注:需要用到公共样式的组件),但这样写,感觉代码会很不perfect 。 那有没有什么办...

通过css选择器class给元素添加cursor的坑

笔者在chrome中遇到了奇特的问题,在通过class给元素添加cursor的自定义图片时。出现了"Invald property value"提示,crosshair、help等属性值可以生效。 图片却不行,自己研究后发现两个大坑。 一个是图片宽或者高需要有一边小于或等于32px。 另一个很重要就是不能用class选择器。 例如: <style t...