diff options
-rw-r--r-- | .themes/classic/source/_layouts/default.html | 2 | ||||
-rw-r--r-- | plugins/octopress_filters.rb | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/.themes/classic/source/_layouts/default.html b/.themes/classic/source/_layouts/default.html index 5b6240de..f6333435 100644 --- a/.themes/classic/source/_layouts/default.html +++ b/.themes/classic/source/_layouts/default.html @@ -5,7 +5,7 @@ <nav role=navigation>{% include navigation.html %}</nav> <div id="main"> <div id="content"> - {{ content | expand_urls: root_url | smart_quotes }} + {{ content | expand_urls: root_url | backtick_codeblock | smart_quotes }} {% unless page.sidebar == false %} <aside role=sidebar>{% include sidebar.html %}</aside> {% endunless %} diff --git a/plugins/octopress_filters.rb b/plugins/octopress_filters.rb index 429e505c..e85466e3 100644 --- a/plugins/octopress_filters.rb +++ b/plugins/octopress_filters.rb @@ -1,6 +1,8 @@ #custom filters for Octopress +require './plugins/pygments_code' module OctopressFilters + include HighlightCode # Used on the blog index to split posts on the <!--more--> marker def excerpt(input) if input.index(/<!--\s*more\s*-->/i) @@ -19,6 +21,18 @@ module OctopressFilters end end + # for Github style codeblocks eg. + # ``` ruby + # code snippet + # ``` + def backtick_codeblock(input) + input.gsub /<p>`{3}\s(\w+)<\/p>.+<pre><code>(.+)<\/code><\/pre>.+`{3}<\/p>/m do + lang = $1 + str = $2.gsub(/^\s{4}/, '').gsub('<','<').gsub('>','>') + highlight(str, lang) + end + end + # Replaces relative urls with full urls def expand_urls(input, url='') url ||= '/' |