私は、github-markup を使用したロード順序付けの問題と思われる問題を抱えています。
デフォルトのマークダウン レンダラーをオーバーライドし、Rails イニシャライザで独自のカスタム レンダラーを使用しようとしています。ただし、機能しません。Gemfile に githum-markup gem を具体的に含めて、:git または :path 設定を追加するように指定しない限り、初期化子を無視しているようです。(github-markup は gollum gem の依存関係です)
Gemfile
## 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マークダウンレンダラーを独自のカスタムレンダラーでオーバーライドできます.