Symfoware

Symfowareについての考察blog

Redmine 独自のWikiマクロを追加するプラグインの作成

Redmine 3系でプラグインの作り方を調べています。
Redmine 3.1系プラグインの作り方
Redmine 3.1系プラグイン作成 メニューの追加

独自のwiki構文を追加するプラグインが作れるのか調べてみました。


Redmine::WikiFormatting::Macros.register



このプラグインを参考にしました。
https://bitbucket.org/haru_iida/redmine_code_review


{{symfoware(リンクに表示する文字列)}}



こうすると、symfowareブログへのリンクを生成するプラグインです。
init.rbの全体像はこうなりました。


  1. Redmine::Plugin.register :test_plugin do
  2. name 'Test Plugin plugin'
  3. author 'Symfoawre'
  4. description 'This is a plugin for Redmine'
  5. version '0.0.1'
  6. url 'http://example.com/path/to/plugin'
  7. author_url 'http://example.com/about'
  8. # 独自Wikiマクロの追加
  9. Redmine::WikiFormatting::Macros.register do
  10.     desc "macro infomation"
  11.     
  12.     # マクロの名前。ここの名前をwikiに記載する
  13.     macro :symfoware do |obj, args|
  14.      # argsにwikiで記載されたカッコ内の文字列が入ってくる
  15.      # 第一引数が表示する文字列、第二引数がリンク先
  16.      link_to(args.first, 'http://symfoware.blog68.fc2.com/')
  17.     
  18.     end
  19. end
  20. end




たったこれだけ。
wikiに作ったタグを使用して記載してみます。

655_01.png

ちゃんとリンクになりました。

655_02.png

クリックすると、ブログへのリンクになっています。

655_03.png





複数引数を取るマクロ



複数引数マクロも簡単に作れます。


{{symfoentry(記事名, 記事の番号)}}



という形式で、ブログの個別ページヘのリンクを作成するタグを作ってみます。
使用方法はこんな感じ。


{{symfoentry(メニューの追加, 1819)}}





  1. Redmine::WikiFormatting::Macros.registerの中のmacroを追加。
  2. argsの内容を使用して、リンクを作成します。
  3. Redmine::Plugin.register :test_plugin do
  4. name 'Test Plugin plugin'
  5. author 'Symfoawre'
  6. description 'This is a plugin for Redmine'
  7. version '0.0.1'
  8. url 'http://example.com/path/to/plugin'
  9. author_url 'http://example.com/about'
  10. # 独自Wikiマクロの追加
  11. Redmine::WikiFormatting::Macros.register do
  12.     desc "macro infomation"
  13.     
  14.     # マクロの名前。ここの名前をwikiに記載する
  15.     macro :symfoware do |obj, args|
  16.      # argsにwikiで記載されたカッコ内の文字列が入ってくる
  17.      # 第一引数が表示する文字列、第二引数がリンク先
  18.      link_to(args.first, 'http://symfoware.blog68.fc2.com/')
  19.     
  20.     end
  21.     
  22.     macro :symfoentry do |obj, args|
  23.      # argsにwikiで記載されたカッコ内の文字列が入ってくる
  24.      # 第一引数が表示する文字列、第二引数がリンク先
  25.      link_to(args[0], 'http://symfoware.blog68.fc2.com/blog-entry-' + args[1] + '.html')
  26.     
  27.     end
  28. end
  29. end



655_04.png


655_05.png


関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2015/11/15(日) 19:30:35|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<PHP 指定ディレクトリのファイルをtarに圧縮する | ホーム | Redmine 3.1系プラグイン作成 メニューの追加>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1820-63d82092
この記事にトラックバックする(FC2ブログユーザー)