2004年08月28日 (土)

iblogPatcher 用カスタマイズ済みテンプレート(EntryPage.txt)

iblogPatcher を 1.3 にバージョンアップさせてからそのための解説をほとんど書いていませんでした。このため新規に導入をされる方、新たな blog を立ち上げる方、テンプレートの大幅な改造をする方などにはわかりにくい状況になっていました。

私の労力をあまり使わずに少しでも緩和しようと「僕は見ていた」で使用しているテンプレートセット、スタイルシート、ブログ定義ファイルの実例を同梱していますが、これはかなり iBlog オリジナルから離れたカスタマイズをしているので、ブログ定義ファイル以外は参考程度にしかなっていませんでした。

これを解消するために何回かに分けて iblogPatcher 用にカスタマイズされたテンプレート(デザインはオリジナルと同じ)を掲載していきます。最後にこれらのためのブログ定義ファイルも掲載します。このとおりにやればよいようになります。

今日はその第三回目。EntryPage.txt です。

[追記 2004.08.29]<$LinkRev$> を <$LinkMade$> に改めました。
[追記 2004.08.31]BlogPage, CategoryPage へのリンクが重複していたのを解消しました。


EntryPage.txt が最もカスタマイズポイントが多いテンプレートファイルです。
$DocumentRoot$ を囲む [ ] は全角にしてあります。半角に置き換えてください。また a タグの < と a の間にスペースを入れています。このスペースは取り除いてください。強調された黄色い部分が iblogPatcher に依存した部分です。各所の解説は後述しますが、BlogPage.txt と同じ部分については省略します。そちらも合わせてご覧下さい。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP" xml:lang="ja-JP">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <meta name="keywords" content="<$MetaKeywords$>" />
    <meta name="description" content="<$BlogDescription$>" />
    <meta name="author" content="<$MetaAuthor$>" />
    <meta name="copyright" content="<$MetaCopyright$>" />
    <link rel="contents" href="<$BlogBaseURL$>archive.html" />
    <link rel="start" href="<$BlogBaseURL$>index.html" />
    <link rel="alternate" type="application/rss+xml" title="RSS 0.92" href="[$DocumentRoot$]/rss.xml" />
    <link rel="stylesheet" href="<$BlogBaseURL$>styles-site.css" type="text/css" />
    <link rev="made" href="mailto:<$LinkMade$>" />
    <script language="JavaScript1.2" src="<$BlogBaseURL$>CommonLib.js" type="text/javascript"></script>
    <$AuthenticationLink$>
    <title><$EntryTitle$></title>
    <script type="text/javascript" src="<$BlogBaseURL$>entries.js"></script>
    <script type="text/javascript" src="<$BlogBaseURL$>AroundEntries.js" charset="Shift_JIS"></script>
    <script type="text/javascript" src="http://www.haloscan.com/load.php?user=<$HaloScanID$>"></script>
  </head>
  <body>
    <div id="banner">
      <h3><script language="JavaScript1.2" type="text/javascript">getBlogName();</script> &gt; <script language="JavaScript1.2" type="text/javascript">getCategoryName("<$EntryCategoryUUID$>");</script> &gt;</h3>
      <noscript>
        <em>このサイトでは JavaScript を利用しています。コンテンツを意図通りにご覧になるためには JavaScript が使用できるブラウザで JavaScript 機能を有効にしてご覧下さい。</em>
      </noscript>
    </div>
    <table border="0" cellpadding="1" cellspacing="0" summary="Navigation Bar - Main Contents">
      <tr>
        <!-- Main content -->
        <td valign="top" width="<$ContentAreaWidth$>%">
          <div id="container">
            <div class="blog">
              <div class="blogbody">
                <h3 class="title"><$CategoryImage$> <$EntryTitle$></h3><br />
                <!-- BEGIN EntryAbstract --><$EntryAbstract$><!-- END EntryAbstract --><br />
                <!-- BEGIN EntryBody --><$EntryBody$><!-- END EntryBody --><br />
                Posted: <!-- BEGIN EntryPostDate --><$EntryPostDate$><!-- END EntryPostDate --> at <!-- BEGIN EntryTimestamp --><$EntryTimestamp$><!-- END EntryTimestamp -->&nbsp;
                <$EmailFeedback$>&nbsp;
                | < a href="http://www.haloscan.com/comments/<$HaloScanID$>/<$EntryUUID$>" title="Thread <$EntryUUID$>" onclick="HaloScan('<$EntryUUID$>'); return false;" onkeypress="HaloScan('<$EntryUUID$>'); return false;"><script type="text/javascript">postCount('<$EntryUUID$>');</script></a>
                <noscript>
                  < a href="http://www.haloscan.com/comments/<$HaloScanID$>/<$EntryUUID$>" title="Thread <$EntryUUID$>" target="Comment">Comments</a>
                </noscript>&nbsp;
                | < a href="http://haloscan.com/tb/<$HaloScanID$>/<$EntryUUID$>" title="Trackbacks for <$EntryUUID$>" onclick="HaloScanTB('<$EntryUUID$>'); return false;" onkeypress="HaloScanTB('<$EntryUUID$>'); return false;"><script type="text/javascript">postCountTB('<$EntryUUID$>');</script></a>
                <noscript>
                  < a href="http://haloscan.com/tb/<$HaloScanID$>/<$EntryUUID$>" title="Trachback for <$EntryUUID$>" target="Trackback">Trackbacks</a>
                </noscript>&nbsp;
                <!--
                <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
                    xmlns:dc="http://purl.org/dc/elements/1.1/"
                    xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
                <rdf:Description
                    rdf:about="[$DocumentRoot$]/<$EntryCategoryUUID$>/<$EntryUUID$>/index.html"
                    trackback:ping="http://haloscan.com/tb/<$HaloScanID$>/<$EntryUUID$>"
                    dc:title="<$EntryTitle$>"
                    dc:identifier="[$DocumentRoot$]/<$EntryCategoryUUID$>/<$EntryUUID$>/index.html" />
                </rdf:RDF>
                -->
                <script type="text/javascript">
                  NextEntryLinkString = '前のエントリ&lt;&lt;';
                  PrevEntryLinkString = '&gt;&gt;次のエントリ';
                  AroundEntries = GetAroundEntries('<$EntryUUID$>');
                </script>
                <table border="0" width="100%" align="center" summary="Entry Navigation">
                  <tbody>
                    <tr>
                      <td width="50%" align="right">
                        <script type="text/javascript">
                          WriteEntryLink4EntryPage(AroundEntries[3], NextEntryLinkString);
                        </script>
                        <br />
                      </td>
                      <td nowrap="nowrap" align="center">
                        < a href="../index.html" title="カテゴリーページ"><script type="text/javascript">getCategoryName("<$EntryCategoryUUID$>");</script></a>
                      </td>
                      <td width="50%" align="left">
                        <script type="text/javascript">
                          WriteEntryLink4EntryPage(AroundEntries[0], PrevEntryLinkString);
                        </script>
                        <br />
                      </td>
                    </tr>
                    <tr>
                      <td width="50%" align="right">
                        <script type="text/javascript">
                          WriteEntryLink4EntryPage(AroundEntries[2], NextEntryLinkString);
                        </script>
                        <br />
                      </td>
                      <td nowrap="nowrap" align="center">
                        < a href="<$BlogBaseURL$>index.html" title="トップページ"><script type="text/javascript">getBlogName();</script></a>
                      </td>
                      <td width="50%" align="left">
                        <script type="text/javascript">
                          WriteEntryLink4EntryPage(AroundEntries[1], PrevEntryLinkString);
                        </script>
                        <br />
                      </td>
                    </tr>
                  </tbody>
                </table>
              </div>
            </div>
          </div>
        </td>
        <!-- Navigation bar -->
        <td valign="top" width="<$NavigationAreaWidth$>%">
          <div id="links">
            <div class="sidetitle">
              Quick Links
            </div>
            <div class="side">
              < a href="../../index.html">Blog - <script language="JavaScript1.2" type="text/javascript">getBlogName();</script></a><br />
              < a href="../index.html">Category - <script language="JavaScript1.2" type="text/javascript">getCategoryName("<$EntryCategoryUUID$>");</script></a>
            </div>
            <$NavigationItems$>
            <div class="sidetitle">
              Statistics
            </div>
            <div class="side">
              Total entries in this blog: <script language="JavaScript1.2" type="text/javascript">getBlogEntriesCount();</script><br />
              Total entries in this category: <script language="JavaScript1.2" type="text/javascript">getCategoryEntriesCount("<$EntryCategoryUUID$>");</script><br />
              Published On: <!-- BEGIN PublishDate --><$PublishDate$><!-- END PublishDate -->
            </div>
            <div class="powered">
              < a href="http://homepage.mac.com/yuji_okamura/iblog/DotMac/Tips/C1592201073/E1898506484/index.html" title="iblogPatcher-1.3.1">iblogPatcher</a><br />
              Powered by<br />
              < a href="http://www.lifli.com/Products/iBlog/main.htm">iBlog</a>
            </div>
          </div>
        </td>
      </tr>
    </table>
    <div class="footer">
      <hr noshade="noshade" size="1" />
      <div align="center">
        &#169; <script language="JavaScript1.2" type="text/javascript">getUsername();</script>
      </div>
    </div>
  </body>
</html>
<script type="text/javascript" src="<$BlogBaseURL$>entries.js"></script>
<script type="text/javascript" src="<$BlogBaseURL$>AroundEntries.js" charset="Shift_JIS"></script>
前後のエントリの機能を拡張するための JavaScript ファイルをロードします。entries.js はプラグイン ENTRIES_JS.plugin によって生成されます。これはエントリ一覧に使用されるものですが、entries.js 自体はエントリのサマリ情報を JavaScript にしたものです。AroundEntries.js は iblogPatcher-1.3.1 には含まれていません。その後にリリースされたものです。これらについては「もっと『前後のエントリ』を」をご覧下さい。
<!-- BEGIN EntryAbstract -->, <!-- END EntryAbstract -->
「うにょうにょ Read More」が実現できる ENTRY_ACTION.plugin がエントリの要旨を読み取るために <$EntryAbstract$> の前後に付けます。「うにょうにょ Read More」には使用されませんが、ENTRY_ACTION.plugin が収集するデータを利用する別なプラグインがあれば活用されます。
<!-- BEGIN EntryBody -->, <!-- END EntryBody -->
「うにょうにょ Read More」が実現できる ENTRY_ACTION.plugin がエントリの本文を読み取るために <$EntryBody$> の前後に付けます。
<script type="text/javascript">
  NextEntryLinkString = '前のエントリ&lt;&lt;';
...
  </tbody>
</table>
前後のエントリへのリンクの機能強化版です。これについては「もっと『前後のエントリ』を」をご覧下さい。

Posted: 11:22    | Comment | Trackback


以下、類似エントリです。