ユーザーマクロを書く

独自のカスタム マクロを作成する場合、ユーザー マクロを使用すると便利です。これらは特定のアクションを実行、カスタムの初期設定を適用するなどの操作が可能です。 

ユーザー マクロは Confluence 内で作成および管理され、アドオンを開発する必要はありません。ただし、ある程度のコーディング スキルが必要となります。  

ユーザー マクロを作成して管理するには、システム管理者権限が必要となります。 

On this page:

関連ページ

ユーザー マクロを作成する

新しいユーザー マクロを追加するには:

  1. Go to  > General Configuration > User Macros
  2. ユーザー マクロの作成を選択します。
  3. マクロの詳細を入力します (以下の表を参照)。
  4. 追加をクリックします
マクロの詳細フィールド説明
macroNameコードに表示されるマクロ名です。
表示方法

マクロ ブラウザーまたはオートコンプリートでこのマクロを表示できるユーザーを制御します。オプションは次のとおりです。

  • すべてのユーザーに表示
  • システム管理者にのみ表示

「システム管理者にのみ表示」を選択した場合でも、ユーザーはページ上のマクロの出力を見ることができ、ユーザーがページを編集する際、マクロ プレースホルダーも表示されます。マクロ ブラウザーとオートコンプリートでのみ非表示になります。

マクロのタイトル、説明、パラメーター名およびその他のメタデータを含め、すべてのマクロ情報は検出可能です。システム管理者にのみ表示とマークされている場合であっても、ユーザー マクロの定義に機密データを含めないでください。

マクロ タイトルマクロ ブラウザーとオートコンプリートに表示されるタイトル。
説明 マクロ ブラウザーに表示される説明です。マクロ ブラウザーの検索は、タイトルと説明の両方の一致をピックアップします。
カテゴリマクロが表示されるマクロ ブラウザー カテゴリーを 1 つ以上選択します。
アイコンの URLマクロ ブラウザにマクロのアイコンを表示したい場合、絶対 URL (例: http://mysite.com/mypath/status.png) または Confluence ベース URL への相対パス (例: /images/icons/macrobrowser/status.png) を入力します。
ドキュメント URLマクロのドキュメントがある場合は、ここに URL を入力します。
マクロ本文処理

マクロに渡す前に Confluence が本体をどのように処理するかを指定します。

マクロ本文は、Confluence ページに表示されるコンテンツです。マクロに本文がある場合、ユーザーが入力する本文のコンテンツは、$body 変数のマクロで利用可能となります。

マクロ本体の処理オプション:

  • マクロ本文なし
    マクロに本文がない場合に選択します。
  • エスケープ済み
    Confluence は、マクロ本文の HTML マークアップにエスケープ文字を追加します。レンダリング後のページで実際の HTML マークアップを表示したい場合にこれを使用します。たとえば、本文が <b>Hello World</b> の場合、<b>Hello World</b>. としてレンダリングされます。
  • レンダリングされていない
    本文内の HTML は、出力前にテンプレート内で処理されます。HTML が、最終的にはテンプレートによって出力されていることを確認してください。
  • Rendered
    Confluence will recognise HTML in the macro body, and render it appropriately. For example, if the body is <b>Hello World</b> it will render as Hello World.
テンプレート

ここで、マクロの動作を決定するコードを作成します。

  • Use HTML and Confluence-specific XML elements in the macro template. Details of Confluence's storage format are in Confluence Storage Format.
  • You can use the Velocity templating language. Here is more information on the Velocity project.
  • マクロに本文がある場合、"$body" を指定することでテンプレートでマクロの本文のテキストを参照できます。
  • Each parameter variable you use must have a matching metadata definition. Use @param to define metadata for your macro parameters.
  • When using the information passed using parameters, refer to your parameters as $paramXXX where 'XXX' is the parameter name that you specifed in the @param metadata definition.
  • Use @noparams if your macro does not accept parameters.

詳細と例については、「ユーザー マクロ テンプレート構文」を参照してください。

代わりにプラグインが必要ですか?

ユーザー マクロをプラグインとして配信する場合は、ユーザー マクロ プラグイン モジュール」に関する開発者ガイドを参照してください。Confluence でより複雑な、プログラミングを使用したマクロを作成したい場合は、マクロ プラグインの記述が必要となる場合があります。

ユーザー マクロを編集する

ユーザー マクロを編集するには

  1. Go to  > General Configuration > User Macros
  2. 関連マクロの隣にある 編集 をクリックします。
  3. マクロの詳細を更新する
  4. 保存 をクリックします。

ユーザー マクロの削除

ユーザー マクロを削除するには:

  1. Go to  > General Configuration > User Macros
  2. 現在設定されているユーザー マクロが表示されます
  3. 関連するマクロの横にある 削除 をクリックします。

ユーザー マクロを削除する前に、ページやブログ投稿でのそのマクロの使用箇所をすべて 検索 する必要があります。ページ上でまだ使用されているユーザー マクロを削除すると、ユーザーに「不明なマクロ」エラーが表示されます。  

べスト プラクティス

このセクションには、独自のユーザー マクロを作成する際のベストプラクティスに関するヒントや提案が含まれています。

マクロ ヘッダーに説明的なヘッダーを追加する

テンプレート フィールドの一番上に、以下の用にコメントとして短い説明を含めることをお勧めします。 

## Macro title: My macro name
## Macro has a body: Y or N
## Body processing: Selected body processing option
## Output: Selected output option
##
## Developed by: My Name
## Date created: dd/mm/yyyy
## Installed by: My Name

## Short description of what the macro does

マクロ ブラウザーにパラメーターを表示する

ユーザーがマクロを構成する最も簡単な方法はマクロ ブラウザーです。ユーザーはマクロ カテゴリーを指定、アイコンへリンク、およびマクロ ブラウザーがユーザーに情報を要求するために使用するパラメーターを定義するなどを行うことができます。

マクロ パラメーターのデフォルトの値を供給する

ユーザーがパラメーターを指定したかどうかはわからないため、マクロ コードで後から依存する予定がある場合、最初に、マクロで一部の値を受け取ったかどうかを確認する必要があります。

以下の例では、マクロは 3 つのパラメーターを期待し、指定されない場合は実用的な既定値に置き換えられます。

#set($spacekey= $paramspacekey)
#set($numthreads= $paramnumthreads)
#set($numchars= $paramnumchars)

## Check for valid space key, otherwise use current
#if (!$spacekey)
  #set ($spacekey=$space.key)
#end

## Check for valid number of threads, otherwise use default of 5
#if (!$numthreads)
  #set ($numthreads=5)
#end

## Check for valid excerpt size, otherwise use default of 35
#if (!$numchars)
  #set ($numchars=35)
#end

ユーザー マクロの例

Hello World

この例では、テキスト「Hello World!」を表示するユーザーマクロや、ユーザーがマクロ本文に配置するテキストの作成方法を示します。

フィールド
macroNamehelloworld
表示方法Visible to all users in the Macro Browser
マクロ タイトルHello World
説明 Displays "Hello World" and the macro body.
カテゴリConfluence Content
アイコンの URLこのフィールドは空白のまま残すことができます
ドキュメント URLこのフィールドは空白のまま残すことができます
マクロ本文処理レンダリング済み
テンプレート

テンプレート フィールドに以下のコードを入力します。この例では、テキストをページ上に直接プリントします。

## @noparams
Hello World!
$body

テキストをパネルに表示させたい場合は、ここに示すように、関連 AUI メッセージ クラスを含めることができます。

## @noparams
<div class="aui-message closeable">
Hello World!
$body
</div>

ページでの 'Hello World' マクロの使用

マクロ ブラウザーを使用するか、エディターに「{hello」と入力し、候補のリストからマクロを選択して、Confluence ページにマクロを追加することができるようになりました。

結果は次のようになります。

パメルを含めるよう選択した場合、結果は次のようになります。

 

NoPrint

この例では、ページを表示した際に見えるけれども印刷できないテキストをふくめることができるユーザー マクロの記述用法を示しています。

フィールド
macroNamenoprint
表示方法Visible to all users in the Macro Browser
マクロ タイトルNo Print
説明 Hides text from printed output.
カテゴリConfluence Content
アイコンの URLこのフィールドは空白のまま残すことができます
ドキュメント URLこのフィールドは空白のまま残すことができます
マクロ本文処理Rendered
テンプレート

テンプレート フィールドに以下のコードを入力します。

## @noparams
<div class="NoPrint">$body</div>

ページでの 'NoPrint' マクロの使用

マクロ ブラウザーを使用いて、Confluence ページにマクロを追加できるようになりました。マクロ プレースホルダーの本文に入力れたテキストは印刷されませんが、ページをオンラインで閲覧したときに表示されます。

Making the PDF export recognise the NoPrint macro

See Advanced PDF Export Customisations.

 

Colour and Size

This example demonstrates how you can pass parameters to your macro. We'll create a font style macro which has two parameters to allows the user to specify the colour and size of the text contained in the macro body.

フィールド
macroNamestylish
表示方法Visible to all users in the Macro Browser
マクロ タイトルStylish
説明 Applies colour and size to text.
カテゴリConfluence Content
アイコンの URLこのフィールドは空白のまま残すことができます
ドキュメント URLこのフィールドは空白のまま残すことができます
マクロ本文処理Rendered
テンプレート

テンプレート フィールドに以下のコードを入力します。マクロで 1 つ以上のパラメーターが必要な場合、$param0 から $param9 の変数を使用してそれらを表すことができます。

## @param 0:title=colour|type=string
## @param 1:title=size|type=string
<span style="color: $param0; font-size: $param1">$body</span>

また、マクロで明示的に名前の付いたパラメターを使用することもできます。これらのマクロ パラメーターは $param<x> という名前の変数として表示されます。<x> はパラメーターの名前です。 

## @param Colour:title=colour|type=string
## @param Size:title=size|type=string
<span style="color: $paramColour; font-size: $paramSize">$body</span>
書式設定済みパネル

This example demonstrates how to write a user macro that creates a panel that is preformatted with specific colours. It will create a panel that looks like this:

(タイトル)

 

注:ユーザーがタイトル パラメーターに値を指定しない場合、パネルのタイトルは空になります

フィールド
macroNameformpanel
表示方法Visible to all users in the Macro Browser
マクロ タイトル書式設定済みパネル
説明 Creates a panel preformatted with specific colours
カテゴリFormatting
アイコンの URLこのフィールドは空白のまま残すことができます
ドキュメント URLこのフィールドは空白のまま残すことができます
マクロ本文処理エスケープ済み
テンプレート

テンプレート フィールドに以下のコードを入力します。詳細は、以下のコードの詳細な説明を参照してください。

## @param Title:title=Title|type=string|desc=Title
<ac:structured-macro ac:name="panel">
        <ac:parameter ac:name="titleBGColor">#ccc</ac:parameter>
        <ac:parameter ac:name="borderStyle">solid</ac:parameter>
        <ac:parameter ac:name="borderColor">#6699CC</ac:parameter>
        <ac:parameter ac:name="borderWidth">2</ac:parameter>
        <ac:parameter ac:name="titleColor">#000000</ac:parameter>
    <ac:parameter ac:name="title">$!paramTitle</ac:parameter>
    <ac:rich-text-body>$body</ac:rich-text-body>
</ac:structured-macro>

マクロ テンプレートのコードの例

ユーザー マクロ テンプレート コードの内訳を以下に示します。 

項目説明
## @param Title:title=Title|type=string|desc=Title

@param はマクロ パラメータのメタデータを定義します。

@param Title

このパラメーターは "Title" ト呼ばれます。

title=Title

マクロ ブラウザーに "Title" として表示されるパラメーター タイトルを定義します。

type=string

は、パラメーターのフィールド タイプをテキスト フィールドとして定義します。

desc=Title

は、マクロ ブラウザー内のパラメーターの説明を定義します。

<ac:structured-macro ac:name="panel">

これを、Confluence パネル マクロト呼びます。

Confluence マウロのコード名を見つける最も簡単な方法は、マクロを含むページのストレージ形式を表示することです。ストレージ形式を見るには、Confluence 管理者権限が必要になります。

<ac:parameter ac:name="titleBGColor">#ccc</ac:parameter>
<ac:parameter ac:name="borderStyle">solid</ac:parameter>
<ac:parameter ac:name="borderColor">#6699CC</ac:parameter>
<ac:parameter ac:name="borderWidth">2</ac:parameter>
<ac:parameter ac:name="titleColor">#000000</ac:parameter>

Sets the parameters for the macro: the background colour, border style, border colour, border width and title colour.

Confluence マクロのパラメーター名を見つけるには、上記のようにストレージ形式を確認してください。

<ac:parameter ac:name="title">$!paramTitle</ac:parameter>

'Title' パラメーターに保存されている値を、マクロの title セクションに入力します。

「!」は、「タイトル」パラメーターにデータがないときに、タイトルを空白のまま残すようマクロに伝えます。

<ac:rich-text-body>$body</ac:rich-text-body>

ユーザーは、マクロの本文に保存されているデータを使用できます。この行により、マクロはマクロに渡された本文コンテンツへのアクセスと保存が可能になります。

</ac:structured-macro>

このコマンドは、マクロの終了を示します。


最終更新日: 2015 年 12 月 2 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.