Skip to content

Instantly share code, notes, and snippets.

@rafbm
Created February 1, 2013 12:31
Show Gist options
  • Save rafbm/4691045 to your computer and use it in GitHub Desktop.
Save rafbm/4691045 to your computer and use it in GitHub Desktop.
Markdown rendering with syntax highlighting
# gem install redcarpet
# gem install pygments.rb
require 'redcarpet'
require 'pygments'
class MarkdownWithPygments < Redcarpet::Render::HTML
def block_code(code, language)
Pygments.highlight(code, lexer: language)
end
end
Markdown = Redcarpet::Markdown.new(MarkdownWithPygments, fenced_code_blocks: true)
puts Markdown.render(DATA.read)
__END__
- Lorem ipsum dolor sit amet
- Consectetur adipisicing elit
- Sed do eiusmod tempor incididunt
``` ruby
# gem install redcarpet
# gem install pygments.rb
require 'redcarpet'
require 'pygments'
class MarkdownWithPygments < Redcarpet::Render::HTML
def block_code(code, language)
Pygments.highlight(code, lexer: language)
end
end
Markdown = Redcarpet::Markdown.new(MarkdownWithPygments, fenced_code_blocks: true)
puts Markdown.render(DATA.read)
```
Sunt in culpa qui officia deserunt mollit anim id est laborum.
<ul>
<li>Lorem ipsum dolor sit amet</li>
<li>Consectetur adipisicing elit</li>
<li>Sed do eiusmod tempor incididunt</li>
</ul>
<div class="highlight"><pre><span class="c1"># gem install redcarpet</span>
<span class="c1"># gem install pygments.rb</span>
<span class="nb">require</span> <span class="s1">&#39;redcarpet&#39;</span>
<span class="nb">require</span> <span class="s1">&#39;pygments&#39;</span>
<span class="k">class</span> <span class="nc">MarkdownWithPygments</span> <span class="o">&lt;</span> <span class="ss">Redcarpet</span><span class="p">:</span><span class="ss">:Render</span><span class="o">::</span><span class="no">HTML</span>
<span class="k">def</span> <span class="nf">block_code</span><span class="p">(</span><span class="n">code</span><span class="p">,</span> <span class="n">language</span><span class="p">)</span>
<span class="no">Pygments</span><span class="o">.</span><span class="n">highlight</span><span class="p">(</span><span class="n">code</span><span class="p">,</span> <span class="ss">lexer</span><span class="p">:</span> <span class="n">language</span><span class="p">)</span>
<span class="k">end</span>
<span class="k">end</span>
<span class="no">Markdown</span> <span class="o">=</span> <span class="ss">Redcarpet</span><span class="p">:</span><span class="ss">:Markdown</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="no">MarkdownWithPygments</span><span class="p">,</span> <span class="n">fenced_code_blocks</span><span class="p">:</span> <span class="kp">true</span><span class="p">)</span>
<span class="nb">puts</span> <span class="no">Markdown</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="no">DATA</span><span class="o">.</span><span class="n">read</span><span class="p">)</span>
</pre></div>
<p>Sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment