... | ... |
@@ -5,7 +5,7 @@ |
5 | 5 |
<nav role=navigation>{% include navigation.html %}</nav> |
6 | 6 |
<div id="main"> |
7 | 7 |
<div id="content"> |
8 |
- {{ content | expand_urls: root_url | smart_quotes }} |
|
8 |
+ {{ content | expand_urls: root_url | backtick_codeblock | smart_quotes }} |
|
9 | 9 |
{% unless page.sidebar == false %} |
10 | 10 |
<aside role=sidebar>{% include sidebar.html %}</aside> |
11 | 11 |
{% endunless %} |
... | ... |
@@ -1,6 +1,8 @@ |
1 | 1 |
#custom filters for Octopress |
2 |
+require './plugins/pygments_code' |
|
2 | 3 |
|
3 | 4 |
module OctopressFilters |
5 |
+ include HighlightCode |
|
4 | 6 |
# Used on the blog index to split posts on the <!--more--> marker |
5 | 7 |
def excerpt(input) |
6 | 8 |
if input.index(/<!--\s*more\s*-->/i) |
... | ... |
@@ -19,6 +21,18 @@ module OctopressFilters |
19 | 19 |
end |
20 | 20 |
end |
21 | 21 |
|
22 |
+ # for Github style codeblocks eg. |
|
23 |
+ # ``` ruby |
|
24 |
+ # code snippet |
|
25 |
+ # ``` |
|
26 |
+ def backtick_codeblock(input) |
|
27 |
+ input.gsub /<p>`{3}\s(\w+)<\/p>.+<pre><code>(.+)<\/code><\/pre>.+`{3}<\/p>/m do |
|
28 |
+ lang = $1 |
|
29 |
+ str = $2.gsub(/^\s{4}/, '').gsub('<','<').gsub('>','>') |
|
30 |
+ highlight(str, lang) |
|
31 |
+ end |
|
32 |
+ end |
|
33 |
+ |
|
22 | 34 |
# Replaces relative urls with full urls |
23 | 35 |
def expand_urls(input, url='') |
24 | 36 |
url ||= '/' |