2009年7月31日

PageBute Movable type用ページ分割プラグインを導入(google sitemap対応)

記事数が少し増えてきたのでMovable type用静的ページをページ分割するプラグイン「PageBute」を導入してみる。
また少し改造してみる。

  1. ページナビゲーションはflickr風にしてみる。
  2. ページ分割の1ページ目へのリンクがindex.html付きになっているのでaタグから「index.html」を削除
  3. google sitemapに分割したページのURLを書き出す。

静的ページ用ページ分割プラグイン:PageBute
http://www.skyarc.co.jp/engineerblog/entry/2642.html

小粋空間: PageBute プラグインによるページ分割
http://www.koikikukan.com/archives/2008/11/07-005555.php

導入は上記サイトに詳細があるので割愛。
flickr風ページナビゲーションもPageButeとcssいじるだけなので割愛。

2.ページ分割の1ページ目へのリンクがindex.html付きになっているのでaタグから「index.html」を削除

PageBute.plのaタグ成形部分に追記。

PageBute.diff

--- PageBute.pl.org     2009-07-31 16:56:35.000000000 +0900
+++ PageBute.pl 2009-07-31 16:57:28.000000000 +0900
@@ -320,6 +320,7 @@
        my ($page, $file, $extension, $name, $class_name) = @_;
        my $url = $file . ( $page == 1 ? '' : "_${page}" ) . ".${extension}";
        $url =~ s|\\|\/|g; # for windows
+       $url =~ s|index\.html$||; # for delete index.html
        return "<a href=\"$url\" class=\"$class_name\">$name</a>";
 }

3.google sitemapに分割したページのURLを書き出す。

mt:setvarやmt:ifを多数設定しないといけないので無駄な改行を削除するため

MTRemoveBlank プラグイン
http://bizcaz.com/archives/2007/09/09-174534.php
を導入。

google sitemap用テンプレートはすでにあるので下記を追記。

<MTRemoveBlank>
<mt:setvar name="PBCNT" value="10">
<mt:BlogEntryCount setvar="p_cnt">
<mt:setvar name="p_ceil" value="$p_cnt">
<mt:setvar name="p_ceil" value="$PBCNT" op="%">
<mt:setvar name="p_cnt" value="$PBCNT" op="/">
<mt:getvar name="p_cnt" regex_replace="/(\d*)\.(\d*)/","$1" setvar="p_cnt">
<mt:setvar name="p_max" value="$p_cnt">
<mt:if name="p_ceil" gt="0">
<mt:setvar name="p_max" value="1" op="+">
</mt:if>
<mt:for var="i" from="2" to="$p_max">
<mt:setvar name="PB[$i]" value="$i">
<url>
<loc><$MTBlogURL encode_xml="1"$>index_<mt:getvar name="PB[$i]">.html</loc>
<lastmod><$MTDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
</url>
</mt:for>

<mt:setvar name="PBCNT" value="10">
<MTCategories>
<mt:if tag="CategoryCount" gt="$PBCNT">
<mt:categoryCount setvar="p_cnt">
<mt:setvar name="p_ceil" value="$p_cnt">
<mt:setvar name="p_ceil" value="$PBCNT" op="%">
<mt:setvar name="p_cnt" value="$PBCNT" op="/">
<mt:getvar name="p_cnt" regex_replace="/(\d*)\.(\d*)/","$1" setvar="p_cnt">
<mt:setvar name="p_max" value="$p_cnt">
<mt:if name="p_ceil" gt="0">
<mt:setvar name="p_max" value="1" op="+">
</mt:if>
<mt:for var="i" from="2" to="$p_max">
<mt:setvar name="PB[$i]" value="$i">
<url>
<loc><$MTCategoryArchiveLink encode_xml="1"$>index_<mt:getvar name="PB[$i]">.html</loc>
<lastmod><$MTDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
</url>
</mt:for>
</mt:if>
</MTCategories>

<mt:setvar name="PBCNT" value="10">
<MTArchiveList archive_type="Monthly">
<mt:if tag="archiveCount" gt="$PBCNT">
<mt:archiveCount setvar="p_cnt">
<mt:setvar name="p_ceil" value="$p_cnt">
<mt:setvar name="p_ceil" value="$PBCNT" op="%">
<mt:setvar name="p_cnt" value="$PBCNT" op="/">
<mt:getvar name="p_cnt" regex_replace="/(\d*)\.(\d*)/","$1" setvar="p_cnt">
<mt:setvar name="p_max" value="$p_cnt">
<mt:if name="p_ceil" gt="0">
<mt:setvar name="p_max" value="1" op="+">
</mt:if>
<mt:for var="i" from="2" to="$p_max">
<mt:setvar name="PB[$i]" value="$i">
<url>
<loc><$MTArchiveLink encode_xml="1"$>index_<mt:getvar name="PB[$i]">.html</loc>
<lastmod><$MTDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
</url>
</mt:for>
</mt:if>
</MTArchiveList>
</MTRemoveBlank>

これで少し再構築が遅くなったがちょっと様子を見よう。

この記事をretweetする

トラックバックURL

このエントリーのトラックバックURL:
http://www.macminiosx.com/mt/mt-tb.cgi/55

コメントする