2

我遇到了我认为使用 github-markup 的负载排序问题。

我正在尝试覆盖默认的降价渲染器并在 Rails 初始化程序中使用我自己的自定义渲染器。但是它不起作用;它似乎只是忽略了我的初始化程序,除非我在我的 Gemfile 中特别包含 githum-markup gem指定添加 :git 或 :path 设置。(github-markup 是 gollum gem 的依赖项)

宝石文件

## Github-Markup #######
# Initializer wiki.rb wont work properly unless this gem is loaded via path: or git:
gem 'github-markup', :git => 'git://github.com/github/markup.git'

gem 'gollum' #gollum already includes github-markup so I shouldn't need the lines above

初始化程序/wiki.rb

GitHub::Markup.add_markup(/md|mkdn?|mdwn|mdown|markdown/) do |content|
  CustomMarkdown.new(content).to_html
end

查看 github-markup 代码,该类调用该文件底部附近的标记:

https://github.com/github/markup/blob/master/lib/github/markup.rb

instance_eval File.read(File.dirname(__FILE__) + '/markups.rb')

你可以在这个文件的顶部看到我试图覆盖的降价渲染器:

https://github.com/github/markup/blob/master/lib/github/markups.rb

MD_FILES = /md|mkdn?|mdwn|mdown|markdown/

if markup('github/markdown', MD_FILES) do |content|
    GitHub::Markdown.render(content)
  end
elsif markup(:redcarpet, MD_FILES) do |content|
    RedcarpetCompat.new(content).to_html
  end
elsif markup(:rdiscount, MD_FILES) do |content|
    RDiscount.new(content).to_html
  end
elsif markup(:maruku, MD_FILES) do |content|
    Maruku.new(content).to_html
  end
elsif markup(:kramdown, MD_FILES) do |content|
    Kramdown::Document.new(content).to_html
  end
elsif markup(:bluecloth, MD_FILES) do |content|
    BlueCloth.new(content).to_html
  end
end

为了清楚起见,我使用的是 Ruby 1.9.3,我想得到它,所以我可以在 Gemfile 中调用 gem 'gollum' 并使用我的初始化程序用我自己的自定义渲染器覆盖默认的 github-markup markdown 渲染器.

4

0 回答 0