博客示例——代码

这个主题使用了 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. 关键是让你的代码块缩进到和列表内容第一行字符对齐的位置。

显示效果如下:

  1. 我们也可以把代码块放在嵌套的列表项里。

    1. 比如这样:

      printf("Hello, World!");
      
    2. 关键是让你的代码块缩进到和列表内容第一行字符对齐的位置。

默认情况下,代码块不显示行号。 如果你想让所有代码块都显示行号,可以在 _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;

}



喜欢阅读这篇文章吗?

以下是一些相关的文章,您可能会喜欢阅读:

  • 博客示例——图片画廊
  • 博客示例——disqus评论区
  • 博客示例——数学公式
  • 博客示例——图片
  • 博客示例——格式与链接