【应用软件】Jekyll 配置

实现功能

  • TOC (目录)
  • 代码高亮
  • LaTeX 显示:支持 MathJax 和 KaTeX 两种方式
  • 序列图

Ubuntu 下安装

sudo apt-get install jekyll

Markdown 文章

存放在 _post 目录下,可分子目录存放

以下内容均以 kramdown 实现

TOC

Table of Contect

kramdown 默认支持 TOC 功能

在需要插入目录的地方加入如下内容

* toc
{:toc}

时间

文章日期需增加时区,否则可能导致无法显示

date: 2017-08-07 13:26:51 UTC+8

语法高亮

配置 _config.yml

highlighter: rouge
markdown: kramdown
kramdown:
  input: GFM

下载 pygments,附下载地址

HTML head 中添加

<!-- 语法高亮 -->
<link rel="stylesheet" href="{{ "/static/pygments/native.css" | prepend: site.baseurl }}">
<link rel="stylesheet" href="{{ "/static/custom/article_content.css" | prepend: site.baseurl }}">

article_content.css 中覆盖了部分样式

body {
    font-size:2rem;
}

/* 代码块 */
.highlight {
    padding:1rem 2rem 1rem 2rem;
    border:2rem solid transparent;
    border-radius:.8rem .8rem .8rem .8rem;
    box-shadow:0 0 15px rgba(0,0,0,.3);

    font-size:1.8rem;
    line-height:2.1rem;

    background:#272822;
    color:#f8f8f2;
}

/* 字符串背景色与代码块背景色一致 */
.highlight .s {
    background-color: #272822
}

LaTeX 支持

支持 LaTeX 数学公式显示,以 KaTex 方式为例,公式均以 $$ 括起来

  1. 公式放在段落内或紧挨着段落,则为行内公式
  2. 公式前后有空行,则为整行公式
行内公式 $$ E=mc^2 $$

行内公式
$$ \sum_{i=1}^n a_i=0 $$

整行公式

$$ f(x_1,x_x,\ldots,x_n) = x_1^2 + x_2^2 + \cdots + x_n^2 $$

$$
f(x) = \int_{-\infty}^\infty
\hat f(\xi)\,e^{2 \pi i \xi x}
\,d\xi
$$

简书中不支持,可查看我另外两篇博客预览

MathJax

在线方式

<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

本地方式

  1. 下载 MathJax.js
  2. HTML head 中添加如下内容
<script src="{{ "/static/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML" | prepend: site.baseurl }}"></script>

KaTeX

在线方式

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.css" integrity="sha384-wITovz90syo1dJWVh32uuETPVEtGigN07tkttEqPv+uR2SE/mbQcG7ATL28aI9H0" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.js" integrity="sha384-/y1Nn9+QQAipbNQWU65krzJralCnuOasHncUFXGkdwntGeSvQicrYkiUBwsgUqc1" crossorigin="anonymous"></script>

本地方式

  1. 下载 KaTeX
  2. HTML head 中添加如下内容
<link rel="stylesheet" href="{{ "/static/katex/katex.min.css" | prepend: site.baseurl }}">
<script src="{{ "/static/katex/katex.min.js" | prepend: site.baseurl }}"></script>

KaTeX 方式均需要在 </body> 前增加如下内容

<script>
  $("script[type='math/tex']").replaceWith(function() {
      var tex = $(this).text();
      return katex.renderToString(tex, {displayMode: false});
  });

  $("script[type='math/tex; mode=display']").replaceWith(function() {
      var tex = $(this).html();
      return katex.renderToString(tex.replace(/%.*/g, ''), {displayMode: true});
  });
</script>

序列图

js-sequence-diagrams

  1. 下载依赖:webfont.jssnap.svg-min.jsunderscore-min.js
  2. 下载 js-sequence-diagrams
  3. HTML head 中添加如下内容
<script src="{{ "/static/js-sequence-diagrams-deps/webfont.js" | prepend: site.baseurl }}"></script>
<script src="{{ "/static/js-sequence-diagrams-deps/snap.svg-min.js" | prepend: site.baseurl }}"></script>
<script src="{{ "/static/js-sequence-diagrams-deps/underscore-min.js" | prepend: site.baseurl }}"></script>

<link rel="stylesheet" href="{{ "/static/js-sequence-diagrams/dist/sequence-diagram-min.css" | prepend: site.baseurl }}">
<script src="{{ "/static/js-sequence-diagrams/dist/sequence-diagram-min.js" | prepend: site.baseurl }}"></script>

</body> 前增加

<script>
  $(".language-sequence").sequenceDiagram({theme: 'hand'});
</script>

或者

<script>
  var diagram = Diagram.parse("A->B: Message");
  diagram.drawSVG("language-sequence", {theme: 'hand'});
</script>

theme: 'hand' 表示草绘效果
theme: 'simple' 为标准效果

markdown 文件中使用 sequence 替代 python/shell 之类的代码块,其语法可访问官网

```sequence
Andrew->China: Says Hello
Note right of China: China thinks\nabout it
China-->Andrew: How are you?
Andrew->>China: I am good thanks!
```

简书中不支持,可查看我另外两篇博客预览

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容