博客示例——代码
这个主题使用了 Jekyll 内置的语法高亮功能 —— Rouge。
它支持超过 100 种语言。
这个例子展示的是 C++。
你只需要把代码包裹在 markdown 的代码块标签里即可:
```c++
code code code
```
int main(int argc, char const *argv[])
{
string myString;
cout << "input a string: ";
getline(cin, myString);
int length = myString.length();
char charArray = new char * [length];
charArray = myString;
for(int i = 0; i < length; ++i){
cout << charArray[i] << " ";
}
return 0;
}
在列表项里展示代码时,你需要注意缩进,这在 Stackoverflow 的回答 里已经提到过。
你必须缩进 (3 * bullet_indent_level) 个空格。
这是因为 Jekyll 使用的 markdown 引擎 kramdown,会根据列表标记后第一个非空格字符的列数来判断代码块缩进。
例如:
1. 我们也可以把代码块放在嵌套的列表项里。
1. 比如这样:
```c
printf("Hello, World!");
```
2. 关键是让你的代码块缩进到和列表内容第一行字符对齐的位置。
显示效果如下:
-
我们也可以把代码块放在嵌套的列表项里。
-
比如这样:
printf("Hello, World!"); -
关键是让你的代码块缩进到和列表内容第一行字符对齐的位置。
-
默认情况下,代码块不显示行号。 如果你想让所有代码块都显示行号,可以在 _config.yml 文件里设置:
kramdown.syntax_highlighter_opts.block.line_numbers: true
如果你只想让某一个代码块显示行号,只需要用 liquid 标签包裹即可:
{% highlight c++ linenos %}
code code code
{% endhighlight %}
关键字 linenos 会触发行号显示。 效果大概是这样:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main(int argc, char const \*argv\[])
{
string myString;
cout << "input a string: ";
getline(cin, myString);
int length = myString.length();
char charArray = new char \* [length];
charArray = myString;
for(int i = 0; i < length; ++i){
cout << charArray[i] << " ";
}
return 0;
}
喜欢阅读这篇文章吗?
以下是一些相关的文章,您可能会喜欢阅读: