2008-04-22 Tue

chalow で rel-tag に対応するための覚え書き はてぶ

以前,とりあえずの rel-tag 対応として,
カテゴリページへのリンクに

rel="tag"


をつけるように chalow を書き換えた [2007-12-11-3] が,
これだけでは不十分なので,それを解消するための覚え書き.

microformats の rel-tag は,
リンク先 URL の最後の単語をタグとして認識する.

http://www.ftnk.jp/~fumi/cl/Chalow


のような URL なら,Chalow がタグとして認識されるが

http://www.ftnk.jp/~fumi/cl/clsearch.cgi?key=cat%3AChalow


のような URL では,clsearch.cgi がタグとして認識されてしまう.

それなので,chalow で生成する HTML の各カテゴリのリンクを

http://www.ftnk.jp/~fumi/cl/Chalow


のようにして,Apache 側で

RewriteRule ^([^\.]+)$ /~fumi/cl/clsearch.cgi?cat=$1


のような感じでリライトさせればよさそう.

chalow の書き換えはたいしたことないけど,
見た目を整えるために clsearch.cgi もいじろうと思うと時間がかかりそう.

- rel-tag-ja - Microformats
  http://microformats.org/wiki/rel-tag-ja

2007-12-11 Tue

chalow を microformats に対応 - rel-tag はてぶ

各記事のタグ情報を示す microformats,rel-tag を chalow で使えるようにする.

この記事なら,

chalow を microformats に対応 - rel-tag [Chalow][microformats]


の "[]" で囲われた Chalow と microformats の部分のリンクに
rel="tag" をつければいいので,chalow を次のように書き換える.

--- /usr/bin/chalow~	2006-10-10 05:36:46.000000000 +0900
+++ /usr/bin/chalow	2007-12-11 23:11:28.000000000 +0900
@@ -1446,7 +1451,7 @@
 	if ($output_cat_pages) {
 	    $catstr =
 		join("", map
-		     {"[<a href=\"".get_category_filename($_)."\">$_</a>]"}
+		     {"[<a href=\"".get_category_filename($_)."\" rel=\"tag\">$_</a>]"}
 		     @$catp);
 	} elsif ($cat_page_cgi eq "") {
 	    $catstr = join("", map {"[".$_."]"} @$catp);


これで,Firefox の Tails 拡張などで確認すると,
各 hAtom にタグ情報として表示される.

(追記)
上の変更だけでは,アイテムページでタグが重複してしまうので,
アイテムページのテンプレートを変えるなりする必要がある.

関連
- rel-tag - Microformats
  http://microformats.org/wiki/rel-tag
- chalow を hAtom に対応させる [2007-12-09-1]

Referrer (Inside):
[2008-04-22-5] chalow で rel-tag に対応するための覚え書き

2007-12-09 Sun

chalow を hAtom に対応させる はてぶ

LDRize に対応させたら便利かな,くらいの気持ちで始めた
chalow の hAtom 対応のまとめ.

1. chalow 本体の書き換え

hAtom では ISO8601形式の時刻が必要なので,
template で ISO8601形式の時刻を使えるように変更する必要があります.

RSS で ISO8601形式の時刻を使用するので,$dcdate という変数に保存されています.
これをテンプレートへ渡すようにします.

--- /usr/bin/chalow~	2006-10-10 05:36:46.000000000 +0900
+++ /usr/bin/chalow	2007-12-05 22:46:09.000000000 +0900
@@ -691,6 +691,7 @@
             $t->param(cl_name => $changelog_name);
             $t->param(css_file => $css_file);
             $t->param(lastupdate => $what_time_is_it_now);
+            $t->param(dcdate => $dcdate);
             $t->param(signature => $signature);

             $t->param(cat_name => $catname);
@@ -777,6 +778,7 @@
 	    $t->param(cl_name => $changelog_name);
 	    $t->param(css_file => $css_file);
 	    $t->param(lastupdate => $what_time_is_it_now);
+            $t->param(dcdate => $dcdate);
 	    $t->param(signature => $signature);

 	    $t->param(ymd => $ymd);
@@ -834,6 +836,7 @@
 	$t->param(cl_name => $changelog_name);
 	$t->param(css_file => $css_file);
 	$t->param(lastupdate => $what_time_is_it_now);
+	$t->param(dcdate => $dcdate);
 	$t->param(signature => $signature);

 	$t->param(ymd => $ymd);
@@ -887,6 +890,7 @@
 	$t->param(cl_name => $changelog_name);
 	$t->param(css_file => $css_file);
 	$t->param(lastupdate => $what_time_is_it_now);
+	$t->param(dcdate => $dcdate);
 	$t->param(signature => $signature);

 	$t->param(ym => $ym);
@@ -932,6 +936,7 @@
     $t->param(cl_name => $changelog_name);
     $t->param(css_file => $css_file);
     $t->param(lastupdate => $what_time_is_it_now);
+    $t->param(dcdate => $dcdate);
     $t->param(signature => $signature);

     $t->param(ymd => $ymd);	# 最新エントリの日付


2. テンプレートの編集
2.1 アイテムのテンプレートの編集

index.html や 月別のページなど複数のアイテムがあるページ用に
アイテムのテンプレートを編集します.

1. entry を <div class="section hentry"> ... </div> で囲む
2. entry のタイトルを <div class="entry-title"> ... </div> で囲む
3. entry の本文を <div class="entry-content"> ... </div> で囲む
4. permalink に rel="bookmark" をつける

2.2 各ページのテンプレートの更新時間部分

各ページのテンプレート共通の変更.

<p>最終更新時間: <TMPL_VAR name=lastupdate></p>



<p>最終更新時間: <abbr class="updated" title="<TMPL_VAR name=dcdate>">
<TMPL_VAR name=lastupdate></abbr>
By <span class="vcard author"><span class="fn">ftnk</span></p>


2.3 アイテムページの編集

1. <div class="day"> を <div class="day hentry"> に変更
2. <TMPL_VAR name=header> を <div class="entry-title"> で囲む
3. <div class="section"> を <div class="section entry-content"> に変更
4. permalink に rel="bookmark" をつける

以上で,最低限の hAtom 化は完了.

- ちょっとだけ LDRize に対応 [2007-11-28-2]
- ちょっとだけ LDRize に対応 2 [2007-12-03-2]
- ちょっとだけ LDRize に対応 3 [2007-12-04-2]
- ちょっとだけ LDRize に対応 4 [2007-12-05-1]
- ちょっとだけ LDRize に対応 5 [2007-12-06-1]

Referrer (Inside):
[2007-12-13-1] たつをさんに捕捉された
[2007-12-11-3] chalow を microformats に対応 - rel-tag

2007-12-06 Thu

ちょっとだけ LDRize に対応 5 はてぶ

また otsune さんにコメントされた
アイテムページ(個別ページ)が hAtom になっていなかった件.

アイテムページのテンプレートを変更せずに,
item のテンプレート(複数 item を持つページでの item のテンプレート)だけを
変更していたため,アイテムページは hAtom 化していなかったので,
アイテムページのテンプレートを変更して対応.

1. <div class="day"> を <div class="day hentry"> に変更
2. <TMPL_VAR name=header> を <div class="entry-title"> で囲む
3. <div class="section"> を <div class="section entry-content"> に変更
4. permalink に rel="bookmark" をつける

これで,chalow の hAtom 化は大丈夫なら,週末にでもまとめなおす.

- ちょっとだけ LDRize に対応 [2007-11-28-2]
- ちょっとだけ LDRize に対応 2 [2007-12-03-2]
- ちょっとだけ LDRize に対応 3 [2007-12-04-2]
- ちょっとだけ LDRize に対応 4 [2007-12-05-1]

Referrer (Inside):
[2007-12-09-1] chalow を hAtom に対応させる

2007-12-05 Wed

ちょっとだけ LDRize に対応 4 はてぶ

ちょっとだけですまなくなってしまいましたが,続き.

今日の課題は
はてぶで otsune さんに

hAtomはISO8601形式の"updated"とhCardな"author"がrequired(必須)だから、ちょっと足りない
とコメントされた件.

まずは ISO8601 形式の時間を扱うために chalow に手を入れる.

feed で使うために JST な ISO8601 形式の時間が $dcdate という変数に
保存されているので,これを html の生成時に渡してやれば,
template で ISO8601 形式の時間を使える.

--- /usr/bin/chalow~	2006-10-10 05:36:46.000000000 +0900
+++ /usr/bin/chalow	2007-12-05 22:46:09.000000000 +0900
@@ -691,6 +691,7 @@
             $t->param(cl_name => $changelog_name);
             $t->param(css_file => $css_file);
             $t->param(lastupdate => $what_time_is_it_now);
+            $t->param(dcdate => $dcdate);
             $t->param(signature => $signature);

             $t->param(cat_name => $catname);
@@ -777,6 +778,7 @@
 	    $t->param(cl_name => $changelog_name);
 	    $t->param(css_file => $css_file);
 	    $t->param(lastupdate => $what_time_is_it_now);
+            $t->param(dcdate => $dcdate);
 	    $t->param(signature => $signature);

 	    $t->param(ymd => $ymd);
@@ -834,6 +836,7 @@
 	$t->param(cl_name => $changelog_name);
 	$t->param(css_file => $css_file);
 	$t->param(lastupdate => $what_time_is_it_now);
+	$t->param(dcdate => $dcdate);
 	$t->param(signature => $signature);

 	$t->param(ymd => $ymd);
@@ -887,6 +890,7 @@
 	$t->param(cl_name => $changelog_name);
 	$t->param(css_file => $css_file);
 	$t->param(lastupdate => $what_time_is_it_now);
+	$t->param(dcdate => $dcdate);
 	$t->param(signature => $signature);

 	$t->param(ym => $ym);
@@ -932,6 +936,7 @@
     $t->param(cl_name => $changelog_name);
     $t->param(css_file => $css_file);
     $t->param(lastupdate => $what_time_is_it_now);
+    $t->param(dcdate => $dcdate);
     $t->param(signature => $signature);

     $t->param(ymd => $ymd);	# 最新エントリの日付




template の編集

各ページのテンプレートの更新時間部分

<p>最終更新時間: <TMPL_VAR name=lastupdate></p>



<p>最終更新時間: <abbr class="updated" title="<TMPL_VAR name=dcdate>">
<TMPL_VAR name=lastupdate></abbr>
By <span class="vcard author"><span class="fn">ftnk</span></p>


のように変更.

以上で,大丈夫だと思うんだけど,一度,時間をとって
- hatom - Microformats
  http://microformats.org/wiki/hatom#Entry_Updated
を読んだほうがいい.

- ちょっとだけ LDRize に対応 [2007-11-28-2]
- ちょっとだけ LDRize に対応 2 [2007-12-03-2]
- ちょっとだけ LDRize に対応 3 [2007-12-04-2]

Referrer (Inside):
[2007-12-09-1] chalow を hAtom に対応させる
[2007-12-06-1] ちょっとだけ LDRize に対応 5
[2007-12-04-2] ちょっとだけ LDRize に対応 3

2007-12-04 Tue

ちょっとだけ LDRize に対応 3 はてぶ

LDRize 対応はやっておいたら便利だし,ちょうど otsune さんの
- 「LDRizeのxFolk対応」と「カトゆー家断絶テストページやfooo.nameがxFolk化」が合わさるだけで、いろんなWebページがものすごく便利になるのもmicroformatsの大きな利点のひとつ
  http://www.otsune.com/diary/2007/11/08/1.html#200711081
を見たのでやってみたんですが,microfomats でも
- xfolk; bookmark 用
- hatom: blog 用
ということなので,hatom に変更してみました.

やったことは,
1. entry を <div class="section hentry"> ... </div> で囲む
2. entry のタイトルを <div class="entry-title"> ... </div> で囲む
3. entry の本文を <div class="entry-content"> ... </div> で囲む
4. permalink に rel="bookmark" をつける

一応,microformats を表示する Tails という Firefox 拡張で,
blog posts として認識されることを確認.

- xFolk って自分のブログに付けるものなのかな? - Study - Forest.Kの徒然日記
  http://blog.livedoor.jp/forestk/archives/50387860.html
- xfolk - Microformats
  http://microformats.org/wiki/xfolk
- hatom - Microformats
  http://microformats.org/wiki/hatom
- ちょっとだけ LDRize に対応 2 [2007-12-03-2]
- ちょっとだけ LDRize に対応 [2007-11-28-2]

(追記)
はてぶで otsune さんに

hAtomはISO8601形式の"updated"とhCardな"author"がrequired(必須)だから、ちょっと足りない
とコメントされているので,あとで追加([2007-12-05-1] で追加).

Referrer (Inside):
[2007-12-09-1] chalow を hAtom に対応させる
[2007-12-06-1] ちょっとだけ LDRize に対応 5
[2007-12-05-1] ちょっとだけ LDRize に対応 4

2007-12-03 Mon

ちょっとだけ LDRize に対応 2 はてぶ

[2007-11-28-2] の「ちょっとだけ LDRize に対応」に,
otsune さんがはてぶ

これはdiv class="section xfolkentry" でOk。あとpermalinkにtaggedlinkが必要
とコメントされていたので直してみました.otsune さん,ありがとうございます.

# item のテンプレート
$item_template = << "EACHITEM"
<!-- start:<TMPL_VAR name=ymdi> -->
<div class="section xfolkentry">
    :
    :
    :
<a class="taggedlink" href="<TMPL_VAR name=url>">固定リンク</a> |
<a href='./kuttukibbs.cgi?id=<TMPL_VAR name=ymdi>'>コメント</a>
]</div>
<div class="commentshort">
<script language="JavaScript" type="text/javascript"
 src="kblog/<TMPL_VAR name=ymdi>.js"></script>
</div>
</div>
	<!--<TMPL_VAR name=id>-->
</div>
<!-- end:<TMPL_VAR name=ymdi> -->
<!-- ReplaceOnce -->
EACHITEM


元のテンプレートからは,

<div class="section">



<div class="section xfolkentry">


に変更し,

<a href="<TMPL_VAR name=url>">固定リンク</a> |



<a class="taggedlink" href="<TMPL_VAR name=url>">固定リンク</a> |


に変更しています.

Referrer (Inside):
[2007-12-09-1] chalow を hAtom に対応させる
[2007-12-06-1] ちょっとだけ LDRize に対応 5
[2007-12-05-1] ちょっとだけ LDRize に対応 4
[2007-12-04-2] ちょっとだけ LDRize に対応 3

2007-11-28 Wed

ちょっとだけ LDRize に対応 はてぶ

- 「LDRizeのxFolk対応」と「カトゆー家断絶テストページやfooo.nameがxFolk化」が合わさるだけで、いろんなWebページがものすごく便利になるのもmicroformatsの大きな利点のひとつ
  http://www.otsune.com/diary/2007/11/08/1.html#200711081

を見て,Chalow で生成されるページを
j, k での移動だけ対応してみました.

各アイテムのテンプレートの section を

<span class="xfolkentry"> ... </span>


で囲めばいいので,

# item のテンプレート
$item_template = << "EACHITEM"
<!-- start:<TMPL_VAR name=ymdi> -->
<span class="xfolkentry">
<div class="section">
    :
    :
    :
<!--<TMPL_VAR name=id>-->
</div>
</span>
<!-- end:<TMPL_VAR name=ymdi> -->
<!-- ReplaceOnce -->
EACHITEM


というふうにすれば OK っぽい.

- LDRize - Userscripts.org
  http://userscripts.org/scripts/show/11562
- chalow - CHAngeLog On the Web
  http://chalow.org/

Referrer (Inside):
[2007-12-09-1] chalow を hAtom に対応させる
[2007-12-06-1] ちょっとだけ LDRize に対応 5
[2007-12-05-1] ちょっとだけ LDRize に対応 4
[2007-12-04-2] ちょっとだけ LDRize に対応 3
[2007-12-03-2] ちょっとだけ LDRize に対応 2
ChangeLog 最新ページ