iso tank - blosxom

【blosxom】Perlタコの弱音

つまり、つまり変数の末尾語というか、そういうモンがあると若干楽いんですよ!Σp(∵ )

〜 sub_interpolateなブ・ブ・ン 〜

s/(\$\w+(?:::)?\w*)/"defined $1 ? $1 : ''"/gee;

s/%(\$\w+(?:::)?\w*)%/"defined $1 ? $1 : ''"/gee;

忘れてください

変な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用の要約文を生成する場合、タグはやっぱり全部消しておくことにしました、

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

foreshortenedプラグイン改造

わたくし的メモも兼ねて、、

以前にも書いたとおりそしてこのサイトの最下部にもありますとおり、このサイトを構成するプログラムは"blosxom"なのですが、 このプログラム自体は必要最低限の機能しか持ち合わせていないため、他の機能は小さなプログラム群である「プラグイン」で補うか、またはblosxom本体を直接いじるかのどちらかになります、大抵の場合はプラグインで解決します

で、

上記プラグインの中に、記事の要約のようなものを生成するforeshortenedプラグイン というものがありまして、サイトのトップにある記事のタイトル以下の 本文の要約は、このプラグインによって生成されていたりします、

このforeshortenedプラグイン、本来のプログラムは非常に単純なもので、本文のデータからタグ要素を全て取り除いて、一番最初にあらわれるピリオドまたは「!」や「?」等、文章の末端となる文字以降をすべて消す、という 割と簡単なPerlの基本的な文字列操作だけで作られていたりします、

が、まず日本語にあわせて句点(。)で切るようにしなければならないという問題がひとつ、それとそもそもわたくしの文章は句点めったに使わないという問題がひとつ、、、

さてどうしましょうか、、、読点(、)で切るようにしたらすげえわけわかんないくらい短い要約になっちゃったし、、、

と、いうわけで、一個目の</p>タグ、つまり段落の終わりで切るという手段に打って出ることにしました、もはやこの時点でまったく別物のプログラムとなってオリマス(∵) さらには要約を生成するにあたって別にHTMLタグ消さなくてもいいんじゃないかなと思い、タグは特に消さないようにプログラムを訂正、そして<img>などの終了タグが存在しないタグは、rssを生成する際xhtmlなカンジになるよう タグの末尾を" />"と置き換える別途コードを追加したりもする、もはや原型を(∵)トドメテオリマセン!

foreshortenedプラグインの作者さんには自分の都合の良いように改変しまくってしまったことを反省し頭を下げつつ、へーPerlってこうなってるんだーふーんへーほーとかPerlの参考書をめくりつつ けっこうな勉強になったことに感謝を覚えつつ、おやすみなさい(∵)ノシ

blosxomテクニカルノート(一)

ココのサイトの一番下に「Powered by "blosxom"(ブロッサム)」と書いてあるように、このblogは"blosxom"(ブロッサム)というblogプログラムで作られています、ここで軽くこのblosxomの使い勝手と面白さにちょっと触れてみようかと

このプログラムそのものはとてつもなシンプル(ファイルサイズ:約17KB)にできております、メインの動作は以下(わたくしの考えとしては):

  • ある拡張子のテキストで構成されたファイルを「記事」として読み込み、HTMLを生成・出力する
  • そのファイルの更新日時を取得し、年月日・日付ごとに分類し日時順で整理する
  • 記事を入れるデータフォルダ以下に作成されたフォルダを「カテゴリー」として認識する
  • RSSを生成・出力する

このあたりがメインの機能なのかなーと、そう思ってオリアス

記事に対してコメントをつけることもできないしトラックバック送受信機能もありません、つまり、本当の意味でその人個人がWebをLogする最低限の機能しか持ち合わせていないプログラムということになるかなと

ですがこの「標準実装」だけでけっこう遊べる機能があったりします、

お気づきといいますかわかってることとは思いますが、このHPのURL、つまり http://iso.tank.jp の下に日付やカテゴリ名を追加することで「絞り込み検索」っぽいことが可能なのです、

試しにhttp://iso.tank.jpの下に「/hana」とか「/mixi」とか入れてみましょう、すると各カテゴリに絞り込まれた記事だけが表示されることであろうと思われます

次に、今度はhttp://iso.tank.jpの下に「/2004/10」とか「/2005/07」とか入力します、すると各月に絞り込まれた記事だけが表示されます、

さらにこの両方を組み合わせ、、

http://iso.tank.jp/カテゴリ名(hanaとかmixiとか)/年(2004とか)/月(2桁)

上のように入力することで、指定した月のそのカテゴリの日記だけを絞り込むことができるのです!

、、、ふつーはマウスでカチカチやって右のメニュークリックとかしていただけると思うのであんまり意味ないかと思われるけど、、、

でも、でも! Typicalな人にはけっこう使える! かも、、、かもしれないのですわかってそこんとこ!!

、、、ま、いずれにしてもココのような駄ブログじゃ使い道もねーけどな、、、

しかし、うまくつかえばキレーに情報を整理できるっぽいです、マジメな話

たとえばある一定の趣味に関しての情報を集めた(WebをLogった)ブログを作り、それをさらに細かく分類・整理する、とか、例えば何かドコカ何某かの更新情報をログったりとかに使うとか、

または、新たなカテゴリーを作成して中にブログとはまったく関係ないコンテンツ(プロフィールのページとか、お友達のリンクへのページとかね)を入れることで、ブログの中にブログ以外のコンテンツを包括させる、なんてこともできちゃうっす

いやー、おもしろいね!!(あたくしひとりで)

ちなみにタイトルに(一)って入れたけど、2があるかは不明であり霧と深淵と妄想の心穏やかなる平原の中