Redmine wikiマクロを作成する方法1
Redmine Advent Calendar 2024の6日目の記事として作成しました。
今年のRedmine Advent Calendarに空白が多く残っており、クリスマスが過ぎる前までになんとか空白の日付の記事を書いて、空白の日付を埋めることを優先して記事を作成しました。そのため、濃くない内容の記事になるかもしれませんが、ご容赦ください。
背景
Redmineには自作のwikiマクロを作成して登録することができます。
その方法としてはプラグインを作成いたしますがwikiマクロの登録のためのプラグインは比較的開発が簡単であるため、プラグインを作ったことがない方でも簡単に試してみることができるメリットがあります。
wikiマクロでは色々な処理をすることができるためRedmineの構造を理解したり、Rubyを理解したり、プラグインの仕組みを理解したりするためには良い教材になるかと思います。
今年のRedmine Advent Calendarを通して、何回かに分けてwikiマクロの作り方を紹介したいと思います。
今回の記事ではwikiマクロを登録するためのプラグインの作成方法とハローワールド的な簡単なマクロを作ってwikiマクロがRedmineに登録できることを確認したいと思います。
開発環境の説明をいたします。Redmine 6.0.1を使用しています。
wikiマクロ登録用プラグインの作成方法
RedmineのWikiマクロは、RedmineのWikiテキスト内(チケットの本文でも表示可能)で独自の機能やデータ表示を可能にします。そのためにはRedmineのプラグインでWikiマクロを登録します。
1. プラグインの作成
まず、Redmineプラグインの基本構造を作成します。
1. Redmineのディレクトリに移動します:
cd /path/to/redmine
2. プラグインの雛形を生成します:
bundle exec rails generate redmine_plugin wiki_macro_plugin
-
wiki_macro_plugin
はプラグイン名です。任意の名前で大丈夫です。今回の例では「wiki_macro_plugin」を使用しました。
3. wiki_macro_plugin
ディレクトリが作成され、その中にプラグインの基本ファイルが生成されます。
2. マクロを実装
プラグイン内でWikiマクロを定義します。
-
作成したプラグインのディレクトリに移動します:
cd wiki_macro_plugin
-
redmine-6.0.1/plugins/wiki_macro_plugin/init.rbの「
init.rb
」ファイルを編集して、Wikiマクロを登録します:Redmine::Plugin.register :wiki_macro_plugin do name 'My Macro Plugin' author 'Your Name' description 'A plugin to add custom wiki macros' version '0.1.0' end Redmine::WikiFormatting::Macros.register do desc "Example macro to display a greeting" macro :greet do |obj, args| "Hello, #{args.first || 'world'}!" end end
3. Redmineを(再)起動
新しいマクロを作成または更新した場合、Redmineのアプリケーションサーバー(Passenger, Puma, Unicornなど)を再起動してください。
私の場合、「bundle exec rails server -e production -p 3601
」でサーバーを起動させることができます。
4. マクロの使い方
RedmineのWikiページで、以下のように記述することでマクロを使用できます:
{{greet}}
引数がない場合はデフォルト値が使われます:
Hello, world!
引数を渡す場合:
{{greet(John)}}
上記の場合、結果は次のようになります:
Hello, John!
上記の手順で、Redmineに独自のWikiマクロを簡単に追加できます。
感想
- 数日分の記事を書くためのネタが無く、wikiマクロを色々書いて遊びながら記事を書く予定です。
- 今日は、まずはwikiマクロを登録するためのプラグインの作り方を説明しました。
この記事の作成者の紹介
山崎進
- Redmine、Jquery、JavaScript,Rails、Ruby、SQL、VBA、RPAの開発を行なっています。
- 自動化、業務の効率化に高い関心があります。
- 下記の媒体で情報を発信しています。Redmineのプラグインの開発などに対応が可能ですので、お気軽にご連絡ください。
* Qiita:https://qiita.com/ankosoft
* Twitter:https://twitter.com/yamasaki24
* Redmine Advent Calendarで記事投稿
* redmine.tokyoで講演多数
* Redmine Japan Vol.1 前夜祭、Redmine Japan Vol.3で講演
* https://ankosoft.co.jp/blog/
* https://technology.ankosoft.co.jp/
関連記事(去年のRedmine Advent Calendarの記事です。)
* JqueryでRedmineのメニューにアイコンを入れる方法
* JqueryでRedmineのメニューを閉じたり開いたりする方法
* JqueryでRedmineの「活動ページ」をもっと便利に(タイトルを開閉したり、曜日を入れたり)
* JqueryでRedmineの「活動ページ」をもっと便利に②(フィルタリング機能と移動機能)
* JqueryでRedmineの「wikiページ」をもっと便利に(フィルタリング機能と移動機能)
* JqueryでRedmineの「チケットページ」をもっと便利に(年ごと、月ごと、四半期ごとの集計機能の開発)