iso tank 2006年 01月

変なblosxomプラグインのようなモノが

blosxom.cgiをいじくりながらPerlのお勉強をしてるですよ?(∵)ノ

$path_info =~ s!(^/*)|(/*$)!!g;

いわゆる文字列の置換なんだけど、$path_infoの先頭と末尾に/(スラッシュ)があったら 前後のスラッシュのみを無くす、という処理であってるかな?、、、かな?

真ん中が||(比較演算子)じゃなくて|(ビット演算子)なのはなぜかなーとか思ったんだけど、もしかすると

$path_info =~ s!(^/*)||(/*$)!!g;

とかの場合、左辺が真の場合は右辺を評価しないので、先頭にスラッシュがあれば末尾のスラッシュは無視される、のかな?

一方、真ん中が棒いっぽんの場合はビット単位で両辺を比較してどちらかが1(つまり真)である部分を返す、ということは、 マッチした先頭と末尾のスラッシュがまとめて置換されて

/path_info/ → path_info

ということになるのだろうか??

誰かおしえてーー┌| ∵|┘

んとですね、結局どういうことかというと、つまりこのHPの最下部に「RSS」へのリンクがあるわけですよ、 RSSとは言わずもがななんかRSSリーダーとかで読み取ったりして更新をチェックしたり、はたまたmixiと連携したりするシロモノです、

このRSSのURL、実はblosxomのプログラムを利用して

$url/index.rss

などと当初は書いておったのです、こうするとプログラムの変数が出力されて

http://iso.tank.jp/index.rss

となるわけですよ?、

最初はコレで満足しておったわけですが、なんかカテゴリ毎のRSSも出力できるとかできないとかいうことに気づいてしまいました、 つまりhttp://iso.tank.jp/game/moe/index.rssへリンクするとMoEに関する記事のみ購読できるようになったり http://iso.tank.jp/blosxom/index.rssだとblosxomに関する記事のみ読み取れたりするのです!、

ウオオコリャスゲエエェってことで早速rssを吐き出す部分を下記のように書き換えてみたところ、

$url$path_info/index.rss

 => http://iso.tank.jp/blogblosxom/index.rss(URLの「blog」とカテゴリ名がくっつく)

$url/$path_info/index.rss

 => http://iso.tank.jp/blog//index.rss(メインページのRSSのスラッシュが二重になる)

つまり、我ダサスギ也ということでございます

解決方法は実は色々いっぱいあるのです、例えば記事ディレクトリ直下のフレーバー(テンプレート)には「$url/index.rss」って書いて、 さらに各カテゴリのディレクトリにもフレーバーを作ってそこには「$url/$path_info/index.rss」とでも書いてちゃって、さらにさらに個別記事用のフレーバーには 「$url/$path/index.rss」とでも書いておけばそこはかとなく解決する代物だし、もしくはblosxom.cgi本体を直接いじっちゃって$path_infoの左端に/(スラッシュ) を入れた関数でもでっちあげちゃえば別にそれで完成なんじゃない? とか、とか、

しかしなんか色んなことをボヘーっと考えながら昼休み中blosxom.cgiを見つめていたら、 いつのまにか変なモノができあがった

あれ、これプラグイン? のようなモノ、え?なに?初めてプラグインらしきものができあがっちゃいましたよ?

ていうかいいのかコレ?

ウーン、、、勢いで作っちゃったけど、素直にフレーバーで対応したほうがいいような気がする、、、└|∵ |┐

foreshortenedプラグイン改造#2

はいはいチラシの裏チラシの裏、前回のforeshortenedプラグイン改造に自分自身納得いかず、性懲りも無くまた改造です、仕事しろ、え、

煤 - Noteさんの記事を参考にしながら、 まずは"meta"情報として「excerpt」の記述があった場合、その行の文章をそのまま使用するようにしました、ちなみに"Excerpt"ていうのは「抜粋」とかいう意味です、 つまり自分で書いた要約文があればそれを使えコラーってことですね、

次に、うっかり一行目に画像を載せちゃった場合は"(画像)"の文字とともにALTの内容を書き出すようにしてみました、ほんで、末尾の句読点を消して「...」を表示するようにしてみました、

あとrss用の要約文を生成する場合、タグはやっぱり全部消しておくことにしました、

なんかおもちゃみたいな使い方しかできてないような気がする、、、(∵ )