我遇到了我认为使用 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 渲染器.