2

私は、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マークダウンレンダラーを独自のカスタムレンダラーでオーバーライドできます.

4

0 に答える 0