LoginSignup
16
17

More than 5 years have passed since last update.

Redmine2.5とredmine_redcarpet_formatterプラグインの衝突回避

Last updated at Posted at 2014-04-07

背景

RedmineにMarkdownフォーマットを追加するプラグイン redmine_redcarpet_formatterがあるのですが、Redmine2.5でMarkdownフォーマットが試験的に追加されたことで、名前やフォーマッタ名が衝突しています。

そのため、当該プラグインを入れたままRedmine2.5へアップデートすることができなくなっており、少し回避策を取りました。

おことわり

ひとまず動作確認はしましたが、どんな影響があるかわからないので使う場合は自己責任でお願いします。

また、Redmine2.5のMarkdownフォーマッタが試験的な導入となっているので、将来的に衝突回避される場合はこの変更を元に戻す二度手間が発生するでしょう。
そのため、特に2.5.xで欲しい機能がない限りは2.4.xでとどまっておくことを個人的にはオススメします。

変更箇所

変更による影響が少なそうなredmine_redcarpet_formatterプラグインのコードを少しいじります。

Gemfile

gem指定をコメントアウト

-gem "redcarpet"
+#gem "redcarpet"

init.rb

 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

 require 'redmine'
-require 'redmine/wiki_formatting/markdown/formatter'
-require 'redmine/wiki_formatting/markdown/helper'
+require 'redmine/wiki_formatting/redcarpet_markdown/formatter'
+require 'redmine/wiki_formatting/redcarpet_markdown/helper'


 Redmine::Plugin.register :redmine_redcarpet_formatter do
   description 'Markdown wiki formatting by Redcarpet for Redmine'
   version '2.1'

-  wiki_format_provider 'markdown', Redmine::WikiFormatting::Markdown::Formatter, Redmine::WikiFormatting::Markdown::Helper
+  wiki_format_provider 'redcarpet_markdown', Redmine::WikiFormatting::RedcarpetMarkdown::Formatter, Redmine::WikiFormatting::RedcarpetMarkdown::Helper

   settings :default => {
     'enable_hardwrap' => '1',

lib/redmine/wiki_formatting/markdown/formatter.rb -> lib/redmine/wiki_formatting/redcarpet_markdown/formatter.rb

 module Redmine
   module WikiFormatting
-    module Markdown
+    module RedcarpetMarkdown
       class Formatter
         #    include ActionView::Helpers::TagHelper

lib/redmine/wiki_formatting/markdown/helper.rb -> lib/redmine/wiki_formatting/redcarpet_markdown/helper.rb

 module Redmine
   module WikiFormatting
-    module Markdown
+    module RedcarpetMarkdown
       module Helper
         unloadable

どっちが対応すべきなの?

実際に今後対策を取るとしたらどっちが修正すべきなのって話ですが、プラグイン作者のご指摘のとおり、後発のRedmine本家側が名前の衝突を回避するなり、プラグインに対して要望を出すなりして対応すべきなんじゃないかと思います。

というか、フォーマッタをプラグインから登録できる仕組みなんだから、本家にフォーマッタを導入せずプラグイン化する方が正しい気がしますけどね。たぶんtextileがデフォルトなのは変わらないんでしょうし。

ちなみに、本家の方では既にプラグインがあるという指摘があったのに、誰も対応しなかったんですね…。

16
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
17