Redmine は Wiki フォーマッタがプラガブルになっているので、プラグインを入れて複数のフォーマットから選択することができます。
Redmine 404 error によると、Redmin 標準の Textile の他に Markdown, Markdown Extra, RD, reStructuredText, WikiCreole などがあるようです。
ですが、フォーマッタは Redmine システム全体で一つしか選択することができません。新しいプロジェクトに Markdown を使いたいけど、古いプロジェクトの Wiki を今さら変更できないからしょうがなく Textile を使ったりしてました。
ということで、プロジェクト毎にフォーマッタを選択できるようなパッチを作ってみました(プラグイン化しようとしたんですが断念しました)。
--- app/helpers/application_helper.rb.orig 2010-08-23 04:49:31.000000000 +0900 +++ app/helpers/application_helper.rb 2010-09-23 14:20:05.000000000 +0900 @@ -448,7 +448,7 @@ project = options[:project] || @project || (obj && obj.respond_to?(:project) ? obj.project : nil) only_path = options.delete(:only_path) == false ? false : true - text = Redmine::WikiFormatting.to_html(Setting.text_formatting, text, :object => obj, :attribute => attr) { |macro, args| exec_macro(macro, obj, args) } + text = Redmine::WikiFormatting.to_html(project_formatter(project), text, :object => obj, :attribute => attr) { |macro, args| exec_macro(macro, obj, args) } parse_non_pre_blocks(text) do |text| [:parse_inline_attachments, :parse_wiki_links, :parse_redmine_links].each do |method_name| @@ -823,7 +823,7 @@ private def wiki_helper - helper = Redmine::WikiFormatting.helper_for(Setting.text_formatting) + helper = Redmine::WikiFormatting.helper_for(project_formatter(@project)) extend helper return self end @@ -835,4 +835,16 @@ ) end + def project_formatter(project) + return Setting.text_formatting unless project + project.custom_field_values.each do |v| + if v.custom_field.name == "formatter" + if Redmine::WikiFormatting.format_names.include? v.value + return v.value + end + break + end + end + Setting.text_formatting + end end
- 使用したいフォーマッタのプラグインをインストール
- このパッチを適用
- 管理→カスタムフィールド→プロジェクト→新しいカスタムフィールドを作成 で、formatter という名前のカスタムフィールドを作成
- 各プロジェクトの 設定→情報の formatter にフォーマッタの名前(「Markdown Extra」等)を指定
以上でプロジェクトの Wiki, チケット, 概要等に指定したフォーマッタを使用することができます。
当然、フォーマッタが異なる別のプロジェクトにチケット移動した場合は、表示が崩れるのでご注意を。