トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/342

ページの作成や編集にはユーザ登録が必要です。

tagcloud

  • 投稿者: だいぼー
  • カテゴリ: 新規
  • 優先度: 普通
  • 状態: 提案
  • 日時: 2007年04月26日 21時26分38秒

 内容

  1. タグ情報を追加できる tag プラグインとタグクラウドを表示する tag_cloud プラグインです
  2. ページごとに tag プラグインでタグを与えることによって,そのページが何を表し説明しているかをわかりやすくします
  3. タグ一覧は tag_cloud プラグインによってリンクのように表示されます
  4. タグクラウドでは,タグ付けされたページ数が多いタグが大きく表示されます(CSS で大きさを調整可能).
  5. tag プラグインは category プラグインのベースに作成しました.動作確認は FreeStyleWiki3_6_2 で行いました.

 サンプル

  • タグ付けされたページの例はこちら.大学講義のシラバスにダグを付けてみました.
  • タグクラウドの表示例はこちら

 インストール方法

  • 添付ファイルを解凍後 tagcloud ディレクトリを plugin ディレクトリ下に置いてください.
  • 管理者メニューのプラグイン設定画面で tagcloud プラグインを ON にして下さい。
  • ログインして「スタイル設定」→「ユーザ定義スタイル」に以下の記述を加えてください.
span.tagcloud0  { font-size: 100%;} 
span.tagcloud1  { font-size: 150%;} 
span.tagcloud2  { font-size: 200%;} 
span.tagcloud3  { font-size: 250%;} 
span.tagcloud4  { font-size: 300%;}

.tagcloudbox {
  //border:solid 2px #5d7871;
  margin-left: 2em;
  padding:10px;
  color: #FF0000;
  width: 80%;
}

 使用例

  • ページ内容のタグ付け
{{tag タグ名1,タグ名2,...}}
  • タグクラウドの表示(全タグ)   
{{tag_cloud}}
  • タグクラウドの表示(上位n個 n≧1)
{{tag_cloud n}} 
  • 指定したタグがあるページのアンカリスト
{{tag_cloud タグ名}}   

詳しくは、Tag.pm のヘッダを参照してください。

 その他

タグクラウドを囲むboxを枠ありに変えたい場合はCSSの.tagcloudboxの //border:solid 2px #5d7871;のコメントアウトを外してください

 ライセンス

  • GPL

 添付ファイル:

 コメント

  • これ、面白いですね。タグの絞込みとかできると更に便利そうです。 - 名無しさん (2007年05月07日 00時45分59秒)
  • ご指摘ありがとうございます。タグクラウドでタグをクリックするとそのタグが付けられたページに絞られるようにしています。 - だいぼー (2007年05月07日 21時25分33秒)
  • もし別の意図でタグの絞込みを指摘してくだったのならば,例を教えていただけませんでしょうか? - だいぼー (2007年05月07日 21時30分50秒)
  • 以前こういうものを作ってました(タグ情報を更新していないので色が薄くなって見難いかもしれませんが・・・)。っというかコード見直し中に忙しくなって開発が一時停止中なのですが(笑)。機能的な参考にはなりますでしょうか? - KG (2007年05月07日 21時38分30秒)
  • ページを参照させてもらいました.表示設定がいろいろあっておもしろいですね.タグクラウドの絞込みは表示設定で選べるカテゴリのことと考えてよいでしょうか? - だいぼー (2007年05月08日 12時39分58秒)
  • どうでしょうかねぇ。件数、タグ名(部分一致)、最終更新日、カテゴリによる絞込みを盛り込んでは見たものの(期間設定は未実装ですが・・・)、ページ数が少ないのでタグ情報が上手く生かせてないのが現状です。あると便利程度のものかな。個人的にはカテゴリとの連携は必須かと思ってます。 - KG (2007年05月08日 13時15分30秒)
  • なるほど - だいぼー (2007年05月09日 19時31分17秒)
  • カテゴリと連携させて関係あるタグを集めて,見やすくするというのはいいかもしれませんね.現在のtagcloudでは順位でしかタグの表示をできませんからね - だいぼー (2007年05月09日 19時33分11秒)
  • 非常に有用なプラグインだと思います。1点、今は文章内にタグを書くしかありませんが、文章外に別項目でタグが書けるとさらに便利です。文章内だとどうしても<p>タグに囲まれてしまうので… - 名無しさん (2007年05月14日 00時12分51秒)
  • 5/7 の最初の書込からチェックできてませんでした。失礼しました>だいぼー様 絞込みのイメージとしては、はてなブックマークのようにできたら便利だなぁと思いコメントさせて頂きました。 - 名無しさん (2007年05月14日 17時35分44秒)
  • 上手く動かない時があるので教えてください。http://zure.net/fswiki/wiki.cgi?page=Ya%A2%A4ma+%26+D%A1%FDnuts+%2D+Celebration+Vibrationのページで、表示されているタグのうち、「Ya△ma , Yama, Donuts, Flower Of Life」のどれを押してもタグに関連づけられたページが表示されず、リストが空白になってしまいます。何か対処法はありませんでしょうか? - zedosho (2007年10月16日 23時12分09秒)
  • TAGプラグイン指定でパラメータをカンマ区切りで複数指定されていますが、カンマの後にブランクが入っているのが原因でしょう。 - KG (2007年10月16日 23時46分38秒)
  • >KGさん。そのとおりでした。すばやい対応ありがとうございます。無事動作を確認することが出来ました。 - zedosho (2007年10月17日 00時13分46秒)
  • タグがないのにtag_cloudを使うとエラーページになります? - せのじ (2008年09月16日 06時43分08秒)
  • インストールしましたが、エラーメッセージが出力されてしまいます。「Can't use an undefined value as an ARRAY reference at plugin/tagcloud/TagCache.pm line 107. 」perlの知識がないため問題となっている箇所がわからないです…。fswikiのバージョンは3.6.3です。このプラグインを使用したいので対応方法をご教授いただけませんでしょうか? - digi (2009年08月18日 12時34分40秒)
  • ご指摘のエラーが当方でも再現しました。次のパッチ TagCache.pm.diff(350) のように plugin/tagcloud/TagCache.pm を変更すると動くようです(細かい動作までは確認していませんが)。変更内容は、「tag プラグイン抽出用正規表現の $1 の閉じ括弧 ')' の位置を、プラグイン閉じ括弧 '}}' の直前から直後へ移動する」というものです。 - 菜梨 (2009年08月18日 18時22分31秒)
--- TagCache.pm.orig	2007-04-18 01:14:45.000000000 +0900
+++ TagCache.pm	2009-08-18 17:56:13.000000000 +0900
@@ -102,7 +102,7 @@ sub get_page_category {
 	my @tag;
 	foreach my $line (split(/\n/,$source)){
 		if(index($line," ")!=0 && index($line,"\t")!=0 && index($line,"//")!=0){
-			while($line =~ /{{(tag\s+(.+?)\s*)}}/g){
+			while($line =~ /{{(tag\s+(.+?)\s*}})/g){
 				my $inline = $wiki->parse_inline_plugin($1);
 				if(@{$inline->{args}} > 1 and $inline->{args}->[-1] eq 'nolink'){
 					pop @{$inline->{args}};
  • これは、Wiki::parse_inline_plugin() に与える引数の仕様が FSWiki 3.6.2 と FSWiki 3.6.3 の間で変更されたことが原因です。FSWiki の両バージョンについて、lib/Wiki/Parser.pm の中での Wiki::parse_inline_plugin() の使用例を比較してみると仕様の違いがよく分かります。 - 菜梨 (2009年08月18日 18時33分25秒)

FSWiki 3.6.2 の lib/Wiki/Parser.pm での Wiki::parse_inline_plugin() の使用例

84         # パラグラフプラグイン
85         if($line =~ /^{{((.|\s)+?)}}$/){
86             my $plugin = $self->{wiki}->parse_inline_plugin($1);

FSWiki 3.6.3 の lib/Wiki/Parser.pm での Wiki::parse_inline_plugin() の使用例

84         # パラグラフプラグイン
85         if($line =~ /^{{(.+}})$/){
86             if(!$self->{block}){
87                 my $plugin = $self->{wiki}->parse_inline_plugin($1);
  • 菜梨さん、早急に確認していただきありがとうございます。教えていただいた通り修正したところエラーなく使用できるようになりました。FSWiki 3.6.2 と FSWiki 3.6.3 間での引数の仕様変更が影響していたのですね。 - digi (2009年08月19日 12時16分28秒)
  • tagcloudの存在意義についてですが、categoryプラグインと何度比較しても、タグリストを表示させる個数を指定できるかどうかって所とCSSで文字の大きさを変更可能という事以外に何かありますでしょうか。全部のページにタグ付けorカテゴリ登録してゆく際、どちらを使うか迷っています。 - ななし (2010年02月11日 18時06分05秒)
  • すいません、存在意義と言うか便利さを知りたいのですが・・・ - ななし (2010年02月11日 18時07分21秒)
  • > タグリストを表示させる個数を指定できるかどうかって所とCSSで文字の大きさを変更可能という事以外に何かありますでしょうか。
    • それ以外ないんじゃないでしょうか。というか、それこそが存在意義では。 - 名無しさん (2010年02月11日 19時14分49秒)
  • > 全部のページにタグ付けorカテゴリ登録してゆく際、どちらを使うか迷っています。
    • なんだったら両方書けばいいんじゃないでしょうか。私はそうしてました。 - 名無しさん (2010年02月11日 19時16分22秒)
  • なるほどですねーそうゆうなんですね。ダメ元でついでにお尋ねしたいのですが、ページの名前を考える際、ページ名を「東京」「大阪」「Japan」という名前があったとして、wikinameを意識しますとそのままの名称で作成しますが、それぞれの名前の前に数字を入れたいような場合、例えば 「[01] 大阪」「[02] 東京」「[03] JAPAN」とした場合は、WikiNameで文字列「東京」では、自動リンクされない為、仕方なしに「東京」や「JAPAN」でページを作成するんですが、tagcloudeやcategoryで特定の項目でリスト表示したい場合、別名とかの名称で、例えば「東京」「大阪」だったのを「[01]大阪」「[02]東京」「[03]JAPAN」というように表示させる事って無理なんでしょうか・・・。titleプラグイン辺りで別名とか設定できるのを発見しましたが、tagcloudeやcategoryプラグインとの関連はされていないようだったので、頭悩ませてるんですが、ご存知でしたらご教授願えませんでしょうか - ななし (2010年02月12日 15時08分37秒)
  • 改造しないと無理なんじゃないでしょうか。改造自体はそんなに難しそうじゃないのでご自分でお考えください。 - 名無しさん (2010年02月13日 02時54分27秒)
お名前: コメント:
TagCache.pm.diff tagcloud.zip

最終更新時間:2010年02月13日 02時54分27秒