0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Redmine wikiマクロを作成する方法1

Last updated at Posted at 2024-12-21

Redmine wikiマクロを作成する方法1

Redmine Advent Calendar 2024の6日目の記事として作成しました。

今年のRedmine Advent Calendarに空白が多く残っており、クリスマスが過ぎる前までになんとか空白の日付の記事を書いて、空白の日付を埋めることを優先して記事を作成しました。そのため、濃くない内容の記事になるかもしれませんが、ご容赦ください。

image.png


背景

Redmineには自作のwikiマクロを作成して登録することができます。
その方法としてはプラグインを作成いたしますがwikiマクロの登録のためのプラグインは比較的開発が簡単であるため、プラグインを作ったことがない方でも簡単に試してみることができるメリットがあります。

wikiマクロでは色々な処理をすることができるためRedmineの構造を理解したり、Rubyを理解したり、プラグインの仕組みを理解したりするためには良い教材になるかと思います。
今年のRedmine Advent Calendarを通して、何回かに分けてwikiマクロの作り方を紹介したいと思います。

今回の記事ではwikiマクロを登録するためのプラグインの作成方法とハローワールド的な簡単なマクロを作ってwikiマクロがRedmineに登録できることを確認したいと思います。

開発環境の説明をいたします。Redmine 6.0.1を使用しています。

image.png

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」を使用しました。

image.png

3. wiki_macro_pluginディレクトリが作成され、その中にプラグインの基本ファイルが生成されます。

image.png


2. マクロを実装

プラグイン内でWikiマクロを定義します。

  1. 作成したプラグインのディレクトリに移動します:

    cd wiki_macro_plugin
    
  2. 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
    
    • Redmine::Plugin.register :my_macro_plugin doはプラグインの基本情報を記載します。ここで登録した情報が下図のプラグインのページに反映されます。
      image.png

    • descにWikiマクロの説明文を記載します。

    • macroの第一引数はマクロ名(この場合、:greet)です。

    • macroブロック内でマクロの処理を記述します。ここでは、引数があれば、その引数を返し、引数がなければworldを表示させます。
      image.png


3. Redmineを(再)起動

新しいマクロを作成または更新した場合、Redmineのアプリケーションサーバー(Passenger, Puma, Unicornなど)を再起動してください。

私の場合、「bundle exec rails server -e production -p 3601」でサーバーを起動させることができます。
image.png


4. マクロの使い方

RedmineのWikiページで、以下のように記述することでマクロを使用できます:

{{greet}}

image.png

引数がない場合はデフォルト値が使われます:

Hello, world!

image.png

引数を渡す場合:

{{greet(John)}}

image.png

上記の場合、結果は次のようになります:

Hello, John!

image.png


上記の手順で、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の「チケットページ」をもっと便利に(年ごと、月ごと、四半期ごとの集計機能の開発)

 * RedmineのパスワードやログインIDを忘れた時の復旧方法

 * 「rails console」を使ってRedmine上のスケジュールを一括変更する方法

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?