95 lines
2.6 KiB
Markdown
95 lines
2.6 KiB
Markdown
---
|
|
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 [Stackoverflow answer](https://stackoverflow.com/questions/34987908/embed-a-code-block-in-a-list-item-with-proper-indentation-in-kramdown/38090598#38090598). 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:
|
|
|
|
{% raw %}
|
|
{% highlight c++ linenos %} <br/> code code code <br/> {% endhighlight %}
|
|
{% endraw %}
|
|
|
|
The keyword `linenos` triggers display of line numbers.
|
|
Produces something like this:
|
|
|
|
{% highlight c++ linenos %}
|
|
|
|
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;
|
|
}
|
|
|
|
{% endhighlight %}
|