トップページにソートしたインデックスを表示する

フォトブログ seedsman.jp Photo Blog の方では、トップページに掲載植物一覧の索引をABC順に表示させている。以前はそれをテキストファイルで保存していたが、今度はテンプレートにしてインクルードしてみた。

archives.php にはブログを書いた順でタイトルが表示されるので、ブラウザからソースを表示させ、以下のようなエントリーリストをTeraPadに全てコピーする。TeraPadを使うのはタブと改行を置換させることができるため。

<li>2001.06.12: <a href="http://******.php">Catharanthus roseus</a></li>

このリスト1行ごとに空白(スペース)と改行がいくつかずつ入っているので、</li>の後の改行以外は、置換で全て削除する。と、以下のようになる。エントリ数は800以上あるので、このように800行以上続いている。

<li>2002.06.10: <a href="http://******.php">Rosa 'Fountain Square'</a></li>
<li>2002.05.27: <a href="http://******.php">Rosa x hybrida</a></li>
<li>2002.05.14: <a href="http://******.php">Silene armeria</a></li>

これをすべて選択してエクセルにコピーするが、日付は必要としないので削除する、また、植物名をABC順にソートしたいから、その前後にもタブを入れ、エクセルに流したときに各セルに入るようにする。以下のように印に置換でタブを入れてからエクセルに流す。¥tはタブを表す。

<li>2002.06.10: <a href="http://******.php">Rosa x hybrida</a></li>

検索する文字列: <li>   置換後の文字列: <li>¥t
検索する文字列: : <   置換後の文字列: : ¥t<
検索する文字列: .php">   置換後の文字列: .php">¥t
検索する文字列: </a></li>   置換後の文字列: ¥t</a></li>

これを各々「すべて置換」で置換させる。その後、「すべて選択」してコピー。
エクセルを起動してペーストすると、各セルに分かれてデータが入る。

A列: <li>   
B列: 2002.06.10:    
C列: <a href="http://******.php">
D列: Rosa x hybrida
E列: </a></li>

まず、不要な日付が入っているB列をすべて削除する。次に、データが入っている中のどれか1つのセルを選択し、「データ」「並べ替え」をクリックする。B列がなくなっているので、植物名が入っているD列はC列になっているから、最優先されるキーに「列C」を選び、「OK」を押す。一瞬でソートが終わる。

これをすべて選択してTeraPadにコピー。タブをすべて置換で削除して終わり。これをすべてコピーし、適当な名前をつけテンプレート作成し、保存しておく。新エントリーを書いたら必ずこうやってソートしたインデックスに修正して、インデックステンプレのみ再構築しておく。