目次

1 はじめに
        1.1 この文書の目的
        1.2 読者の対象
        1.3 注意事項
        1.4 表記
2 概要
        2.1 カスタマイズファイルの場所
        2.2 ファイル構成
        2.3 画面遷移
        2.4 テンプレートファイルの形式
        2.5 テンプレートファイルの構成要素
        2.6 カスタマイズレベル
        2.7 生成された blog の構成
3 XHTML テンプレートファイル
        3.1 Login.html
        このセクションの項重要な解説は必ず読んでください。
        3.2 FeedPage.txt
        3.3 HomePage.txt
        3.4 ArchivePage.txt
        3.5 BlogPage.txt
        3.6 CategoryPage.txt
        3.7 DayPage.txt
        3.8 EntryPage.txt
        3.9 YearPage.txt
4 JavaScript
        4.1 Digest.js
        4.2 CommonLib.js
5 スタイルシート
        5.1 スタイルシート名.sxml
        5.2 スタイルシート名.css
        5.3 Custom.css
6 構成要素リファレンス
        6.1 ID
        6.2 CLASS
        6.3 REPLACE
        6.4 CONTROL
        6.5 FUNCTION
7 iBlog 1.3.2 へのバージョンアップ
8 参考 URL

はじめに

この文書の目的

この文書は筆者が iBlog 1.3.1 (.Mac 版) のカスタマイズするにあたって調べたり理解したことを記録するとともに、それらを iBlog ユーザ の間で共有する目的で作成しました。

読者の対象

この文書は iBlog 1.3.1 (.Mac 版) の基本操作をマスターした方を対象に、更にカスタマイズするための手引きとして作成しました。HTML, スタイルシート, JavaScript についての基本的な理解を前提としていますが、全ての事項についてこれらの十分な知識が必要なわけではありません。iBlog のカスタマイズを実践してゆくことによってより深くこれらを身に付けることができると思います。解る部分からで構いません。まずはやってみることが大切です。

iBlog の基本操作に関しては 0 iBlog/マニュアル がお薦めです。HTML, スタイルシート, JavaScript についての解説は 1 とほほのWWW入門 がお薦めです。また、iBlog の HowTo ものは 2 iBlogのTips がお薦めです。

注意事項

カスタマイズするための手順についてはあまり説明しません。なぜならばカスタマイズはあなたの好みや創意工夫によって行うものだからです。好みや創意工夫を反映させるために必要となる iBlog の仕組みを中心に説明します。

あくまでも筆者が個人的に調べた内容の公開であることに注意してください。ここに書かれた内容に基づいてあなたが行うことはあなた自身の責任で行ってください。しかし、筆者の理解不足/勘違い/書き間違いなどの指摘や教授、情報提供については歓迎します。筆者は iBlog を使用するにあたってあまりマニュアルや Web 上の文書を参照しないで色々試して使い方を覚えました。いわば我流ですから、きっとこういう点があると思います。

この文書は図示部分をイメージではなくスタイルシートによる見た目の制御で行っています。このため、これらの部分を意図どおりに参照するためにはきちんとスタイルシートに対応したブラウザが必須になります。イメージとしなかった理由は

ということから、イメージよりもより多くの方にベターな表示方法となると判断したからです。スタイルシートの使い方としてはあまり推奨できませんが、参照容易性を重視しました。

表記

GUI 部品
操作を説明する際に、メニュー項目やウィンドウ上の要素などの GUI 部品を示すのに ラベル という表記します。サブメニューなどを辿る場合はそれらを - で繋ぎます。
ディレクトリ(フォルダ)とファイル
ディレクトリ(フォルダ)とファイルはUNIX 系 OS の表現に従います。そしてディレクトリであることを表すときは末尾を / とします。ここでは ~/Sites/, ~/Sites/index.html のように表示されます。
参考 URL
参考 URL は アクセスキー 表題や内容を表す短い言葉 という具合に表記します。文中の当該箇所ではアクセスキーは書いているだけで定義はしていませんが、末尾の参考 URLでのリンクでは定義しています。
HTML 4.01 strict の形式でこの文書を書いていて、この形式の A 要素に target 属性はないので、この文書を表示したまま外部へのリンクを辿りたいときは新しいウィンドウでリンクを開くか、新しいタブでリンクを開くというような操作をしてください。

概要

カスタマイズファイルの場所

iBlog の個人のデータやファイルは ~/Library/Application Support/iBlog/ にあります。この下の Javascript/, Stylesheets/, TemplateSets/ を自由にカスタマイズできます。

これらカスタマイズできるディレクトリやファイルは、いつでもオリジナルを復元できます。オリジナルは /Applications/iBlog.app/Contents/Resources/ の下の同名のディレクトリやファイルが初期状態のものです。取り返しがつかない操作をしてしまった場合は、ここからコピーして初期状態に戻せるので安心してカスタマイズできます。

ファイル構成

カスタマイズできるファイルの構成を図示します。各ファイルの詳細についてはファイル名についているリンクを辿ってください。設定により使用されないものは破線で、全 blog に共通のものは太線で囲んでいます。

ディレクトリ: ~/Library/Application Support/iBlog/
ディレクトリ: ApplicationData/
iBlog の各種データが格納されたディレクトリ
ファイル: Custom.css
スタイルシート名.sxml が使用されるときに使用されます。
ディレクトリ: Javascript/
JavaScript ファイルおよびログイン画面のテンプレートファイル置き場
ファイル: Login.html
private に設定された blog のみに適用されます。
ファイル: Digest.js
private に設定された blog のみに適用されます。このファイルがテンプレートになるのか単にコピーされるのかは未調査です。ですからこれがテンプレートファイルと言えるかどうか定かではありません。
ファイル: CommonLib.js
ディレクトリ: TemplateSets/
テンプレートセットと全 blog に共通のテンプレートファイル置き場
ファイル: FeedPage.txt
ファイル: HomePage.txt
プレビューでは必ず使用されますが、公開では公開の仕方によっては使用されません。
ディレクトリ: テンプレートセット名/
テンプレートセット内のテンプレートファイル置き場
ファイル: ArchivePage.txt
ファイル: BlogPage.txt
ファイル: CategoryPage.txt
ファイル: DayPage.txt
ファイル: EntryPage.txt
ファイル: YearPage.txt
ディレクトリ: Stylesheets/
スタイルシートおよびスタイルシートを生成するための XML ファイル置き場

画面遷移

テンプレートから生成される blog の画面遷移をなぞって、テンプレートファイル間の画面遷移として図示します。ここでは private に設定された blog とします。public に設定された blog では Login.html への遷移がありません。また、XML Feed を作成いいえ にチェックをした blog では FeedPage.txt への遷移はありません。

HomePage.txt─(blog 名)─→BlogPage.txt

BlogPage.txt─(未認証時自動で)─→Login.html
  │
  ├─(カレンダーの日付け)────→DayPage.txt
  │
  ├─(カテゴリ名)────────→CategoryPage.txt
  │
  ├─(Browse archives by date )─→ArchivePage.txt
  │
  ├─(Syndicate this site )───→FeedPage.txt
  │
  └─(Read More )────────→EntryPage.txt

DayPage.txt─(未認証時自動で )─→Login.html
  │
  ├─(blog 名 )─────────→BlogPage.txt
  │
  ├─(Browse archives by date )─→ArchivePage.txt
  │
  ├─(Syndicate this site )───→FeedPage.txt
  │
  └─(エントリタイトル)─────→EntryPage.txt

CategoryPage.txt─(未認証時自動で)─→Login.html
  │
  ├─(blog 名 )───────────→BlogPage.txt
  │
  ├─(カレンダーの日付け)──────→DayPage.txt
  │
  ├─(カテゴリ名)──────────→CategoryPage.txt
  │
  ├─(Browse archives by date )───→ArchivePage.txt
  │
  ├─(Syndicate this site )─────→FeedPage.txt
  │
  └─(Read More )──────────→EntryPage.txt

ArchivePage.txt─(未認証時自動で)─→Login.html
  │
  ├─(blog 名)───────────→BlogPage.txt
  │
  ├─(Syndicate this site)─────→FeedPage.txt
  │
  └─(年 )─────────────→YearPage.txt

EntryPage.txt─(未認証時自動で)─→Login.html
  │
  ├─(blog 名 )──────────→BlogPage.txt
  │
  ├─(カレンダーの日付け)─────→DayPage.txt
  │
  ├─(カテゴリ名)─────────→CategoryPage.txt
  │
  ├─(Browse archives by date )──→ArchivePage.txt
  │
  ├─(Syndicate this site )────→FeedPage.txt
  │
  └─(Read More )─────────→EntryPage.txt

YearPage.txt─(未認証時自動で)─→Login.html
  │
  ├─(blog 名 )─────────→BlogPage.txt
  │
  ├─(Browse archives by date )─→ArchivePage.txt
  │
  └─(カレンダーの日付け)────→DayPage.txt

Login.html─(認証成功で)─→BlogPage.txt

FeedPage.txt ※どこにも遷移しない

テンプレートファイルの形式

テンプレートファイルはいうまでもなくテキストファイルではありますが、改行が LF のみの Unix 式になっているものと CR のみの Mac 式になっているものが混在しています。ブラウザでソースを表示するときなど Mac 式のファイルだと全てが一行になって見えることがよくあるので Unix 式に統一しておいたほうがいいでしょう。

また、txt の拡張子を持つものは XML 形式です。特に FeedPage.txt 以外は XHTML 形式(XML の一種)になっています。HTML 形式ではありません。iBlog のテンプレートファイルでは HTML の代わりに XHTML 1.0 が使用されています。XHTML 自体については述べませんが、次のことは最低限覚えておいてください。

詳しくは 3 XHTML 1.0 の仕様書 を参照してください。これを読まなくとも HTML を理解している方ならば 4 JChecker のようなチェッカーがあれば十分だと思います。

このことは普段エントリの内容を書くときにも注意が必要です。エントリの本文の中では

<HTMLCode> ... </HTMLCode>
というようにして ... の部分に HTML コードが書けるという情報が出回っていますが、テンプレートが XHTML 1.0 形式なので正確には XHTML 1.0 コードを書かなければいけないからです。

ところでオリジナルの XHTML テンプレートファイルには間違いやよくないところが散見されます。下にどのような間違いがあるかを列挙しますので、これらを直しながらインデントを付けるなどして整形することをお薦めします。XHTML テンプレートファイルの内容をほぼ理解できるようになるからです。

テンプレートファイルの構成要素

テンプレートファイルの構成要素には次の 5 種類があります。

以下にこれらについて簡単に説明してゆきます。

ID

XHTML の要素の id 属性値。そのファイルの中で一つだけしかありません。テンプレートファイルの基本構成要素を表しています。

<element id="name">
...
</element>
というように指定されています。

CLASS

XHTML の要素の class 属性値。その要素がどのような種類のものであるかを表しています。

<element name="name">
...
</element>
というように指定されています。

REPLACE

iBlog が置き換える部分。一般には状況に応じて置き換え結果が変わります。この状況をこの文書ではコンテクストと呼んでいます。このためファイルによって有効であったり無効であったり、同じファイルの中でも有効であったりなかったりします。

<$name$>
あるいは
[$name$]
というように指定されています。このブラケットの違いが何を意味するか調査していませんが、XHTML の中で使用されるための置換と XML のデータ領域の中で使用されるための置換という違いがあると推測しています。

iBlog の内部動作はブラックボックスで筆者は十分なドキュメントを手に入れていないのでコンテクストについては予想の域を出ませんが、コンテクストには次のものがあると考えています。

グローバルコンテクスト
どのテンプレートファイルの内部でも有効なコンテクスト。このコンテクストに所属する REPLACE はいつでも置換可能です。
ファイルコンテクスト
各テンプレートファイル固有のコンテクストです。
アーカイブリストコンテクスト
ArchivePage.txtDayPage.txt それから YearPage.txt のファイルコンテクストで有効になるコンテクスト。このコンテクストでは CONTROL ArchiveList が利用できます。
アーカイブコンテクスト
CONTROL ArchiveList の内部で有効になるコンテクストです。
エントリリストコンテクスト
BlogPage.txtCategoryPage.txt それから FeedPage.txt のファイルコンテクストで有効になるコンテクスト。このコンテクストでは CONTROL ForEachEntry が利用できます。
エントリコンテクスト
CONTROL ForEachEntry の内部で有効になるコンテクストです。
blog リストコンテクスト
HomePage.txt のファイルコンテクストで有効になるコンテクスト。このコンテクストでは CONTROL ForEachBlog が利用できます。
blog コンテクスト
CONTROL ForEachBlog の内部で有効になるコンテクストです。
カスタム CSS コンテクスト
Custom.css の内部で有効になるコンテクストです。
例えば DayPage.txt の CONTROL ArchiveList の内部では、グローバルコンテクスト、DayPage.txt のファイルコンテクスト、アーカイブリストコンテクスト、アーカイブコンテクストが有効ですが、CONTROL ArchiveList の外部ではアーカイブコンテクストは有効ではありません。

CONTROL

繰り返しなどを制御するための XML タグ。

<name>
...
</name>
というように指定されています。

FUNCTION

CommonLib.js に書かれている JavaScript 関数で blog の各 XHTML ページの中で呼び出され、大抵の場合 REPLACE によって予め固定された XHTML コード(HTML コードも混在しているようです)をドキュメントオブジェクトに書き込みます。

<script language="JavaScript"> name() </script>
大抵はこのように指定されています。中には引数を伴うものもあります。

カスタマイズレベル

カスタマイズのレベルを考えてみました。自分の blog をどうしたいかを整理する指針にしてください。

GUI による設定のレベル
この文書は必要ありません。既存のテンプレートセットとスタイルシート、それから環境設定の項目、ナビゲーションエディタによってカスタマイズしてください。特別な知識は必要ありませんが、この文書で述べた知識があると、ナビゲーションエディタを使いこなせるかもしれません。
スタイルシートレベル
各 ID と CLASS の内容と、XHTML のテンプレートファイルでそれらがどのようにレイアウトされているかに注目してください。iBlog はこのレベルで活用するのがもっとも労少なくして得るものが多いでしょう。
レイアウトレベル
スタイルシートレベルに加えて、各 XHTML テンプレートファイルの中で用いられている各種構成要素が何であるかに注目してください。「使う」という意味ではこのレベルでほぼマスターしていると言えます。この文書はこのレベルのカスタマイズのために十分な情報を記載したつもりです。
再構成レベル
この文書全てを理解することに加えて、更に調査が必要になります。特にコンテクストの分析がこの文書では十分でありません。

生成された blog の構成

iBlog によって生成された blog のファイル構成を知っておくことがカスタマイズする上で役に立つこともあります。そこで公開後の blog のファイル構成とテンプレートファイルへの対応を書いておきます。

/ : 毎のディレクトリ
/ : 毎のディレクトリ
/ : 毎のディレクトリ
index.htmlDayPage.txt
......
......
index.htmlYearPage.txt
......
archive.htmlArchivePage.txt
カテゴリUUID/ : カテゴリ毎のディレクトリ
categoryImage.png : カテゴリのイメージファイル
エントリUUID/ : エントリ毎のディレクトリ
index.htmlEntryPage.txt
......
index.htmlCategoryPage.txt
......
CommonLib.jsCommonLib.js
Digest.jsDigest.js
index.htmlBlogPage.txt
Login.htmlLogin.html
rss.xmlFeedPage.txt
styles-site.cssスタイルシート名.css あるいは Custom.css+スタイルシート名.sxml

XHTML テンプレートファイル

Login.html

役割

private に設定された blog の認証画面のテンプレート。このファイルは全ての blog に共通のテンプレートファイルであることに注意が必要です。

構成

このファイルの構成は以下のようになっています。

head 要素の JavaScript
REPLCACE: EncryptedUsername
REPLCACE: EncryptedPassword
REPLCACE: CookieName
ID: banner
CLASS: description
REPLCACE: BlogName

重要な解説

Digest.js の MD5 暗号化機能を利用して、予め暗号化されたユーザ名(EncryptedUsername)とパスワード(EncryptedPassword)とユーザ入力を照合し、一致すれば index.html(BlogPage.txt) に移動し、一致しなければ再度 Login.html を読み込みます。これらの動作は JavaScript によって実装されています。また、REPLACE AuthenticationLink によって、認証が必要な場合このファイルに遷移して認証するのですが、この遷移も JavaScript によって実装されています。そして、認証済みであるかどうかは特に暗号化されていない Cookie によってチェックしています。このため次の点に注意しなければなりません。

  1. ユーザ入力は SSL などにより暗号化された経路でなければ、第三者が通信内容を覗き見ると簡単にわかってしまいます。
    そして .Mac の Homepage には SSL 機能がありません。
  2. Login.html に遷移する前のページはブラウザによって既に読み込まれています。
    このためキャッシュなどから容易に遷移元が読み取られてしまいます。またリンク先を保存するブラウザの機能を利用すればページを丸ごと保存できてしまうかもしれません。
  3. JavaScript を無効に設定してあったり、JavaScript をサポートしていないブラウザでは認証の仕組みは全く意味がありません。
    このため、このようなブラウザでは private な blog も public な blog も区別なく自由に読み取り可能です。
  4. 認証済みであることを偽るクッキーを容易に作成できるため、ユーザ名とパスワードを知らない第三者でも容易に認証済みであると偽ることができます。

ですから private に設定された blog は見かけ上認証によって保護されているに過ぎず、とても認証と呼べる仕組みにはなっていません。blog の閲覧者を安全に制限することは iBlog 自身にはできないのです。むしろこの仕組みをユーザへの注意の喚起なしに提供することによって善意の人を排除し悪意の人を容易に通す仕組みになっているとの誹りを免れ得ません。

以上の注意をよく理解し想定されるリスクを承知の上で private に設定された blog を公開するときの便利のためにこのファイルを日本語化したものを提供しています(5 ログイン画面を日本語化する)。また、3 を回避する方法の紹介もしています(6 JavaScript が OFF のブラウザを弾く)。

FeedPage.txt

役割

その blog の RSS ファイルのテンプレートです。このファイルを取り込むことにより iBlog の Reader モードでその blog を閲覧できます。

構成

このファイルの構成は以下のようになっています。

channel
REPLCACE: iBlogVersion
REPLCACE: BlogName
REPLCACE: DocumentRoot
REPLCACE: BlogDescription
REPLCACE: WebMaster
REPLCACE: Copyright
REPLCACE: DateBuild
REPLCACE: DatePublished
REPLCACE: iBlogVersion
CONTROL: ForEachEntry
REPLCACE: EntryTitle
LINK
REPLCACE: DocumentRoot
REPLCACE: EntryLink
REPLCACE: EntryPostDate

HomePage.txt

役割

プレビューで生成される blog の一覧のページのテンプレートファイル。

構成

このファイルの構成は以下のようになっています。

REPLCACE: BannerTitle
REPLCACE: BannerColor
REPLCACE: TitleColor
REPLCACE: BannerTitle
REPLCACE: BlogLink
CONTROL: ForEachBlog
REPLCACE: BlogName
REPLCACE: BlogDescription

ArchivePage.txt

役割

アーカイブのページのテンプレートファイル。エントリがある年が列挙されます。

構成

このファイルの構成は以下のようになっています。

REPLACE: BlogBaseURL
CommonLib.js の URI を構成しています。
REPLACE: AuthenticationLink
REPLACE: BlogBaseURL
styles-site.css の URI を構成しています。
ID: banner
FUNCTION: getBlogName
REPLACE: NavigationAreaWidth
ID: links
Quick Links
CLASS: sidetitle
CLASS: side
FUNCTION: getBlogName
REPLACE: NavigationItems
Statistics
CLASS: sidetitle
CLASS: side
CLASS: powered
REPLACE: ContentAreaWidth
ID: container
CLASS: blog
CLASS: blogbody
CONTROL: ArchiveList
REPLACE: ArchiveLink
REPLACE: ArchiveTitle
CLASS: footer
FUNCTION: getUsername

BlogPage.txt

役割

blog のトップページのテンプレートファイル。

構成

このファイルの構成は以下のようになっています。

REPLACE: BlogBaseURL
CommonLib.js の URI を構成しています。
REPLACE: AuthenticationLink
REPLACE: BlogName
REPLACE: BlogBaseURL
styles-site.css の URI を構成しています。
ID: banner
FUNCTION: getBlogName
REPLACE: NavigationAreaWidth
ID: links
REPLACE: NavigationItems
Statistics
CLASS: sidetitle
CLASS: side
REPLACE: PublishDate
CLASS: powered
REPLACE: ContentAreaWidth
ID: container
CLASS: blog
CONTROL: ForEachEntry
REPLACE: EntryPostDate
CLASS: blogbody
REPLACE: CategoryImage
REPLACE: EntryTitle
REPLACE: EntryTimestamp
カテゴリへのリンク
カテゴリ名
FUNCTION: getCategoryName
エントリへのリンク
REPLACE: EntryUUID
REPLACE: EmailFeedback
CLASS: footer
FUNCTION: getUsername

CategoryPage.txt

役割

カテゴリー毎のページのテンプレートファイル。

構成

このファイルの構成は以下のようになっています。

REPLACE: BlogBaseURL
CommonLib.js の URI を構成しています。
REPLACE: AuthenticationLink
REPLACE: CategoryName
REPLACE: BlogBaseURL
styles-site.css の URI を構成しています。
ID: banner
REPLACE: CategoryImage
FUNCTION: getBlogName
カテゴリ名
FUNCTION: getCategoryName
REPLACE: CategoryUUID
REPLACE: NavigationAreaWidth
ID: links
Quick Links
CLASS: sidetitle
CLASS: side
FUNCTION: getBlogName
REPLACE: NavigationItems
Statistics
CLASS: sidetitle
CLASS: side
カテゴリのエントリ数
REPLACE: CategoryUUID
REPLACE: PublishDate
CLASS: powered
REPLACE: ContentAreaWidth
ID: container
CLASS: blog
CONTROL: ForEachEntry
REPLACE: EntryPostDate
CLASS: blogbody
REPLACE: CategoryImage
REPLACE: EntryTitle
REPLACE: EntryTimestamp
blog へのリンク
REPLACE: BlogBaseURL
FUNCTION: getBlogName
REPLACE: EntryUUID
REPLACE: EmailFeedback
CLASS: footer
FUNCTION: getUsername

DayPage.txt

役割

日毎のアーカイブのページのテンプレートファイル。

構成

このファイルの構成は以下のようになっています。

REPLACE: BlogBaseURL
CommonLib.js の URI を構成しています。
REPLACE: AuthenticationLink
TITLE
REPLACE: ArchiveMonth
REPLACE: ArchiveDay
REPLACE: ArchiveYear
REPLACE: BlogBaseURL
styles-site.css の URI を構成しています。
ID: banner
FUNCTION: getBlogName
REPLACE: ArchiveMonth
REPLACE: ArchiveDay
REPLACE: ArchiveYear
REPLACE: NavigationAreaWidth
ID: links
Quick Links
CLASS: sidetitle
CLASS: side
FUNCTION: getBlogName
REPLACE: NavigationItems
Statistics
CLASS: sidetitle
CLASS: side
REPLACE: DayEntriesCount
CLASS: powered
REPLACE: ContentAreaWidth
ID: container
CLASS: blog
CLASS: blogbody
CONTROL: ArchiveList
エントリへのリンク
REPLACE: ArchiveLink
REPLACE: ArchiveTitle
CLASS: footer
FUNCTION: getUsername

EntryPage.txt

役割

エントリ単独のページのテンプレートファイル。

構成

このファイルの構成は以下のようになっています。

REPLACE: BlogBaseURL
CommonLib.js の URI を構成しています。
REPLACE: AuthenticationLink
REPLACE: EntryTitle
REPLACE: BlogBaseURL
styles-site.css の URI を構成しています。
ID: banner
FUNCTION: getBlogName
カテゴリ名
FUNCTION: getCategoryName
REPLACE: NavigationAreaWidth
ID: links
Quick Links
CLASS: sidetitle
CLASS: side
FUNCTION: getBlogName
カテゴリ名
FUNCTION: getCategoryName
REPLACE: NavigationItems
Statistics
CLASS: sidetitle
CLASS: side
カテゴリのエントリ数
CLASS: powered
REPLACE: ContentAreaWidth
ID: container
CLASS: blog
CLASS: blogbody
REPLACE: CategoryImage
REPLACE: EntryTitle
REPLACE: EntryAbstract
REPLACE: EntryBody
REPLACE: EntryTimestamp
blog へのリンク
REPLACE: BlogBaseURL
FUNCTION: getBlogName
カテゴリへのリンク
FUNCTION: getCategoryName
REPLACE: EmailFeedback
CLASS: footer
FUNCTION: getUsername

YearPage.txt

役割

特定の年の月毎のページのテンプレートファイル。

構成

このファイルの構成は以下のようになっています。

REPLACE: BlogBaseURL
CommonLib.js の URI を構成しています。
REPLACE: AuthenticationLink
REPLACE: ArchiveYear
REPLACE: BlogBaseURL
styles-site.css の URI を構成しています。
ID: banner
FUNCTION: getBlogName
REPLACE: ArchiveYear
REPLACE: NavigationAreaWidth
ID: links
Quick Links
CLASS: sidetitle
CLASS: side
FUNCTION: getBlogName
REPLACE: NavigationItems
Statistics
CLASS: sidetitle
CLASS: side
REPLACE: YearEntriesCount
CLASS: powered
REPLACE: ContentAreaWidth
ID: container
CLASS: blog
CLASS: blogbody
CONTROL: ArchiveList
CLASS: side
CLASS: calendar
CLASS: calendarhead
REPLACE: MonthHead
CLASS: calendar
REPLACE: WeekDay1
CLASS: calendar
REPLACE: WeekDay2
CLASS: calendar
REPLACE: WeekDay3
CLASS: calendar
REPLACE: WeekDay4
CLASS: calendar
REPLACE: WeekDay5
CLASS: calendar
REPLACE: WeekDay6
CLASS: calendar
REPLACE: WeekDay7
REPLACE: MonthRows
CLASS: footer
FUNCTION: getUsername

JavaScript

Digest.js

内容を見ればわかるとおり、このファイルは MD5 暗号化の機能を JavaScript で実装したものです。既に述べましたがこのファイルが単にコピーされるものなのか、REPLACE を埋め込むと置換されるテンプレートファイルなのかは未調査ですが、恐らく単にコピーされるものと想像しています。

CommonLib.js

このファイルは REPLACE を置換した上で blog 毎にコピーが作成されるもので、blog の各種データを JavaScript の呼び出しによって動的に XHTML ファイルへ埋め込む(document.write)ためのものです。つまり FUNCTION の内容のテンプレートファイルです。

もし、FUNCTION の出力に変更を加えたいのでしたら、このファイルを編集することになります。ただし、このファイルは全ての blog に共通するファイルであることに注意が必要です。もし特定の blog だけに影響を与えたいのでしたら、既存の FUNCTION を変更するのではなく新しい FUNCTION を作成して、その blog の XHTML テンプレートファイルの中で新しく作成した FUNCTION を使用するようにすべきです。

各 XHTML テンプレートファイルでも REPLACE が置換される一方で、一部を除いて、単に REPLACE の置換後の内容を XHTML 上で書き出す関数が多くあります。恐らくこれは、REPLACE がコンテクストによって値を持っていたり持っていなかったりすることに関係すると思われます。つまり、XHTML テンプレートファイルコンテクストでは置換できない REPLACE の値を取得する場合にこのファイルで生成された FUNCTION の呼び出しによって行うのでしょう。つまり、JavaScript を利用することで CommonLib.js のファイルコンテクストが利用できます。したがって、目的の XHTML テンプレートファイル内で置換できない REPLACE の値がどうしても欲しのでしたら、このファイルに関数を追加して、その関数経由で取得できるかもしれません。

スタイルシート

スタイルシート名.sxml

役割

このファイルは iBlog の GUI を用いて作成したスタイルのデータを記述した XML ファイルです。このファイルに基づいて iBlog はプレビューや公開時に styles-site.css を作成します。

このファイルは XML なのでデータを保持しているだけで、テンプレートファイルではありません。このファイルに記述されたデータが適用されるテンプレートファイルは Custom.css です。

構成

このファイルは Apple Computer が定義している plist 1.0 (PropertyList) のファイルで XML の一種です。この plist 文書の仕様書がどこにあるのか筆者は知りませんが、Mac OS X では様々なデータの記述に用いられています。

このファイルは XML 文書の宣言と DOCTYPE の宣言以降 plist 要素だけがあり、その plist 要素は唯一の dict 要素を持っています。その dict 要素のデータは次のようなものの繰り返しになっています。

<key>&lt;$REPLACE名$&gt;</key>
<string>REPLACEの置換結果</string>
すなわち、Custom.css のファイルコンテキストで使用できる REPLACE の名前とその値を定義したファイルになっています。試していませんがもしかすると、これに手で新しい REPLACE の名前とその値を追加すると Custom.css で使用できるようになるかもしれません。

解説

このファイルのデータを Custom.css に適用して作成された styles-site.css をコピーして スタイルシート名.css として保存し直し、この スタイルシート名.sxml を削除(恐らく iBlog は再起動が必要です)することによって、遥かに普及している仕様のスタイルシートの編集に帰着できます。この XML の仕様を調べてそれを覚えるのもよいですが、スタイルシートを使いこなせるようになった方が使い道が多いと思います。

しかし上の構成で示唆したオリジナルの REPLACE の作成がもしできるのでしたら、今までテンプレートではなく元ファイルを作ることによって利用してきたスタイルシートのカスタマイズが一段メタな領域で行えることになります。あくまでも仮定の上での話に過ぎませんが、工夫次第によってはより柔軟なスタイルシートのカスタマイズが行える可能性を持っています。

スタイルシート名.css

このファイルがもっともカスタマイズの効果が大きいファイルです。このファイルは、それを選択した blog の styles-site.css としてコピーされます。現段階では REPLACE の置換が行われるかどうか、すなわちテンプレートファイルであるかどうかは未調査ですが、スタイルシートを変更することによりあなたの blog の見た目が劇的に変わります。もしスタイルの効果をよく知らないのでしたら、この文書が使用している css ファイルをダウンロードせずにこの文書だけをローカルにダウンロードしてください。そして、ダウンロードしたファイルをブラウザで見てみましょう。オンラインで見ているときと見た目が全然違うはずです。この文書は css ファイルがなくても読めるように書いてありますが、css があるとより読みやすいようになっています。筆者はデザインセンスがないのでこの css を適用することで凄く読みやすいかどうかは自信がありませんが。

このファイルを一から作るのは大変ですので スタイルシート名.sxml のセクションで述べたように スタイルシート名.sxml 経由で生成された styles-site.css のコピーを基本にするのが楽です。また、既存の css ファイルをコピーしてそれをベースにするのもよいでしょう。このファイルのカスタマイズの基本は次のとおりです。

更に、XHTML の要素(タグと思えばよいです)のスタイルをカスタマイズするのもよいでしょう。ただしこの場合は、その XHTML 要素全てに波及しますから、あまりやりすぎると個々のエントリの中で HTMLCode で臨時で追加した XHTML コードでそうなって欲しくない場合に苦労するはめになります。自分で新しい CLASS を定義して、それを XHTML テンプレートファイルや HTMLCode による XHTML コードで使用するようにした方が融通が効くものになります。

オリジナルの スタイルシート名.css には間違いがあります。

.description {
...
letter-spacing: none;
}
この赤字の none は letter-spacing の値として使用できません。normal にしておくか、この行を削除しておいた方がよいでしょう。また honeydew.css にも行末に ; がないという間違いがあります。これらの間違いを修正した css ファイル群を用意しています。(8オリジナルスタイルシートの間違い)

Custom.css

役割

このファイルは スタイルシート名.sxml から styles-site.css を作成する際に用いられるテンプレートファイルです。このファイルは sxml ファイルをスタイルシートとして使用する全ての blog に影響を与えるので注意が必要です。普段は iBlog の GUI でスタイルシートを編集したいがその結果は一律カスタマイズしたいというときに使用します。

構成

このファイルの構成は以下のようになっています。

body
A
REPLACE: LinkColor
A:link
REPLACE: LinkColor
A:visited
REPLACE: VisitedLinkColor
#banner
REPLACE: HeaderTextColor
REPLACE: HeaderBorder
REPLACE: HeaderBackground
.description
REPLACE: HeaderTextColor
REPLACE: HeaderBackground
#links
REPLACE: SideBarBorder
.blog
.blogbody
REPLACE: EntryBackground
REPLACE: EntryBorder
.blogbody a
.blogbody a:link
.blogbody a:visited
.blogbody a:active
.blogbody a:hover
#container
REPLACE: EntryBackground
.title
.date
REPLACE: DatePostedBorder
.side
.sidetitle
.calendar
.calendarhead
.syndicate
.powered
.footer

解説

オリジナルのこのファイルには間違いを三箇所見つけました。一箇所は

.date {
...
<$DatePostedBorder$>
...
}
ここです。赤字の行の終わりにセミコロンがありません。二つ目は
#banner {
...
<$HeaderBorder$>
...
}
です。ここにもセミコロンがありません。もう一箇所は スタイルシート名.css で挙げたのと同じ間違いです。この間違いを修正した css ファイル群を用意しています。(8オリジナルスタイルシートの間違い)

構成要素リファレンス

ID

TBL.1 ID 一覧
名前 説明
banner ページ上部のバナー部分。ここに blog の名前やカテゴリがページの表題として表示されます。
container クラス blog が入る部分。オリジナルテンプレートではクラス blog を囲っているだけですが、要はそのページの肝心の部分が入るところということです。
links ページ右または左サイドのナビゲーションコンテンツ部分。ここにカレンダーや各カテゴリへのリンクなどが表示されます。

CLASS

TBL.2 CLASS 一覧
名前 説明
blog そのページで表示すべきメインのコンテンツ全体を表す部分。例えば BlogPage.txt ではエントリの並び全体を囲い、ArchivePage.txt では ArchiveList を囲っています。
blogbody そのページで表示すべきメインのコンテンツ一つ一つのボディ部分。例えば BlogPage.txt ではエントリの日付けは blogbody の外ですが、エントリのタイトル、カテゴリのイメージ、要旨、本文、投稿時間、その他関連リンクは blogbody の中にあります。そして個々のエントリ毎に別な blogbody で囲まれています。日付けだけが外に出ているのは、同じ日に複数のエントリの投稿あるいは更新があると、それらエントリに対して日付けが一つだけ表示されるようになっていることからもわかるように、見出しとして扱われているからです。
calendar カレンダーの日付けの部分。
calendarhead カレンダーの曜日の部分。
date エントリの日付けの部分。
description ログイン画面の説明部分。
footer ページのフッタ部分。
powered iBlog で作成されたサイトであることを表示する部分。
side ID links の中の各構成要素の中身の部分。カテゴリへのリンクの一覧とかカレンダーそのものとか。
sidetitle ID links の中の各構成要素のタイトル部分。CATEGORIES とか CALENDAR とか。
syndicate オリジナルの XHTML テンプレートファイルではどこにも使用されておらず、スタイルシート名.cssCustom.css だけで定義されているクラス。シンジケートと聞いて「悪の」という接頭辞を思い浮かべてしまう筆者って...おばか
title エントリのタイトルの部分。

REPLACE

TBL.3 REPLACE 一覧
名前 説明
ArchiveCalendarRows getArchiveCalendarRows がドキュメントに書き込む XHTML コード。置換結果はカレンダーの日付け達を表すテーブルの行(TR 要素の集まり)で、次のような XHTML コードです。(実際には改行もインデントもありません。)
<tr>
<td aling="center">
<span class="calendar">&nbsp;または日</span>
</td>
これが一週間分繰り返されます
</tr>
これが一か月分繰り返されます
TD 要素の内容が日で、その日のエントリがある場合は、その日のアーカイブ(DayPage.txt)へのリンクになります。このリンクは次のようになります。
<a href="///index.html"></a>
CLASS が含まれているの構成図を書いておきます。
CLASS: calendar
CLASS: calendar
以下日付けの数分だけ繰り返し
リンクの相対パスのあり方から、(getArchiveCalendarRows を通して) blog のベースディレクトリのファイル(ArchivePage.txt, BlogPage.txt)で使用されることが前提になります。実際には ArchivePage.txt でのみ使用されます。
ArchiveCategories getArchiveCategories がドキュメントに書き込む HTML コード。置換結果はその blog に含まれるカテゴリ(CategoryPage.txt)へのリンクを HTL の各行(BR 要素が使われているということ)に配した HTML コードで、次のようなものの繰り返しです。
<a href="カテゴリUUID/index.html">カテゴリ名</a> <br>
リンクの相対パスのあり方から、(getArchiveCalendarRows を通して) blog のベースディレクトリのファイル(ArchivePage.txt, BlogPage.txt)で使用されることが前提になります。実際には ArchivePage.txt でのみ使用されます。 このコードは XHTML ではなく HTML コードです。一貫していません。置換の処理は iBlog が内部動作として行うのでユーザが補うことができません。(つまりバグです。)
ArchiveDay DayPage.txt の TITLE 要素および banner の中の H3 要素の中で使用される日の値。
ArchiveEntriesCount ArchivePage.txt におけるエントリの数。
ArchiveHorizontalCategories getArchiveHorizontalCategories がドキュメントに書き込む XHTML コード。ArchiveCategories の水平バージョン。BR 要素の代わりに二つの &nbsp; が使用されています。ページのヘッダー部やフッター部にカテゴリへのリンクを横に並べたりするときに使えます。
ArchiveLink ArchivePage.txtDayPage.txt のアーカイブ項目の 相対 URI。ArchivePage.txt の中では次のように置換されます。
/index.html
DayPage.txt の中では次のように置換されます。
../../../カテゴリUUID/エントリUUID/index.html
この REPLACE は ArchiveList の中で利用できます(推測)。
ArchivesLink ArchivePage.txt から生成される archive.html への相対 URL。ナビゲーションエディタArchive の項の内容で使用される。
ArchiveMonth DayPage.txt の TITLE 要素および banner の中の H3 要素の中で使用される月の値。
ArchiveTitle ArchivePage.txtDayPage.txt で使用されるアーカイブ項目のタイトル。 ArchivePage.txt ならば 2003 というように西暦の年に置き換わり、DayPage.txt ならばエントリのタイトルに置き換わります。 この REPLACE は ArchiveList の中で利用できます(推測)。
ArchiveYear YearPage.txtDayPage.txt そのもののタイトルや banner に使用される西暦の年。
AuthenticationLink private に設定された blog の認証チェックのための JavaScript。認証の仕組みについては Login.html重要な解説の項で簡単に解説してあります。必ず読んでください。
BannerColor 環境設定-一般-ホームページ-バックグランド で指定した色の値。当然 HomePage.txt で用いられます。
BannerTitle 環境設定-一般-ホームページ-バナー で指定した文字列。当然 HomePage.txt で用いられます。
BlogBaseURL その blog のベース URL。テンプレートセットに含まれる XHTML テンプレートファイルの中で使用されていて、そのファイルの適用先のファイル(生成された blog の構成を参照のこと)からの相対パスに置換されます。
BlogCalendarRows getBlogCalendarRows がドキュメントに書き込む XHTML コード。ArchiveCalendarRows と同じ内容に置換されます。リンクの相対パスのあり方から、(getBlogCalendarRows を通して) blog のベースディレクトリのファイル(ArchivePage.txt, BlogPage.txt)で使用されることが前提になります。実際には BlogPage.txt でのみ使用されます。
BlogCategories getBlogCategories がドキュメントに書き込む HTML コード。ArchiveCategories と同じ内容に置換されます。リンクの相対パスのあり方から、(getBlogCalendarRows を通して) blog のベースディレクトリのファイル(ArchivePage.txt, BlogPage.txt)で使用されることが前提になります。実際には BlogPage.txt でのみ使用されます。このコードは XHTML ではなく HTML コードです。一貫していません。置換の処理は iBlog が内部動作として行うのでユーザが補うことができません。(つまりバグです。)
BlogDescription ファイル-新規 Blog または blog を選択した上で 編集-選択部分の編集 で開くダイアログボックスの Blog の説明: に書いた内容。FeedPage.txtHomePage.txt で使用されます。Blog-ナビゲーションエディタを表示 によって Description という項目を作って、その中に <$BlogDescription$> と入れましたが置き換えられませんでした。また、BlogPage.txt に直接書いてみましたがこれも置き換えられずにそのまま表示されてしまいます。
BlogEntriesCount getBlogEntriesCount がドキュメントに書き込む HTML コード。その blog が含むエントリ数に置換されます。
BlogHorizontalCategories getBlogHorizontalCategories がドキュメントに書き込む XHTML コード。ArchiveHorizontalCategories と同じ内容に置換されます。
BlogLink HomePage.txtForEachBlog の中で使用される blog の URI。次のように置換されます。
blogのUUID/index.html
BlogName その blog の名前。FeedPage.txt, HomePage.txt, BlogPage.txt およびナビゲーションコンテンツで使用されています。
CalendarHead getCalendarHead がドキュメントに書き込む文字列。次のように置換されます。
CalendarRows 各ページおけるカレンダーの本体部分を表す JavaScript コードに置換されます。各日のアーカイブ(DayPage.txt から生成されるファイル)へのパスが異なるために、使用されるファイルによって置換結果が異なります。次のようになります。
ArchivePage.txt
<script language="JavaScript"> getArchiveCalendarRows(); </script>
BlogPage.txt
<script language="JavaScript"> getBlogCalendarRows(); </script>
CategoryPage.txt
<script language="JavaScript"> getCategoryCalendarRows(); </script>
EntryPage.txt
<script language="JavaScript"> getEntryCalendarRows(); </script>
YearPage.txt
<script language="JavaScript"> getYearCalendarRows(); </script>
DayPage.txt
<script language="JavaScript"> getDayCalendarRows(); </script>
実はこの置換結果は正しくありません。SCRIPT 要素には type 属性が必須なのですが、それが含まれていないからです。しかも、この REPLACE が使用されるところは SCRIPT 要素を書いてはいけないところです。
Categories ナビゲーションエディタCategory の項で使用される、各カテゴリへのリンクを表す JavaScript コードに置換されます。各カテゴリのページ(CategoryPage.txt から生成されるファイル)へのパスが異なるために、使用されるファイルによって置換結果が異なります。次のようになります。
ArchivePage.txt
<script language="JavaScript"> getArchiveCategories(); </script>
BlogPage.txt
<script language="JavaScript"> getBlogCategories(); </script>
CategoryPage.txt
<script language="JavaScript"> getCategoryCategories(); </script>
EntryPage.txt
<script language="JavaScript"> getEntryCategories(); </script>
YearPage.txt
<script language="JavaScript"> getYearCategories(); </script>
DayPage.txt
<script language="JavaScript"> getDayCategories(); </script>
CategoryCalendarRows getCategoryCalendarRows がドキュメントに書き込む XHTML コード。ArchiveCalendarRows とほぼ同じ内容ですが、エントリがある日へのリンクが次のようになります。
<a href="..////index.html"></a>
リンクの張り方から CategoryPage.txt でのみ使用できます。
CategoryCategories getCategoryCategories がドキュメントに書き込む HTML コード。ArchiveCategories とほぼ同じ内容ですが、各カテゴリの URI が次のようになります。
../カテゴリUUID/index.html
リンクの張り方から YearPage.txtCategoryPage.txt でのみ使用できます。
CategoryHorizontalCategories getCategoryHorizontalCategories がドキュメントに書き込む XHTML コード。ArchiveHorizontalCategories とほぼ同じ内容ですが、各カテゴリの URI が次のようになります。
../カテゴリUUID/index.html
リンクの張り方から CategoryPage.txt でのみ使用できます。
CategoryImage そのカテゴリのイメージを表す HTML コード。BlogPage.txt, CategoryPage.txt, EntryPage.txt で使用されそれぞれ次のように置換されます。
BlogPage.txt
<img src="カテゴリUUID/categoryImage.png" WIDTH=60 HEIGHT=60>
CategoryPage.txt
<img src="categoryImage.png" WIDTH=60 HEIGHT=60>
EntryPage.txt
<img src="../categoryImage.png" WIDTH=60 HEIGHT=60>
この置換結果では WIDTH と HEIGHT 属性が大文字になっていてしかも属性値が " " で囲まれていません。更に XHTML ではなく HTML のコードになっています。これもバグです。
CategoryName CategoryPage.txt で使用されるカテゴリ名。 banner に書かれる見出しは getCategoryName を使って CategoryUUID から取得されるので、これとは別です。これは HEAD 要素の中の TITLE 要素のデータとして用いられます。なぜ同じテンプレートファイルの中でカテゴリ名の取得の仕方が異なるかは不明です。相互に置き換え可能かどうかも調べていません。
CategoryStatistics getCategoryStatistics がドキュメントに書き込む HTML コード。次のコードの繰り返しに置換されます。
カテゴリ名: そのカテゴリのエントリ数 <br>
これは XHTML ではなく HTML のコードになっています。これもバグです。
CategoryUUID カテゴリを一意に指す ID。C で始まり数字が 10 個程度続く文字列に置換されます。これは JavaScript の関数を通して色々なカテゴリ固有値に変換されます。またカテゴリ毎のディレクトリの名前にも使用されます。
CategoryUUIDEntriesCountPair getCategoryEntriesCount で使用され、各カテゴリの UUID とそのエントリ数が交互に並んだ JavaScript の配列に置き換えられます。
CategoryUUIDNamePairs getCategoryName で使用され、各カテゴリの UUID とその名前が交互に並んだ JavaScript の配列に置き換えられます。具体的には次のように置換されます。
new Array("カテゴリUUID","カテゴリ名",...,"カテゴリUUID","カテゴリ名")
ContentAreaWidth 環境設定-一般-コンテントエリアの幅 の値。
CookieName Login.html で使用され、private に設定された blog が認証済みかどうかを表す Cookie の名前を表します。実際には blog UUID に置換されます。
Copyright FeedPage.txt で用いられる著作権表示の文字列。次のように置換されます。
&#169; 氏名
氏名環境設定-一般-氏名: で入力した文字列です。&#169; は © のことです。
DateBuild FeedPage.txt で用いられるその blog の最終更新日で、7 RFC 2822 で定められているメールの日時と同じフォーマットで置換されます。
DatePostedBorder date を囲む border を定義するスタイルシートコード。Custom.css でのみ使用され、次のように変換されます。
border:1px solid #000000
DatePublished FeedPage.txt で用いられるその blog の最終公開日で、7 RFC 2822 で定められているメールの日時のフォーマットをベースに次の違いがあります。
  • 曜日がローカライズされていて日本語表記になっています
    ex) (水)
  • タイムゾーンが 地域/都市 という表記になっています
    ex) Asia/Tokyo
プレビューで作成された rss.xml では置換されずにそのまま残っていました。
DayCalendarRows getDayCalendarRows がドキュメントに書き込む XHTML コード。ArchiveCalendarRows とほぼ同じ内容ですが、エントリがある日へのリンクが次のようになります。
<a href="../../..////index.html"></a>
リンクの張り方から DayPage.txt でのみ使用できます。
DayCategories getDayCategories がドキュメントに書き込む HTML コード。ArchiveCategories とほぼ同じ内容ですが、各カテゴリの URI が次のようになります。
../../../カテゴリUUID/index.html
リンクの張り方から DayPage.txt でのみ使用できます。
DayEntriesCount DayPage.txt の統計情報で用いられるその日のエントリ数。
DayHorizontalCategories getDayHorizontalCategories がドキュメントに書き込む XHTML コード。ArchiveHorizontalCategories とほぼ同じ内容ですが、各カテゴリの URI が次のようになります。
../../../カテゴリUUID/index.html
リンクの張り方から DayPage.txt でのみ使用できます。
DocumentBackground XHTML テンプレートファイルにおける BODY 要素のバックグラウンドの色を定義するスタイルシートコード。Custom.css でのみ使用され、#FFFFFF のように スタイルシートで用いられる色の RGB 表現に置換されます。
DocumentRoot FeedPage.txt で用いられるその blog のベース URL。BlogBaseURL と値に違いはありませんが使用できるコンテクストが異なります。
EmailFeedback 各エントリのフィードバック用 XHTML コード。次のように置換されます。
<script language="Java Script"> getFeebackLink("エントリの題名をURLエンコードしたもの"); </script>
エントリの題名の文字コードは UTF-8 が用いられていて、その UTF-8 の文字コードを URL エンコードしてあります。IE (Win/Mac) では元の文字コードが UTF-8 ですと文字化けするようです。UTF-8 に変換する能力が iBlog にあるのですから、エントリの内容なども一貫して UTF-8 にしてもらいたいものです。実態参照ではソースを見ても何が書いてあるのかわかりませんから。
EncodedEmail getFeebackLink がドキュメントに書き込む XHTML コード。環境設定-一般-メイル で設定したメールアドレスに置換されますが、各文字は実態参照形式になっています。
EncryptedPassword private に設定された blog のパスワードを MD5 で暗号化した文字列。Login.html で使用されます。
EncryptedUsername private に設定された blog のユーザ名を MD5 で暗号化した文字列。Login.html で使用されます。
EntryAbstract エントリの要旨。Shift_JIS ではなく実体参照での表記に置き換わります。これは EntryPage.txt で使用されます。
EntryAbstractOrBody エントリの要旨または要旨と本文。Shift_JIS ではなく実体参照での表記に置き換わります。これは FeedPage.txt, BlogPage.txt, CategoryPage.txt で使用されます。要旨だけに置換されるのか、要旨と本文に置換されるのかは 環境設定-プレビュー の中で次のように設定で決まります。
blog に表示する範囲:
BlogPage.txtEntryAbstractOrBody
カテゴリに表示する範囲:
CategoryPage.txtEntryAbstractOrBody
フィードに表示する範囲:
FeedPage.txtEntryAbstractOrBody
EntryBackground blogbodycontainer のバックグラウンド色。スタイルシート名.sxml で定義され、Custom.css で使用されます。これも #FFFFFF というようにスタイルシートの RGB 形式に置換されます。
EntryBody エントリの本文。Shift_JIS ではなく実体参照での表記に置き換わります。これは EntryPage.txt で使用されます。
EntryBorder blogbody を囲む border を定義するスタイルシートコード。Custom.css でのみ使用され、次のように変換されます。
border:1px solid #000000
Custom.css を編集する際にはちょっと気をつけてください。当該部分が ; で終わっていないので、その後ろに何かを続けるとエラーになってしまいます。
EntryCalendarRows getEntryCalendarRows がドキュメントに書き込む XHTML コード。ArchiveCalendarRows とほぼ同じ内容ですが、エントリがある日へのリンクが次のようになります。
<a href="../..////index.html"></a>
リンクの張り方から EntryPage.txt でのみ使用できます。
EntryCategories getEntryCategories がドキュメントに書き込む HTML コード。ArchiveCategories とほぼ同じ内容ですが、各カテゴリの URI が次のようになります。
../../カテゴリUUID/index.html
リンクの張り方から EntryPage.txt でのみ使用できます。
EntryCategoryUUID そのエントリが所属するカテゴリの UUID。BlogPage.txt の中の ForEachEntryEntryPage.txt で用いられる。カテゴリ UUID については CategoryUUID を参照してください。
EntryHorizontalCategories getEntryHorizontalCategories がドキュメントに書き込む XHTML コード。ArchiveHorizontalCategories とほぼ同じ内容ですが、各カテゴリの URI が次のようになります。
../../カテゴリUUID/index.html
リンクの張り方から EntryPage.txt でのみ使用できます。
EntryLink DocumentRoot からのエントリのパス。FeedPage.txtForEachEntry の中で DocumentRoot と共に用いられ、そのエントリの URL を構成しています。ですから次のように置換されます。
カテゴリUUID/エントリUUID/index.html
EntryPostDate エントリの投稿日または更新日。どちらになるかは 環境設定-プレビュー-の表示順: の値によって次のように決まります。
(Date Posted)
投稿日になります。
(Date Modified)
更新日になります。
その他
調べていません。
の表示順: には三つあります。それぞれ次のように影響を与えます。
blog エントリ及びリンクの表示順:
BlogPage.txtEntryPostDate に影響
カテゴリエントリ及びリンクの表示順:
CategoryPage.txtEntryPostDate に影響
フィードエントリの表示順:
FeedPage.txt の pubDate 要素のデータ EntryPostDate に影響
そして FeedPage.txt の場合は 7 RFC 2822 で定義されているメールの日時と同形式に、その他のテンプレートファイルの場合には
(曜日) - - ,
に置換されます。ただし曜日は実体参照で , , ..., を表したものになります。ここがローカライズされています。これは恐らくシステムのロケールの設定に依存しているのだと推測しています。