使用 Jekyll 博客架构时 Markdown 的语法专用 Kramdown 解析器

简介

kramdown 是一个用 Ruby 实现的 Markdown 的解析器。

Markdown 是一种轻量型标记语言, 其目的在于为以网页为载体的文章的排版提供一种较 HTML 来说更简便、更安全、可读性更强的书写方式。它并不是HTML 的替代品,使用 Markdown 的语法编写的文章最终都要通过其翻译器转换成 HTML 代码。Github Pages 采用 Kramdown 解析器,所以当前这个博客是推荐使用这个语法。

Kramdown 官网链接; 语法文档中文翻译

Markdown 语法文档; 中文说明文档PDF

kramdown 语法是基于 Markdown 语法建立并加入了一些其他 Markdown 扩展版本(例如,Maruku、PHP Markdown Extra 和 Pandoc)所具有的特性。不仅如此,它努力去提供一个包括明确规则的严格的语法,所以它不可能完全符合 Markdown 语法。尽管如此,大多数用 Markdown 编写的文档依然可以用 kramdown 很好地解析。

源文件文本格式

一个 kramdown 文本可以支持多种编码格式,比如 ASCII、UTF-8 和 ISO-8859-1,并且会将他们转化为和你源文件同样的编码格式。

Tab 的使用

krandown 定义 tab 是四个空格,当在在列表的行首空格使用 tab 的时候,这点非常重要。并且,tab 只可以在行首使用,不可以用来代替空格,否则结果不可预测。

atx 风格标题 {#header}

~~~
#         一级
##
###
####
#####
######    六级
~~~

指定标头ID({#head_id})

###### I can help you  {#head_1}
I can help you {#head_1}

引用

> 引用文本

引用文本

空行

`<br>` or 两个空格

Code

~~~
# Code
~~~
# Code

清单

* kram
+ down
- now

> 注意缩进
  • kram
  • down
  • now

表格

| Header One     | Header Two     |
| :------------- | :------------- |
| Item One       | Item Two       |
Header OneHeader Two
Item OneItem Two

分割线

***

HTML块

~~~html
script style math option textarea pre code kbd samp var
~~~
script style math option textarea pre code kbd samp var

链接和图像

# 自动链接(尖括号)
<me.example@example.com>

# 内联链接
[link](http://xxx.com)

# 图片
![img](http://xxx/1.img)

# 由于可以通过span和块IAL添加其他属性,因此可以指定图像宽度和高度
![smiley](http://xxx/1.img){:height="36px" width="36px"}

me.example@example.com

link

img
smiley

重点

*some text*
_some text_
**some text**
__some text__

some text some text some text some text

单行代码

`code`

code

脚注

人有悲欢离合,月有阴晴圆缺.[^1]

[^1]: 《水调歌头》

人有悲欢离合,月有阴晴圆缺.[1]

公式

页面支持公式功能开启,在头文件添加:

mathjax: true

公式代码:

$$
f(n) =
\begin{cases}
0 && (n=0)\\
1 && (n=1)\\
f(n-1)+f(n-2) && (n\ge2)\\
\end{cases}
$$

效果:

f(n)={0(n=0)1(n=1)f(n−1)+f(n−2)(n≥2)f(n) = \begin{cases} 0 && (n=0)\\ 1 && (n=1)\\ f(n-1)+f(n-2) && (n\ge2)\\ \end{cases}

LaTex的数学公式基本规则

$E = mc^2 $
$\boxed{E=mc^2}$
$\mathbf{E = mc^2}$
$\boldsymbol{E = mc^2}$

E=mc2E=mc^2E=mc2\boxed{E=mc^2}E=mc2\mathbf{E = mc^2}E=mc2\boldsymbol{E = mc^2}

$ H_{2}O $

H2OH_{2}O

$ X^2 $

X2X^2

$ 表示行内公式:

质能守恒方程可以用一个很简洁的方程式 $ E=mc^2 $ 来表达:$ E=mc^2 $ 。

$$ 表示整行公式:

$$ \sum_{i=1}^n a_i=0 $$
$$ \sum^{j-1}_{k=0}{\widehat{\gamma}_{kj} z_k} $$

公式1

∑i=1nai=0\sum_{i=1}^n a_i=0

公式2

∑k=0j−1γ^kjzk\sum^{j-1}_{k=0}{\widehat{\gamma}_{kj} z_k}

在Markdown中将数学表达式放置在......之间:

$\LaTeX{}$

$\Pi$

$a * b = c ^ d$

$2^{\frac{n-1}{3}}$

$\int\_a^b f(x)\,dx.$

效果:

LaTeX\LaTeX{}

Π\Pi

a∗b=cda * b = c ^ d

2n−132^{\frac{n-1}{3}}

∫_abf(x) dx.\int\_a^b f(x)\,dx.


  1. 《水调歌头》 ↩︎