layout: post

title: a post with code

date: 2015-07-15 15:09:00

description: an example of a blog post with some code

tags: formatting code

categories: sample-posts

featured: true

#

This theme implements a built-in Jekyll feature, the use of Rouge, for syntax highlighting.

It supports more than 100 languages.

This example is in C++.

All you have to do is wrap your code in markdown code tags:

#

````markdown

```c++

code code code

```

````

#

```c++

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;

}

```

#

For displaying code in a list item, you have to be aware of the indentation, as stated in this FAQ. You must indent your code by (3 * bullet_indent_level) spaces. This is because kramdown (the markdown engine used by Jekyll) indentation for the code block in lists is determined by the column number of the first non-space character after the list item marker. For example:

#

````markdown

1. We can put fenced code blocks inside nested bullets, too.

1. Like this:

#

```c

printf(“Hello, World!”);

```

#

2. The key is to indent your fenced block in the same line as the first character of the line.

````

#

Which displays:

#

1. We can put fenced code blocks inside nested bullets, too.

1. Like this:

#

```c

printf(“Hello, World!”);

```

#

2. The key is to indent your fenced block in the same line as the first character of the line.

#

By default, it does not display line numbers. If you want to display line numbers for every code block, you can set kramdown.syntax_highlighter_opts.block.line_numbers to true in your _config.yml file.

#

If you want to display line numbers for a specific code block, all you have to do is wrap your code in a liquid tag:

# #

{% highlight c++ linenos %}
code code code
{% endhighlight %}

# #

The keyword linenos triggers display of line numbers.

Produces something like this:

# #

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 
# 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;
# 
# }
# 
#