<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>HWPS! &#187; wordpress</title>
	<atom:link href="http://holy.enyou.org/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://holy.enyou.org</link>
	<description>HoLY's Web Press Site</description>
	<lastBuildDate>Fri, 28 Jan 2011 04:19:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Amazon ISBN Anchor 2.0.0 Released (Amazon 新 API 対応)</title>
		<link>http://holy.enyou.org/2009/07/31/amazon-isbn-anchor-2-0-0-released-amazon-%e6%96%b0-api-%e5%af%be%e5%bf%9c/</link>
		<comments>http://holy.enyou.org/2009/07/31/amazon-isbn-anchor-2-0-0-released-amazon-%e6%96%b0-api-%e5%af%be%e5%bf%9c/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 18:32:49 +0000</pubDate>
		<dc:creator>HoLY</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://holy.enyou.org/?p=343</guid>
		<description><![CDATA[HoLY (holysugar) です。

Amazon API の変更により、 2009/08/15 に前の API を使ったアプリケーションは使えなくなってしまうのですが、ようやく
Amazon ISBN Anchor を対応させました。

ご利用の方にはリリースがとても遅くなってしまったことを大変お詫び申し上げます。時間がありませんので、速やかにアップデートをお願いします。

ダウンロードはこちらから。Amazon ISBN Anchor Plugin 2.0.0 のダウンロード

ファイルを上書きしてから一度「停止する」の後、「利用する」ことでバージョンアップできます。



技術背景とか

この情報を入手したとき には、API 回避かも? ということを匂わせていましたが、結局大勢と同様に Proxy 方式を採用しました。

ただただしさんのフォーラムでの質問 および関連の記事はとても参考になりました。

Proxy と言ってもそのまま XML を吐かないようにしています。あまり PHP で書きたくないという気持ちがそうさせていました…。

しかしまあ、3ヶ月でなんとかしろって言われても厳しいのですよ…。正直もう少し猶予を与えて欲しかったです ＞ Amazon さん
]]></description>
			<content:encoded><![CDATA[<p>HoLY (holysugar) です。</p>

<p>Amazon API の変更により、 2009/08/15 に前の API を使ったアプリケーションは使えなくなってしまうのですが、ようやく
<a href="/products/amazon-isbn-anchor">Amazon ISBN Anchor</a> を対応させました。</p>

<p>ご利用の方にはリリースがとても遅くなってしまったことを大変お詫び申し上げます。時間がありませんので、速やかにアップデートをお願いします。</p>

<p>ダウンロードはこちらから。<a href="http://holy.enyou.org/file/isbn_anchor/isbn_anchor-2.0.0.zip">Amazon ISBN Anchor Plugin 2.0.0 のダウンロード</a></p>

<p>ファイルを上書きしてから一度「停止する」の後、「利用する」ことでバージョンアップできます。</p>

<p><span id="more-343"></span></p>

<h3>技術背景とか</h3>

<p><a href="http://holy.enyou.org/2009/05/10/amazon-needs-authentication/">この情報を入手したとき</a> には、API 回避かも? ということを匂わせていましたが、結局大勢と同様に Proxy 方式を採用しました。</p>

<p><a href="http://developer.amazonwebservices.com/connect/thread.jspa?threadID=32142&amp;tstart=0">ただただしさんのフォーラムでの質問</a> および関連の記事はとても参考になりました。</p>

<p>Proxy と言ってもそのまま XML を吐かないようにしています。あまり PHP で書きたくないという気持ちがそうさせていました…。</p>

<p>しかしまあ、3ヶ月でなんとかしろって言われても厳しいのですよ…。正直もう少し猶予を与えて欲しかったです ＞ Amazon さん</p>
]]></content:encoded>
			<wfw:commentRss>http://holy.enyou.org/2009/07/31/amazon-isbn-anchor-2-0-0-released-amazon-%e6%96%b0-api-%e5%af%be%e5%bf%9c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>「WordPress日本語版でブログサイト構築入門」に amazon-isbn-anchor プラグインが掲載されました</title>
		<link>http://holy.enyou.org/2008/10/01/amazon-isbn-anchor-introduced/</link>
		<comments>http://holy.enyou.org/2008/10/01/amazon-isbn-anchor-introduced/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 18:45:07 +0000</pubDate>
		<dc:creator>HoLY</dc:creator>
				<category><![CDATA[site]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[isbn-anchor]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://holy.enyou.org/2008/10/01/amazon-isbn-anchor-introduced/</guid>
		<description><![CDATA[いま一番わかりやすい WordPress日本語版でブログサイト構築入門

こちらの本で、拙作WordPressプラグイン amazon-isbn-anchor が紹介されました！

アスキー・メディアワークス大島さん、献本ありがとうございました。

内容は初心者向けのWordPress導入本。いままでブログサイトは使ったことがあるけど、自前のサーバで持ったことがない、という人が構築するのにかなり適した内容かと思います。

しかし、これを読むに、自分の製作物はまだまだ機能の絞込みと拡張性について向上の余地がありますね…。まだまだ修行が足りんです。

付けたい機能もあるのでまた少し手を入れたいところですねー。画像傾けたりしたいです（そんなんかよ）。キャッシュが手軽に削除できないと困るし（というか困ってる）…。
]]></description>
			<content:encoded><![CDATA[<p><span class="isbn_anchor"><a href="http://www.amazon.co.jp/o/ASIN/4048673963/hwps-22/"><img src="http://ecx.images-amazon.com/images/I/51ymvXbnvfL._SL75_PC_.jpg" />いま一番わかりやすい WordPress日本語版でブログサイト構築入門</a></span></p>

<p>こちらの本で、拙作WordPressプラグイン <a href="/products/amazon-isbn-anchor">amazon-isbn-anchor</a> が紹介されました！</p>

<p>アスキー・メディアワークス大島さん、献本ありがとうございました。</p>

<p>内容は初心者向けのWordPress導入本。いままでブログサイトは使ったことがあるけど、自前のサーバで持ったことがない、という人が構築するのにかなり適した内容かと思います。</p>

<p>しかし、これを読むに、自分の製作物はまだまだ機能の絞込みと拡張性について向上の余地がありますね…。まだまだ修行が足りんです。</p>

<p>付けたい機能もあるのでまた少し手を入れたいところですねー。画像傾けたりしたいです（そんなんかよ）。キャッシュが手軽に削除できないと困るし（というか困ってる）…。</p>
]]></content:encoded>
			<wfw:commentRss>http://holy.enyou.org/2008/10/01/amazon-isbn-anchor-introduced/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Amazon ISBN Anchor プラグイン 1.0.0</title>
		<link>http://holy.enyou.org/2007/10/15/amazon-isbn-anchor-100/</link>
		<comments>http://holy.enyou.org/2007/10/15/amazon-isbn-anchor-100/#comments</comments>
		<pubDate>Sun, 14 Oct 2007 20:19:32 +0000</pubDate>
		<dc:creator>HoLY</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[isbn-anchor]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://holy.enyou.org/2007/10/15/amazon-isbn-anchor-%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3-100/</guid>
		<description><![CDATA[WordPress のプラグイン、Amazon ISBN Anchor 1.0.0 を作成しました。
簡単に ASIN 、 ISBN またはキーワードから Amazon アソシエイトリンクを作成することができます。

ダウンロードはこちらから。

特徴は以下の通りです。



以下のような簡易記述で、 Amazon アソシエイトのリンクを作成します。

isbn

&#60;a href="isbn:4-5758-3127-1"&#62;ひとひら(1)&#60;/a&#62;


と書くと、書影及びコメント入りのアソシエイトリンクを作成します。
本文を省略すると自動取得します。

ISBNは10桁及び13桁のものに対応します。またハイフンは省略可能です。

ひとひら(1)

asin

ISBNと同様にASINを指定することが可能です。例えば次のようにします。

&#60;a href="asin:B000OIOOIW"&#62;ひとひら DVD第1巻&#60;/a&#62;


ASINは10桁固定です。13桁のISBNとは互換性がないのでご注意ください。

ひとひら DVD第1巻

検索

amazon で検索した最初の候補をリンクとして取得できます。
例えば次のようにします。

&#60;a href="amazon:ひとひら"&#62;&#60;/a&#62;


現在は書籍にしか対応しておりません。

ひとひら 1 (アクションコミックス)

オプション

画像サイズをURIの語尾で指定することができます。


:l （大）
:m （中）
:s （小）
:n （なし）


例えば次のように。

&#60;a href="isbn:4-5758-3127-1:s"&#62;ひとひら(1)&#60;/a&#62;


ひとひら(1)

指定しない場合は、設定画面で設定されたものが使われます。

設定項目

以下の項目が管理画面から設定できます。


Amazon アソシエイト ID
AWS サブスクライバ ID （必要ならば）
書影のサイズ（大中小無）
HTML のクラス名
書影が見つからなかった時のURL（tDiary の amazon.rb 準拠）


作る予定で作っていないもの


日本語での詳しい解説 ：）
日本語メニュー（のメッセージカタログ）
amazon.co.jp 以外への対応
キャッシュ
検索の書籍以外対応
英語ドキュメント




tDiary の amazon.rb のようなものをイメージしてもらえればよいと思います。というか、amazon.rb 相当のものが無いのがモチベーションになっています。:)

markdown と併用すると、[ひとひら(2)](isbn:978-4575832372) と書けてなかなか理想に近づきます。:D

ご利用いただければ幸いです。

追記: ライセンスは本体と同じGPL2とします（同梱し忘れた……）。
]]></description>
			<content:encoded><![CDATA[<p>WordPress のプラグイン、<a href="/products/amazon-isbn-anchor/">Amazon ISBN Anchor</a> 1.0.0 を作成しました。
簡単に ASIN 、 ISBN またはキーワードから Amazon アソシエイトリンクを作成することができます。</p>

<p><a href="/file/isbn_anchor/isbn_anchor-1.0.0.zip">ダウンロードはこちらから</a>。</p>

<p>特徴は以下の通りです。</p>

<p><span id="more-71"></span></p>

<p>以下のような簡易記述で、 Amazon アソシエイトのリンクを作成します。</p>

<h3>isbn</h3>

<pre><code>&lt;a href="isbn:4-5758-3127-1"&gt;ひとひら(1)&lt;/a&gt;
</code></pre>

<p>と書くと、書影及びコメント入りのアソシエイトリンクを作成します。
本文を省略すると自動取得します。</p>

<p>ISBNは10桁及び13桁のものに対応します。またハイフンは省略可能です。</p>

<p><span class="isbn_anchor"><a href="http://www.amazon.co.jp/o/ASIN/4575831271/hwps-22/"><img src="http://ecx.images-amazon.com/images/I/518Kwd07r4L._SL75_PC_.jpg" />ひとひら(1)</a></span></p>

<h3>asin</h3>

<p>ISBNと同様にASINを指定することが可能です。例えば次のようにします。</p>

<pre><code>&lt;a href="asin:B000OIOOIW"&gt;ひとひら DVD第1巻&lt;/a&gt;
</code></pre>

<p>ASINは10桁固定です。13桁のISBNとは互換性がないのでご注意ください。</p>

<p><span class="isbn_anchor"><a href="http://www.amazon.co.jp/o/ASIN/B000OIOOIW/hwps-22/"><img src="http://ecx.images-amazon.com/images/I/51t2nrxCzEL._SL75_PC_.jpg" />ひとひら DVD第1巻</a></span></p>

<h3>検索</h3>

<p>amazon で検索した最初の候補をリンクとして取得できます。
例えば次のようにします。</p>

<pre><code>&lt;a href="amazon:ひとひら"&gt;&lt;/a&gt;
</code></pre>

<p>現在は書籍にしか対応しておりません。</p>

<p><span class="isbn_anchor"><a href="http://www.amazon.co.jp/o/ASIN/4575831271/hwps-22/"><img src="http://ecx.images-amazon.com/images/I/518Kwd07r4L._SL75_PC_.jpg" />ひとひら 1 (アクションコミックス)</a></span></p>

<h3>オプション</h3>

<p>画像サイズをURIの語尾で指定することができます。</p>

<ul>
<li>:l （大）</li>
<li>:m （中）</li>
<li>:s （小）</li>
<li>:n （なし）</li>
</ul>

<p>例えば次のように。</p>

<pre><code>&lt;a href="isbn:4-5758-3127-1:s"&gt;ひとひら(1)&lt;/a&gt;
</code></pre>

<p><span class="isbn_anchor"><a href="http://www.amazon.co.jp/o/ASIN/4575831271/hwps-22/"><img src="http://ecx.images-amazon.com/images/I/518Kwd07r4L._SL75_PC_.jpg" />ひとひら(1)</a></span></p>

<p>指定しない場合は、設定画面で設定されたものが使われます。</p>

<h3>設定項目</h3>

<p>以下の項目が管理画面から設定できます。</p>

<ul>
<li>Amazon アソシエイト ID</li>
<li>AWS サブスクライバ ID （必要ならば）</li>
<li>書影のサイズ（大中小無）</li>
<li>HTML のクラス名</li>
<li>書影が見つからなかった時のURL（tDiary の amazon.rb 準拠）</li>
</ul>

<h3>作る予定で作っていないもの</h3>

<ul>
<li>日本語での詳しい解説 ：）</li>
<li>日本語メニュー（のメッセージカタログ）</li>
<li>amazon.co.jp 以外への対応</li>
<li>キャッシュ</li>
<li>検索の書籍以外対応</li>
<li>英語ドキュメント</li>
</ul>

<hr />

<p>tDiary の amazon.rb のようなものをイメージしてもらえればよいと思います。というか、amazon.rb 相当のものが無いのがモチベーションになっています。:)</p>

<p>markdown と併用すると、<code>[ひとひら(2)](isbn:978-4575832372)</code> と書けてなかなか理想に近づきます。:D</p>

<p>ご利用いただければ幸いです。</p>

<p>追記: ライセンスは本体と同じGPL2とします（同梱し忘れた……）。</p>
]]></content:encoded>
			<wfw:commentRss>http://holy.enyou.org/2007/10/15/amazon-isbn-anchor-100/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>はてなスター</title>
		<link>http://holy.enyou.org/2007/09/25/hatena-star/</link>
		<comments>http://holy.enyou.org/2007/09/25/hatena-star/#comments</comments>
		<pubDate>Mon, 24 Sep 2007 15:45:45 +0000</pubDate>
		<dc:creator>HoLY</dc:creator>
				<category><![CDATA[site]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[はてな]]></category>
		<category><![CDATA[はてなスター]]></category>

		<guid isPermaLink="false">http://holy.enyou.org/2007/09/25/hatena-star/</guid>
		<description><![CDATA[はてなスター、気が向いたので今更だけどこのサイトにも設置したよ。

参考: WordPressに「はてなスター」を設置してみた
]]></description>
			<content:encoded><![CDATA[<p><a href="http://s.hatena.ne.jp/">はてなスター</a>、気が向いたので今更だけどこのサイトにも設置したよ。</p>

<p>参考: <a href="http://massat.jp/2007/07/12/243">WordPressに「はてなスター」を設置してみた</a></p>
]]></content:encoded>
			<wfw:commentRss>http://holy.enyou.org/2007/09/25/hatena-star/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressの「Continue Reading」を「続きを読む」に直してみる</title>
		<link>http://holy.enyou.org/2007/09/07/wp-uses-gettext/</link>
		<comments>http://holy.enyou.org/2007/09/07/wp-uses-gettext/#comments</comments>
		<pubDate>Fri, 07 Sep 2007 12:05:56 +0000</pubDate>
		<dc:creator>HoLY</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[gettext]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://holy.enyou.org/2007/09/07/wordpress%e3%81%ae%e3%80%8ccontinue-reading%e3%80%8d%e3%82%92%e3%80%8c%e7%b6%9a%e3%81%8d%e3%82%92%e8%aa%ad%e3%82%80%e3%80%8d%e3%81%ab%e7%9b%b4%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/</guid>
		<description><![CDATA[WordPress の「続きを読む」機能。この見た目が今のテーマでは「Continue Reading」になり日本語でないので分かりづらそうだったので、「続きを読む」という文字列に直してみました。

WordPressはgettextでメッセージカタログを利用しているので、要するにgettextでテーマのカタログを追加しようという話です。



今回利用しているテーマはSadish氏のpaalamテーマです。

まずOSにgettextのパッケージが入っていることを確認。入ってなければ入れます。xgettext コマンドと msgfmt コマンドを使います。

テーマファイルの中の翻訳可能な部分を xgettext で抜き出します。

$ xgettext --from-code=UTF-8 --keyword=__ -L PHP -o wp-content/languages/paalam.pot wp-content/themes/paalam/*.php


wp-content/languages/ja.po を編集します。paalam.pot のヘッダ以下の部分を ja.po の末尾に追加します。（注: msgmerge は使っていません。現在の ja.po に含まれるカタログの対象のファイルが無い場合もあるため。）

コメントは以下では量を削っていますが実際は残してあります。

#: wp-content/themes/paalam/archive.php:55
msgid "Continue Reading &#38;#187;"
msgstr ""

#: wp-content/themes/paalam/archive.php:59
msgid "No responses yet"
msgstr ""

#: wp-content/themes/paalam/archive.php:59
msgid "One response so far"
msgstr ""

#: wp-content/themes/paalam/archive.php:59
msgid "% responses so far"
msgstr ""


このカタログを翻訳します。すなわち、各 msgstr &#8220;&#8221; の部分を埋めます。

#: wp-content/themes/paalam/archive.php:55
msgid "Continue Reading &#38;#187;"
msgstr "続きを読む &#38;#187;"

#: [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress の「続きを読む」機能。この見た目が今のテーマでは「Continue Reading」になり日本語でないので分かりづらそうだったので、「続きを読む」という文字列に直してみました。</p>

<p>WordPressはgettextでメッセージカタログを利用しているので、要するにgettextでテーマのカタログを追加しようという話です。</p>

<p><span id="more-51"></span></p>

<p>今回利用しているテーマはSadish氏の<a href="http://wpthemepark.com/themes/paalam/">paalamテーマ</a>です。</p>

<p>まずOSにgettextのパッケージが入っていることを確認。入ってなければ入れます。xgettext コマンドと msgfmt コマンドを使います。</p>

<p>テーマファイルの中の翻訳可能な部分を xgettext で抜き出します。</p>

<pre><code>$ xgettext --from-code=UTF-8 --keyword=__ -L PHP -o wp-content/languages/paalam.pot wp-content/themes/paalam/*.php
</code></pre>

<p>wp-content/languages/ja.po を編集します。paalam.pot のヘッダ以下の部分を ja.po の末尾に追加します。（注: msgmerge は使っていません。現在の ja.po に含まれるカタログの対象のファイルが無い場合もあるため。）</p>

<p>コメントは以下では量を削っていますが実際は残してあります。</p>

<pre><code>#: wp-content/themes/paalam/archive.php:55
msgid "Continue Reading &amp;#187;"
msgstr ""

#: wp-content/themes/paalam/archive.php:59
msgid "No responses yet"
msgstr ""

#: wp-content/themes/paalam/archive.php:59
msgid "One response so far"
msgstr ""

#: wp-content/themes/paalam/archive.php:59
msgid "% responses so far"
msgstr ""
</code></pre>

<p>このカタログを翻訳します。すなわち、各 msgstr &#8220;&#8221; の部分を埋めます。</p>

<pre><code>#: wp-content/themes/paalam/archive.php:55
msgid "Continue Reading &amp;#187;"
msgstr "続きを読む &amp;#187;"

#: wp-content/themes/paalam/archive.php:59
msgid "No responses yet"
msgstr "まだコメントはありません"

#: wp-content/themes/paalam/archive.php:59
msgid "One response so far"
msgstr "1件のコメントがあります"

#: wp-content/themes/paalam/archive.php:59
msgid "% responses so far"
msgstr "%件のコメントがあります"
</code></pre>

<p>これを変換。</p>

<pre><code>$ msgfmt -o ja.mo ja.po
</code></pre>

<p>以上で修正は終了。意外に簡単ですね。</p>

<p>日本語環境ではない人には &#8216;Continue Reading&#8217; に見えるようになるので、この手の修正には細かくても gettext を使っていきたいところです。テーマ作者の方々には、gettext を使ってもらえるように期待したいですね。:)</p>
]]></content:encoded>
			<wfw:commentRss>http://holy.enyou.org/2007/09/07/wp-uses-gettext/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressで真にFeed全文配信する!</title>
		<link>http://holy.enyou.org/2007/08/10/real-feed-entry-full-text/</link>
		<comments>http://holy.enyou.org/2007/08/10/real-feed-entry-full-text/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 14:30:35 +0000</pubDate>
		<dc:creator>HoLY</dc:creator>
				<category><![CDATA[site]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://holy.enyou.org/2007/08/10/real-feed-entry-full-text/</guid>
		<description><![CDATA[WordPressを使い初めて一月。忙しくてなかなか更新できませんが、今のところ満足しています。
いくつか気になるところがあるのですが、もっとも気になるのは

&#60;!&#8211;more&#8211;&#62;するとmore以降はRSSに配信されない！

ことです。
これは普段全部RSSで読んでいる人にはあまり嬉しくない仕様だと思います（自分はplaggerでEntryFullTextして読むのであまり関係ないと言えばないのですが……）。

WP2.1ではFull Text Feedプラグインがあるのですが、2.2には対応できない様子。

なので自分でmore以下の部分を含めた部分まで配信するPluginでも書こうかと思ったのですが、Pluginにする意味がない程度に書き換えが必要でしたので、結局ソースを書き換えてしまいました。（荒業すぎ）

パッチです。
対象は WordPress ME 2.2 ($wp_db_version = 5183)。

メイン部分は post-template.php で the_content() および get_the_content() で
$force_full_text = falseという引数を増やしてmore以下を削る処理をスキップできるようにしています。あとは全文配信したいところをこれに差し替えるだけ。

本当はこの辺は設定に追い出すのが本筋だと思うし修正自体も少ないと思いますが、まだ内部構造よく知らないのでad-hocにやっつけました……。

pluginにするなら get_the_content と the_content をまるっと書きかえるか、Full Text Feedプラグインのようにmore部分を先にreplaceするコードを書いてそれをfeed系から呼ぶときに使うという手順になるのかな。
次バージョン考えなければそれでもいいかなあ。時間が空いたらやってみよう。

もしちゃんと設定に追い出せるようにしたら本家に投げてもいいかも。
]]></description>
			<content:encoded><![CDATA[<p>WordPressを使い初めて一月。忙しくてなかなか更新できませんが、今のところ満足しています。
いくつか気になるところがあるのですが、もっとも気になるのは</p>

<p><strong>&lt;!&#8211;more&#8211;&gt;するとmore以降はRSSに配信されない！</strong></p>

<p>ことです。
これは普段全部RSSで読んでいる人にはあまり嬉しくない仕様だと思います（自分はplaggerでEntryFullTextして読むのであまり関係ないと言えばないのですが……）。</p>

<p>WP2.1では<a href="http://cavemonkey50.com/code/full-feed/">Full Text Feedプラグイン</a>があるのですが、2.2には対応できない様子。</p>

<p>なので自分でmore以下の部分を含めた部分まで配信するPluginでも書こうかと思ったのですが、Pluginにする意味がない程度に書き換えが必要でしたので、結局ソースを書き換えてしまいました。（荒業すぎ）</p>

<p><a href="/wp-content/uploads/2007/08/wordpress-feed-entry-full-text.txt">パッチ</a>です。
対象は WordPress ME 2.2 ($wp_db_version = 5183)。</p>

<p>メイン部分は post-template.php で the_content() および get_the_content() で
$force_full_text = falseという引数を増やしてmore以下を削る処理をスキップできるようにしています。あとは全文配信したいところをこれに差し替えるだけ。</p>

<p>本当はこの辺は設定に追い出すのが本筋だと思うし修正自体も少ないと思いますが、まだ内部構造よく知らないのでad-hocにやっつけました……。</p>

<p>pluginにするなら get_the_content と the_content をまるっと書きかえるか、Full Text Feedプラグインのようにmore部分を先にreplaceするコードを書いてそれをfeed系から呼ぶときに使うという手順になるのかな。
次バージョン考えなければそれでもいいかなあ。時間が空いたらやってみよう。</p>

<p>もしちゃんと設定に追い出せるようにしたら本家に投げてもいいかも。</p>
]]></content:encoded>
			<wfw:commentRss>http://holy.enyou.org/2007/08/10/real-feed-entry-full-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>過去ログ移行メモ</title>
		<link>http://holy.enyou.org/2007/08/03/move-blog/</link>
		<comments>http://holy.enyou.org/2007/08/03/move-blog/#comments</comments>
		<pubDate>Fri, 03 Aug 2007 00:09:22 +0000</pubDate>
		<dc:creator>HoLY</dc:creator>
				<category><![CDATA[連絡事項]]></category>
		<category><![CDATA[tDiary]]></category>
		<category><![CDATA[typo]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://holy.enyou.org/2007/08/03/move-blog/</guid>
		<description><![CDATA[過去ログのページ を作成しましたので、必要ならばご覧ください。

以下、ログ移行の過程をメモしておきます。



このサイトは全面的にWordPressに移行したものの、過去のコンテンツ（typoやtDiaryやnDiaryで書いていたもの）の取り扱いについて悩みました。


そのまま今までどおりサービスとして生かしておく
typoの記事はそのまま移行する。残りは1の通り
全部HTML化して過去ログとして保管
削除する


結論から言うと3を採用しました。

1は、確実にURLを変えずにコンテンツを維持できる（はず）というのがメリットでした。
2はやや中途半端ですが、WPの検索を使えるという面でメリットがあります。移行自体はやや面倒ですが、両方ともmarkdownで書いているので記事そのものに手を入れる必要はあまりなかったはずです。

しかし、1,2はtypo,tDiaryの各プロセスが残ります。現在サーバのスリムアップを行っており、必要ではないサービスは止めたいという要求があったため、これは却下しました。

4は結構悩ましい（削除したい過去もあるものです！）わけですが、まだ検索エンジンからの参照量が多いことを考えると、できれば記事自体は残しておこうと思いました。

と、消去法で3が残るものの、クリアする条件が発生します。
* 管理上の都合、過去ログをひとつのパスにまとめること
* 元のURLからアクセスできること
* なるべくリンク切れをなくすこと
* サービスで設定されていた文字コードをapacheの設定で決定すること
逆に見た目の保持にはこだわらない方針にしました。

ナビゲーションの修正

余計なナビゲーションなどは削除します。tDiaryやtypoの設定で、不要なサイドバーウィジェットなどを削除します。

URL

元のURLからアクセスできるようにするため、前のディレクトリ構成は保持します。
これをそのままoldディレクトリに設置しました。これは、wget で作成したミラーを配置しました。
ちなみにwgetだとエスケープされたURLの扱いで失敗したため（おそらく$LANGあたりの関係?）、以下のスクリプトでファイル名を正常にしました。

#!/usr/local/bin/ruby
while l = ARGF.gets
  str = ''
  puts l.gsub(/%(..)/){&#124;a&#124;
    [$1.hex].pack('c')
  }
end


ただし、コンテンツの解説などのページは削除します。内容がかぶっている、あるいは古い情報がほとんどなので。

リンク切れ

この状態で、 /old/articles/2007/01 といったURLでアクセスできること、およそリンク切れがないことを確認します。
また、サーバルートからのパスでリンクが貼ってある場合は修正する必要があります。

最後に、.htaccess で、前のURLから /old/ へステータスコード301でリダイレクトするように設定しました。

RewriteRule ^((xml&#124;files&#124;images&#124;javascripts&#124;stylesheets&#124;pages&#124;articles).*)$ /old/$1 [R=301,L]

これでURLに関してはほとんどフォローできたと思います。

Encoding

文字コードは、システム全体では UTF-8 にしてありますが、tDiary は EUC-JP でした。なので、tDiaryのログのあるディレクトリ( /old/d )の.htaccess に以下の設定を追記します。

AddDefaultCharset EUC-JP

日付によるアクセス

ついでに、/d/YYYYMM あるいは /d/YYYYMMDD で適切にその日付のログに移動できるよう設定します。
時期によってパスが異なるので、統一したURLから辿れると楽だからです。

RewriteRule   ^d/(2004(0[2-9]&#124;1[0-9])[0-9]*)(.html)?$  /old/d/$1       [R=301,L]
# [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/about/old">過去ログのページ</a> を作成しましたので、必要ならばご覧ください。</p>

<p>以下、ログ移行の過程をメモしておきます。</p>

<p><span id="more-26"></span></p>

<p>このサイトは全面的にWordPressに移行したものの、過去のコンテンツ（typoやtDiaryやnDiaryで書いていたもの）の取り扱いについて悩みました。</p>

<ol>
<li>そのまま今までどおりサービスとして生かしておく</li>
<li>typoの記事はそのまま移行する。残りは1の通り</li>
<li>全部HTML化して過去ログとして保管</li>
<li>削除する</li>
</ol>

<p>結論から言うと3を採用しました。</p>

<p>1は、確実にURLを変えずにコンテンツを維持できる（はず）というのがメリットでした。
2はやや中途半端ですが、WPの検索を使えるという面でメリットがあります。移行自体はやや面倒ですが、両方ともmarkdownで書いているので記事そのものに手を入れる必要はあまりなかったはずです。</p>

<p>しかし、1,2はtypo,tDiaryの各プロセスが残ります。現在サーバのスリムアップを行っており、必要ではないサービスは止めたいという要求があったため、これは却下しました。</p>

<p>4は結構悩ましい（削除したい過去もあるものです！）わけですが、まだ検索エンジンからの参照量が多いことを考えると、できれば記事自体は残しておこうと思いました。</p>

<p>と、消去法で3が残るものの、クリアする条件が発生します。
* 管理上の都合、過去ログをひとつのパスにまとめること
* 元のURLからアクセスできること
* なるべくリンク切れをなくすこと
* サービスで設定されていた文字コードをapacheの設定で決定すること
逆に見た目の保持にはこだわらない方針にしました。</p>

<h2>ナビゲーションの修正</h2>

<p>余計なナビゲーションなどは削除します。tDiaryやtypoの設定で、不要なサイドバーウィジェットなどを削除します。</p>

<h3>URL</h3>

<p>元のURLからアクセスできるようにするため、前のディレクトリ構成は保持します。
これをそのまま<a href="/old">old</a>ディレクトリに設置しました。これは、wget で作成したミラーを配置しました。
ちなみにwgetだとエスケープされたURLの扱いで失敗したため（おそらく$LANGあたりの関係?）、以下のスクリプトでファイル名を正常にしました。</p>

<pre><code>#!/usr/local/bin/ruby
while l = ARGF.gets
  str = ''
  puts l.gsub(/%(..)/){|a|
    [$1.hex].pack('c')
  }
end
</code></pre>

<p>ただし、コンテンツの解説などのページは削除します。内容がかぶっている、あるいは古い情報がほとんどなので。</p>

<h3>リンク切れ</h3>

<p>この状態で、 /old/articles/2007/01 といったURLでアクセスできること、およそリンク切れがないことを確認します。
また、サーバルートからのパスでリンクが貼ってある場合は修正する必要があります。</p>

<p>最後に、.htaccess で、前のURLから /old/ へステータスコード301でリダイレクトするように設定しました。</p>

<pre><code>RewriteRule ^((xml|files|images|javascripts|stylesheets|pages|articles).*)$ /old/$1 [R=301,L]</code></pre>

<p>これでURLに関してはほとんどフォローできたと思います。</p>

<h3>Encoding</h3>

<p>文字コードは、システム全体では UTF-8 にしてありますが、tDiary は EUC-JP でした。なので、tDiaryのログのあるディレクトリ( /old/d )の.htaccess に以下の設定を追記します。</p>

<pre><code>AddDefaultCharset EUC-JP</code></pre>

<h3>日付によるアクセス</h3>

<p>ついでに、/d/YYYYMM あるいは /d/YYYYMMDD で適切にその日付のログに移動できるよう設定します。
時期によってパスが異なるので、統一したURLから辿れると楽だからです。</p>

<pre><code>RewriteRule   ^d/(2004(0[2-9]|1[0-9])[0-9]*)(.html)?$  /old/d/$1       [R=301,L]
# :
# :
RewriteRule   ^d/(2006)(0[2-9]|1[0-2])(.html)?$                /old/articles/$1/$2         [R=301,L]</code></pre>

<h3>完了?</h3>

<p>以上で、システムの過去ログ移行手順は終了です。
システムを停止します（バックアップは保存）。</p>
]]></content:encoded>
			<wfw:commentRss>http://holy.enyou.org/2007/08/03/move-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

