RedmineのエディタをHTMLエディタに変更してみた

プロジェクト管理にRedmineを利用していますが、HTMLメールでもらう修正内容をチケットとして発行しようと思うと、なかなか手間がかかります。

で、HTMLメールをコピペしてチケットを作成できないかとプラグインを探していたところ、Redmine CKeditorというプラグインを見つけました。名前のとおり、RedmineのエディタをCKeditorに置き換えるプラグインです。

使っていたRedmineが2.0.3だったので、古いバージョンを入れたのですが、画像については期待どおりに動きませんでした。
最新版を試すためにRedmineを2.3にバージョンアップ。(バージョンアップの手順はこのページが詳しいです。)
最新版はほぼ期待どおりなんですが、現時点でわかっている難点が2つ。

  • 1つ目は、Redmineのデフォルトのエディタで作成したチケット内容を表示すると改行がなくなってとても見にくくなること。
  • 2つ目は、チケットの内容を引用して更新しようとすると、引用した内容が綺麗にサニタイズされて改行コードやHTMLタグがすべてなくなってること。

です。

1つ目については、すでにDBにある内容を変更するなどの方法も考えられるのですが、そこまでするのも大変なので、CKeditor用のプロジェクトを新規に用意して、このプロジェントのみCKeditorを利用するようにしました。なお、プロジェクトごとにエディタを設定するにはredmine_per_project_formattingプラグインを利用します。

2つ目については、edmine CKeditorプラグインの
lib/redmine_ckeditor/journals_controller_patch.rb
の30行目の

@content << "<blockquote>#{ActionView::Base.full_sanitizer.sanitize(text)}</blockquote><p/>"

#@content << "<blockquote>#{ActionView::Base.full_sanitizer.sanitize(text)}</blockquote><p/>"
@content << "<blockquote><p>#{text}</p></blockquote>"

とすることで解消しました。
(blockquoteタグのあとにpタグがないとCKeditorの引用ボタンを押せなくなるのでpタグを追記しています。)
ただ、サニタイズなしなので不安がなくもないですが、まぁ、投稿された際にサニタイズはされているだろうと信じて。(^^;)

あと、引用して更新する際、引用中にコメントをはさみたい場合があります。
この場合、コメントをはさみたい箇所で、以下のボタンを押すとよいです。

ckeditor

投稿日:
カテゴリー: redmine