Blosxom Plugin : tagging
読了まで:約8分
前のエントリ [[改造済み tagging を書き直し中。]] で書き直していると言っていた tagging ですが、完成しました。なので公開しますというエントリ。
はっきり言って、長い。
追記 ([2009-02-10 T17:35:00+09:00)]
もう作ってから二年以上も経ってますが、この tagging は僕が Perl 初心者の頃に作った代物なので、わけの分からないことをしている部分があったり、おかしな処理をしている所があるので、今現在使用する事はオススメできません。
blosxom で tagging するプラグインに関しては、mizzy さんのオリジナルか、海外の方が作られた tagging を使うことをオススメします。
あと微妙に書き直してたりもするんですが、現在放置中なため、完成の目処は立っていません。まあ書き直し版については完成したときに coderepos 辺りで公開しようと考えていますが、あんまりアテにしないでください><
これは何か
- mizzy さんが作られた Blosxom のプラグイン tagging の開発を引き継ぎ、色々と機能を追加したものです。
主な機能
この tagging の主な機能は
- エントリのタグ付け(tagging 機能)
- タグベースのマルチカテゴリ機能(タグバンドル機能)
- すでにあるディレクトリベースのカテゴリをタグとみなす機能
- タグクラウド/各種リストの生成
です。
ダウンロード
ダウンロードは以下からできます。ファイル名にバージョン番号がついているので、ダウンロードしたらファイル名を tagging に変更してください。
Download : tagging
導入
tagging プラグイン(以下 tagging)を使うには _ meta プラグインが必要です_ 。meta プラグインを導入していない方は meta プラグインを導入してください。
はじめて tagging を導入する という方はそのまま $blosxom::plugin_dir
以下に配置すれば使えます。
現在 mizzy さんの tagging を導入している という場合、そのまま入れ替えるだけで動作はします。ただ _ flavour で使える変数名を一部変更している_ ため、そのままだと表示されないものが出てきます。正確には $tagging::list
が $tagging::tag_list
になります。
あと出力も一部変更しているので、そのあたりも注意が必要です。
設定
設定は以下の 9 項目です。
$meta_prefix
meta プラグインの$meta_prefix
と同じ値の設定します。同じ値にしないとうまく動きません。
$charset
xmlHttpRequest
から利用する際の文字コードを指定します。Ajax 関連の設定なので利用しない方はエントリの文字コードを指定しておくといいかもしれません。
$xhtml_or_html
各種リストを生成する際、XHTML で出力するか HTML で出力するかの設定です。1
なら XHTML で、 0
なら HTML で出力されます。
$aliases
カテゴリの別名を設定します。以下はサンプルです。
my $aliases = {
'blosxom' => 'Blosxom' ,
'coding' => 'Coding' ,
'internet' => 'Internet' ,
'miscellaneous' => 'Miscellaneous' ,
'software' => 'Software' ,
'webdesign' => 'Web Design' ,
'others' => 'Others' ,
};
$tag_bundles
タグがどのカテゴリに属するかを指定します。 blosxom というカテゴリでアクセスしたときに、 blosxom , flavour というタグをつけられたエントリを表示したい場合、
# 半角シャープで始まる行はコメントです。
my $tag_bundles = {
# カテゴリ名 : blosxom
'blosxom' => [
'blosxom', # タグ : blosxom
'flavour', # タグ : flavour
],
};
と指定します。
若干分かりにくいですが、以下の例のように指定してください。タグは複数のカテゴリに属することができます。なお、ここでタグがどのカテゴリに属するか指定しないと、自動的に others と言うカテゴリに属することになります。
my $tag_bundles = {
# blosxomに属するタグ
'blosxom' => [
'blosxom' ,
'flavour' ,
],
# codingに属するタグ
'coding' => [
'html',
'rss',
'css',
'javascript',
'perl',
],
};
$tag_bundles $tags2files_file $files2tags_file $categories2tagslist_file
各キャッシュファイルのファイル名を設定します。ほとんどの場合、そのままで大丈夫です。
タグの指定/追加と削除
タグの指定
エントリのタグを指定するには、エントリファイルで
エントリのタイトル
meta-tags: blosxom,flavour,html,css
エントリの本文
エントリの本文
エントリの本文
エントリの本文
上記の
meta-tags: blosxom,flavour,html,css
のようにタグを指定します。上記の場合 blosxom , flavour , html , css というタグが設定されます。
また、すでにあるディレクトリベースのカテゴリをタグとして認識する機能もあるので、
例えば、
<http://yourdomain/blosxom.cgi/blosxom/flavour/about-flavour.html http://yourdomain/blosxom.cgi/blosxom/flavour/about-flavour.html>
のような URI を持つエントリ about-flavour.html
は blosxom , flavour というタグを持つことになります。
タグの追加/削除
新しいエントリを投稿したときや、タグを追加、または削除した場合、タグに関するキャッシュを再構築する必要があります。
再構築といってもやることは簡単で、
<http://yourdomain/blosxom.cgi?recache_tags=1 http://yourdomain/blosxom.cgi?recache_tags=1>
にアクセスするだけです。
そのときに、必ず blosxom のトップに ?recache_tags=1
をつけてアクセスして下さい。そうしないと、キャッシュが正しく構築されません。
flavour で使用可能な変数
変数一覧
flavour で使用できる変数は以下の通りです。
$tagging::tag_list
タグリストを出力します。mizzy さんの tagging の $tagging::list
に相当します。
$tagging::category_list
カテゴリリストを出力します。カテゴリの一覧には $tag_bundles
で指定されたカテゴリが使用されます。
$tagging::bundle_list
カテゴリとそれに属するタグが出力されます。どのタグがどのカテゴリに属するかは $tag_bundles
で設定します。
$tagging::tagcloud
タグクラウドを出力します。文字の大きさや色については、CSS で指定してください。
$tagging::current_tag
タグによってエントリを絞り込んでいる場合、絞り込んでいるタグを出力します。
例えば /blosxom.cgi?tag=blosxom
でアクセスした場合、blosxom
が出力されます。
$tagging::current_cat
カテゴリによってエントリを絞り込んでいる場合、絞り込んでいるカテゴリを出力します。
例えば /blosxom.cgi?category=coding
でアクセスした場合、coding
が出力されます。
$tagging::related_tags
タグの絞込みのリストを出力します。
$tagging::find_tag
パラメータfind_tag
で指定されたタグを、$charset
で指定された文字コードで出力します。
例えば /blosxom.cgi?find_tag=blosxom
とした場合、blosxom
が $charset
で指定された文字コードで出力されます。
Ajax から利用すると思われるので、普通はあまり使いません。
$tagging::tags_in_this
現在のエントリのタグ一覧を出力します。story フレーバーでのみ使用できます。
$tagging::categories_in_this
現在のエントリのカテゴリ一覧を出力します。story フレーバーでのみ使用できます。
$tagging::dc_subject
現在のエントリのカテゴリ一覧を RSS で利用できる形式(<dc:subject>
タグ)で出力します。story フレーバーでのみ使用できます。
デザインに関する補足
表示のカスタマイズは CSS で行ってください。タグクラウドに関しても、CSS で文字の大きさや色を設定してください。
タグクラウドはリスト(<ul>
)で出力され、タグ一つ一つ( <li>
)にlevel1
のようなクラスが設定されます。level
は 1-20 までです。
以下はタグクラウドに関する CSS の設定例です。
/* tagcloud */
ul.tagcloud li.level1 { font-size : 0.8em ; }
ul.tagcloud li.level2 { font-size : 1.0em ; }
ul.tagcloud li.level3 { font-size : 1.2em ; }
ul.tagcloud li.level4 { font-size : 1.4em ; }
ul.tagcloud li.level5 { font-size : 1.6em ; }
ul.tagcloud li.level6 { font-size : 1.8em ; }
ul.tagcloud li.level7 { font-size : 2.0em ; }
ul.tagcloud li.level8 { font-size : 2.2em ; }
ul.tagcloud li.level9 { font-size : 2.4em ; }
ul.tagcloud li.level10 { font-size : 2.6em ; }
ul.tagcloud li.level11 { font-size : 2.8em ; }
ul.tagcloud li.level12 { font-size : 3.0em ; }
ul.tagcloud li.level13 { font-size : 3.2em ; }
ul.tagcloud li.level14 { font-size : 3.4em ; }
ul.tagcloud li.level15 { font-size : 3.6em ; }
ul.tagcloud li.level16 { font-size : 3.8em ; }
ul.tagcloud li.level17 { font-size : 4.0em ; }
ul.tagcloud li.level18 { font-size : 4.2em ; }
ul.tagcloud li.level19 { font-size : 4.4em ; }
ul.tagcloud li.level20 { font-size : 4.6em ; }
ライセンス
ライセンスは tagging の下のほうにも書いてありますが、blosxom と同じ MIT License です。
英語本文は <https://www.opensource.org/licenses/mit-license.php https://www.opensource.org/licenses/mit-license.php> を、日本語訳については <https://ja.osdn.net/projects/opensource/wiki/licenses%2FMIT_license https://ja.osdn.net/projects/opensource/wiki/licenses%2FMIT_license> を参考にしてください。
このライセンスに従う限り、改造や再配布は自由です。
要望やバグ報告、質問について
要望、バグ、質問がある場合、コメントやトラックバック、メールなどでお知らせください。なるべく、答えるようにします。
分かりやすく答えるようにはしますが、必ずしもわかりやすいとは限らないので、その辺は了承してください。
おまけ
ようやく書き終った。長いのは仕様です、というか短くできない。ちなみにこの tagging プラグイン、blosxom 本体よりも長いです。1000 行超えてますよこれ。とにかくお待たせしました。どうぞご利用ください。
……エントリ書くのに二日かかってるってどう言う事だよ。