###############################################################################
#
# <p>ページのカテゴリを設定します。</p>
# <pre>
# {{category カテゴリ名1,カテゴリ名2,,}}
# </pre>
# <p>
#   1ページに複数のカテゴリを設定することもできます。
# </p>
# <pre>
# {{category カテゴリ名1}}
# {{category カテゴリ名2}}
# </pre>
# <p>
#   categoryプラグインを記述した位置にはカテゴリ[カテゴリ名]という形式の
#   アンカが出力され、押下するとそのカテゴリに属しているページの一覧が表示されます。
#   nolinkオプションを最後につけることでカテゴリ定義だけを行い、
#   アンカを出力しないようにすることもできます。
# </p>
# <pre>
# {{category カテゴリ名1,カテゴリ名2,,,nolink}}
# </pre>
#
###############################################################################
package plugin::category::Category;
use strict;
#==============================================================================
# コンストラクタ
#==============================================================================
sub new {
	my $class = shift;
	my $self = {};
	return bless $self,$class;
}

#==============================================================================
# インラインメソッド
#==============================================================================
sub inline {
	my $self   = shift;
	my $wiki   = shift;
	my @option = @_;

	if($option[0] eq ""){
		return Util::inline_error("カテゴリが設定されていません。");
	}
	elsif(@option > 1 and $option[-1] eq 'nolink'){
		return "";
	}

	my $out = "";

	foreach my $category (@option) {
		if($out ne ""){ $out .= ","; }
		$out .= '<a href="'.$wiki->create_url({action=>'CATEGORY',category=>$category}).'">'
		     .  Util::escapeHTML($category) . '</a>';
	}

	return qq|<span class="category">[| . $out . qq|]</span>|;
}

1;