「全タイトル一覧」を用意する
第1稿 2004-02-03
きっかけ
やーとさんのサイトからリンクされている、ナナコさんの「主婦、日常を振り返る。」という日記があります。自慢でもないけど私はAkiaryの初期のバージョンから利用させていただいていますが、「主婦、日常を振り返る。」はもっともっと先輩にあたるサイトです。しかも、お手本になるよな見事な日記です。内容は勿論ですが、デザインやスクリプトの使いこなしも目を見張るものです。
その過去ログで目にとまるのが、月別の「目次」です。見出しにリンクが張ってあって、ページ内の各記事に移動(スクロール)できるのです。どうやって実現しているのだろう?と、ずっと謎に思っていました。同じように感じた人は他にもいらっしゃるようで、たびたびやーとぼーどでもこの件が話題になります。
これを私のところでもやりたいと思って結構格闘したのですが、今に至るまで謎は解明できていません。究極的にはCGI本体をゴリゴリいじり回せば出来なくないのですが、私としては、誰にでもできる方法で何とかしたかったので、素の状態のAkiaryからかけ離れるようにはしたくないと考えました(言い訳?)
でもやっぱり悔しかったので、かわりになるものを工夫しました。それが「全タイトル一覧」(私の場合)です。
テンプレート解説
主要部分
便宜上行番号をつけました。
01: <div class="day"> 02: <span class="title">過去ログ</span><br /> 03: <!-- akiary_index --> 04: <br /> 05: </div> 06: <div class="day"> 07: <span class="title">記事 (<!-- akiary_latest_times -->)</span><br /> 08: <table border="0" cellspacing="1" cellpadding="2"> 09: <!-- akiary_diary reverse latest_times="999" --> 10: <tr><td valign="top" class="adate"><!-- akiary_date --></td><td valign="top" class="atitle"><!--akiary_title--></td></tr> 11: <!--/akiary_diary--> 12: </table> 13: </div>
詳細
- 3行
- <!-- akiary_index -->は、Akiary全体の「目次(過去ログ一覧)」に置き換わります。標準の設定では「index.html」と同じ内容です。なくても構いません。
- 7行
- <!-- akiary_latest_times -->が、このテンプレートに差し込まれる記事の数と置き換わります。下記の9行に書いた工夫と組み合わせるとこにより、「全記事数」を表すようになります
- 9行
- <!-- akiary_diary reverse latest_times="999" -->は、記事ひとつ分のまとまりの「開始」を表します。ココでのポイントが2つ。reverseというのが、「新しいほうが上に」という指定で、latest_times="999"というのが、記事を何件差し込むかという指定です。件数は最新から順に数えて何件目まで、なのですが、実際に存在する記事の数よりも大きい場合は、最古の記事までになります。
- 10行
- <!-- akiary_date -->が日付、<!--akiary_title-->がタイトルに置き換わります。
- 11行
- <!--/akiary_diary-->は記事ひとつ分のまとまりの「終了」の合図です。ここまでが、オプショナル日記のテンプレート置換の対象範囲になります。
実は他に、<!-- akiary_body -->というタグも使えるのですが、これは記事の本文に置き換わるものです。タイトル一覧だけほしいので、使いません。
以上が要点になります。あとはテーブル組むなり、Divで囲んでCSSで料理するなりは、各自のお好みでどうぞ。
最新日記用のテンプレートに追加
あとは、「最新日記」からリンクするように、そちらのテンプレートも書き換えます。
<a href="archive.html">全タイトル一覧</a>
設定解説
設定ファイル
# オプショナル日記3のテンプレートファイル opt_diary_tmp_file_3="./tmpindex.html" # オプショナル日記3の出力ファイル opt_diary_file_3="./archive.html"
詳細
ファイル名は適宜調整してください。
"./tmpindex.html"というテンプレートを元にして、"./archive.html"というファイルをつくるという設定です。
リンクは……
実は上記のカスタマイズだけでは、一覧はできても、それぞれにリンクは貼られません。ちょっとトリッキーですが、設定ファイルの中にある「日付表示フォーマット」の項目を工夫すると、日付と一緒にリンクも表示させることができます。
解説⇒TIPS(応用利用法)§日付単位のアンカーとその顕在化。
いしだなおと it@isnot.jp