From e1b4e22e5c59b9ef97892515755627857ae87185 Mon Sep 17 00:00:00 2001 From: Riyad Preukschas Date: Tue, 24 Jul 2012 01:45:08 +0200 Subject: [PATCH] Add render context to markdown renderer --- app/helpers/application_helper.rb | 2 +- lib/redcarpet/render/gitlab_html.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 3f15fd92..05790fb0 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -43,7 +43,7 @@ module ApplicationHelper end def markdown(text) - @__renderer ||= Redcarpet::Markdown.new(Redcarpet::Render::GitlabHTML.new(filter_html: true), { + @__renderer ||= Redcarpet::Markdown.new(Redcarpet::Render::GitlabHTML.new(self, filter_html: true), { no_intra_emphasis: true, tables: true, fenced_code_blocks: true, diff --git a/lib/redcarpet/render/gitlab_html.rb b/lib/redcarpet/render/gitlab_html.rb index 638c227c..6530adf0 100644 --- a/lib/redcarpet/render/gitlab_html.rb +++ b/lib/redcarpet/render/gitlab_html.rb @@ -1,4 +1,14 @@ class Redcarpet::Render::GitlabHTML < Redcarpet::Render::HTML + + attr_reader :template + alias_method :h, :template + + def initialize(template, options = {}) + @template = template + @project = @template.instance_variable_get("@project") + super options + end + def block_code(code, language) if Pygments::Lexer.find(language) Pygments.highlight(code, :lexer => language, :options => {:encoding => 'utf-8'})