| @技術/プログラミング
遅ればせながら、LDRizeとMinibufferというGreasemonkeyをFIrefoxに入れてみました。GoogleやTwitterやTumblrの閲覧が劇的に改善されます。いままでメ...

遅ればせながら、LDRizeMinibufferというGreasemonkeyをFIrefoxに入れてみました。GoogleやTwitterやTumblrの閲覧が劇的に改善されます。いままでメリットが分からず入れてなかったんだけど、アホですね。もっと早くに入れれば良かった。

となると一年前にやったAutoPagerizeのとき同様、P_BLOGでも動くようにしたくなる。というわけで例のごとくMicroformatsをXHTMLに書き加えました。AutoPagerizeの場合は独自規格のMicroformatsでしたが、LDRizeとMinibufferはhAtomという汎用Microformatsに対応しており、他の用途にも御利益のあるものなんだそうです。ありがたやありがたや。

ところで僕は知らなかったんですけど、XHTMLの中にclassって複数書けるんですね。一要素あたり一個しかclass書いちゃいけないと思ってた。アホだ。これまで autopagerize_page_element 専用に <div> を用意してましたが、これはhAtomのhfeedとご一緒してもらい、<div class="hfeed autopagerize_page_element"> としました。無駄な <div> を一個減らせました。

具体的にはまず include/user_include/base_xhtml.inc.php の変更から。一年前にAutoPagerizeに対応させたときは以下のようにしていましたが

<!-- Begin #content -->
<div id="content">
{$contents_top}
<div class="autopagerize_page_element">
{$contents}
</div>
<div class="autopagerize_insert_before"></div>
</div>
<!-- End #content -->

これを以下のように変更。

<!-- Begin #content -->
<div class="hfeed autopagerize_page_element" id="content">
{$contents}
</div>
<div class="autopagerize_insert_before"></div>
<!-- End #content -->

ちなみにいま僕は $contents_top を使ってないので class="hfeed autopagerize_page_element" と id="content" を同じ<div>の中に同居させました。$contents_top を使っている人は<div id="content">にclass="hfeed"を追加すると良いと思います。

次に include/fnc_logs.inc.php を開き、331行目付近

    $article_box =<<<EOD
<div class="section">
<h3 class="article-title">{$article_title}</h3>
{$date_time}<div class="comment">
{$row['comment']}
</div>

を以下のように書き換え。

    $article_box =<<<EOD
<div class="section hentry">
<h3 class="article-title entry-title">{$permalink}</h3>
{$date_time}<div class="comment entry-content">
{$row['comment']}
</div>

ところでhAtomはISO-8601形式の日付を<abbr>タグのtitleとして表示する必要があるんですが、P_BLOGは標準ではISO-8601形式の日付を表示しないので、AutoPagerizeに対応するよりかは手間がかかります。独自に$pub_date$mod_dateという変数を設定してやりました。すなわち229行目付近$row['mod'] = ...の下に

$pub_date = date('Y-m-dTH:i:sO', strtotime($row['date']));
$mod_date = date('Y-m-dTH:i:sO', strtotime($row['mod']));

の二つを書き加え、233行目付近の$mod_strのところを以下のように書き換えます。

$mod_str = ', '.$lang['mod'].' @ <abbr class="updated" title="' . $mod_date . '">'.$row['mod'] . '</abbr>';

そして最後、245行目付近の$date_time = ...を以下のように書き換えます。

$date_time = '<div class="date">' . $lang['post'] . ' @ <abbr class="published" title="' . $pub_date .'">' . $row['date'] . '</abbr> ' . $mod_str . '</div>';

これでひとまずLDRizeとMinibufferが動くようになります。めちゃ快適です。

しかし厳密にはhAtomではauthorもMicroformatsでマークアップする必要があるんですが、P_BLOGでは著者名表示がサポートされていない。福耳Cafeさんで著者名表示プラグインが配布されているのでこれを入れれば何とかいけそうです。

そろそろLoggixへの移行などを考えるべきなんだろうけど、P_BLOGはいじればいくらでも拡張できるのでなかなか着手できませんね。

この記事に似ている記事

  • 1032 dsc 2695
    jQueryを使って、「もっと読む」をインタラクティブにした。これまでもjQueryを使って細工してたんですけど、slideToggle() で先読みしたものを隠しておいて、クリックで展開するという感じにしてた。まぁこれでも良いんだけど、Aj...
  • Screenshot
     あまりにも AutoPagerize が便利なので、自分のブログでもAutoPagerizeできるようにしてみた。 AutoPagerizeに対応させる方法は二つあって、一つはuser.jsに直接SITEINFOを書き込んで対応させる方法。...
  • Screenshot
     SafariやP_BLOG用のバナーを使わせてもらっている trifles さんを覗いていたら、記事タイトルに記事のPermalinkをリンクする方法が紹介されていた(trifles : 記事タイトルから個別ページにリンク)。他のブログツー...
  • Screenshot
    ポータルシットを AutoPagerizable にしました。pager のない theme だったら単純に theme をいじって次のページへのリンクに rel="next" とか rel="prev" とかつけて、AutoPagerize...
  • Screenshot
    LDRizeはSITEINFOの“domain”のところにサイトのXPathを記入できるんだけど、AutoPagerizeは“url”にはサイトのURLしか記入できない。AutoPagerizeの“url”の部分にもXPathが指定できれば凄...
  • Screenshot
    クリックした後にしばらく経ってから続きの部分が表示されるだけだとつまらないから、クリックしてから続きが読み込まれるまでの間にローディングgifが表示されるようにしてみた。参考にさせてもらったのはhysyskさんのブログ。ローディングgifはこ...

Comments


(Option)

(Option)