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.2FeedPage.txt3.3HomePage.txt3.4ArchivePage.txt3.5BlogPage.txt3.6CategoryPage.txt3.7DayPage.txt3.8EntryPage.txt3.9YearPage.txt4 JavaScript 4.1Digest.js4.2CommonLib.js5 スタイルシート 5.1スタイルシート名.sxml5.2スタイルシート名.css5.3Custom.css6 構成要素リファレンス 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 上の文書を参照しないで色々試して使い方を覚えました。いわば我流ですから、きっとこういう点があると思います。
この文書は図示部分をイメージではなくスタイルシートによる見た目の制御で行っています。このため、これらの部分を意図どおりに参照するためにはきちんとスタイルシートに対応したブラウザが必須になります。イメージとしなかった理由は
ラベルという表記します。サブメニューなどを辿る場合はそれらを - で繋ぎます。
~/Sites/,
~/Sites/index.htmlのように表示されます。
アクセスキー表題や内容を表す短い言葉 という具合に表記します。文中の当該箇所ではアクセスキーは書いているだけで定義はしていませんが、末尾の
参考 URLでのリンクでは定義しています。
iBlog の個人のデータやファイルは ~/Library/Application Support/iBlog/
にあります。この下の Javascript/
, Stylesheets/
, TemplateSets/
を自由にカスタマイズできます。
これらカスタマイズできるディレクトリやファイルは、いつでもオリジナルを復元できます。オリジナルは /Applications/iBlog.app/Contents/Resources/
の下の同名のディレクトリやファイルが初期状態のものです。取り返しがつかない操作をしてしまった場合は、ここからコピーして初期状態に戻せるので安心してカスタマイズできます。
カスタマイズできるファイルの構成を図示します。各ファイルの詳細についてはファイル名についているリンクを辿ってください。設定により使用されないものは破線で、全 blog に共通のものは太線で囲んでいます。
~/Library/Application Support/iBlog/
Javascript/
Login.html
Digest.js
CommonLib.js
TemplateSets/
FeedPage.txt
HomePage.txt
テンプレートセット名/
ArchivePage.txt
BlogPage.txt
CategoryPage.txt
DayPage.txt
EntryPage.txt
YearPage.txt
テンプレートから生成される blog の画面遷移をなぞって、テンプレートファイル間の画面遷移として図示します。ここでは private に設定された blog とします。public に設定された blog では Login.html
への遷移がありません。また、XML Feed を作成
の いいえ
にチェックをした blog では FeedPage.txt
への遷移はありません。
HomePage.txt─(blog 名)─→BlogPage.txtBlogPage.txt─(未認証時自動で)─→Login.html│ ├─(カレンダーの日付け)────→DayPage.txt│ ├─(カテゴリ名)────────→CategoryPage.txt│ ├─(Browse archives by date )─→ArchivePage.txt│ ├─(Syndicate this site )───→FeedPage.txt│ └─(Read More )────────→EntryPage.txtDayPage.txt─(未認証時自動で )─→Login.html│ ├─(blog 名 )─────────→BlogPage.txt│ ├─(Browse archives by date )─→ArchivePage.txt│ ├─(Syndicate this site )───→FeedPage.txt│ └─(エントリタイトル)─────→EntryPage.txtCategoryPage.txt─(未認証時自動で)─→Login.html│ ├─(blog 名 )───────────→BlogPage.txt│ ├─(カレンダーの日付け)──────→DayPage.txt│ ├─(カテゴリ名)──────────→CategoryPage.txt│ ├─(Browse archives by date )───→ArchivePage.txt│ ├─(Syndicate this site )─────→FeedPage.txt│ └─(Read More )──────────→EntryPage.txtArchivePage.txt─(未認証時自動で)─→Login.html│ ├─(blog 名)───────────→BlogPage.txt│ ├─(Syndicate this site)─────→FeedPage.txt│ └─(年 )─────────────→YearPage.txtEntryPage.txt─(未認証時自動で)─→Login.html│ ├─(blog 名 )──────────→BlogPage.txt│ ├─(カレンダーの日付け)─────→DayPage.txt│ ├─(カテゴリ名)─────────→CategoryPage.txt│ ├─(Browse archives by date )──→ArchivePage.txt│ ├─(Syndicate this site )────→FeedPage.txt│ └─(Read More )─────────→EntryPage.txtYearPage.txt─(未認証時自動で)─→Login.html│ ├─(blog 名 )─────────→BlogPage.txt│ ├─(Browse archives by date )─→ArchivePage.txt│ └─(カレンダーの日付け)────→DayPage.txtLogin.html─(認証成功で)─→BlogPage.txtFeedPage.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 のようなチェッカーがあれば十分だと思います。
このことは普段エントリの内容を書くときにも注意が必要です。エントリの本文の中では
ところでオリジナルの XHTML テンプレートファイルには間違いやよくないところが散見されます。下にどのような間違いがあるかを列挙しますので、これらを直しながらインデントを付けるなどして整形することをお薦めします。XHTML テンプレートファイルの内容をほぼ理解できるようになるからです。
テンプレートファイルの構成要素には次の 5 種類があります。
XHTML の要素の id 属性値。そのファイルの中で一つだけしかありません。テンプレートファイルの基本構成要素を表しています。
<element id="name">
...
</element>
XHTML の要素の class 属性値。その要素がどのような種類のものであるかを表しています。
<element name="name">
...
</element>
iBlog が置き換える部分。一般には状況に応じて置き換え結果が変わります。この状況をこの文書ではコンテクストと呼んでいます。このためファイルによって有効であったり無効であったり、同じファイルの中でも有効であったりなかったりします。
あるいは<$name$>
というように指定されています。このブラケットの違いが何を意味するか調査していませんが、XHTML の中で使用されるための置換と XML のデータ領域の中で使用されるための置換という違いがあると推測しています。[$name$]
iBlog の内部動作はブラックボックスで筆者は十分なドキュメントを手に入れていないのでコンテクストについては予想の域を出ませんが、コンテクストには次のものがあると考えています。
ArchivePage.txtと
DayPage.txtそれから
YearPage.txtのファイルコンテクストで有効になるコンテクスト。このコンテクストでは CONTROL ArchiveList が利用できます。
BlogPage.txtと
CategoryPage.txtそれから
FeedPage.txtのファイルコンテクストで有効になるコンテクスト。このコンテクストでは CONTROL ForEachEntry が利用できます。
HomePage.txtのファイルコンテクストで有効になるコンテクスト。このコンテクストでは CONTROL ForEachBlog が利用できます。
Custom.cssの内部で有効になるコンテクストです。
繰り返しなどを制御するための XML タグ。
というように指定されています。<name>
...
</name>
CommonLib.js に書かれている JavaScript 関数で blog の各 XHTML ページの中で呼び出され、大抵の場合 REPLACE によって予め固定された XHTML コード(HTML コードも混在しているようです)をドキュメントオブジェクトに書き込みます。
大抵はこのように指定されています。中には引数を伴うものもあります。<script language="JavaScript"> name() </script>
カスタマイズのレベルを考えてみました。自分の blog をどうしたいかを整理する指針にしてください。
iBlog によって生成された blog のファイル構成を知っておくことがカスタマイズする上で役に立つこともあります。そこで公開後の blog のファイル構成とテンプレートファイルへの対応を書いておきます。
archive.html←
ArchivePage.txt
カテゴリUUID/: カテゴリ毎のディレクトリ
categoryImage.png: カテゴリのイメージファイル
エントリUUID/: エントリ毎のディレクトリ
index.html←
EntryPage.txt
index.html←
CategoryPage.txt
CommonLib.js←
CommonLib.js
Digest.js←
Digest.js
index.html←
BlogPage.txt
Login.html←
Login.html
rss.xml←
FeedPage.txt
Login.html
private に設定された blog の認証画面のテンプレート。このファイルは全ての blog に共通のテンプレートファイルであることに注意が必要です。
このファイルの構成は以下のようになっています。
Digest.js の MD5 暗号化機能を利用して、予め暗号化されたユーザ名(EncryptedUsername)とパスワード(EncryptedPassword)とユーザ入力を照合し、一致すれば index.html(BlogPage.txt
) に移動し、一致しなければ再度 Login.html
を読み込みます。これらの動作は JavaScript によって実装されています。また、REPLACE AuthenticationLink によって、認証が必要な場合このファイルに遷移して認証するのですが、この遷移も JavaScript によって実装されています。そして、認証済みであるかどうかは特に暗号化されていない Cookie によってチェックしています。このため次の点に注意しなければなりません。
Login.htmlに遷移する前のページはブラウザによって既に読み込まれています。
ですから private に設定された blog は見かけ上認証によって保護されているに過ぎず、とても認証と呼べる仕組みにはなっていません。blog の閲覧者を安全に制限することは iBlog 自身にはできないのです。むしろこの仕組みをユーザへの注意の喚起なしに提供することによって善意の人を排除し悪意の人を容易に通す仕組みになっているとの誹りを免れ得ません。
以上の注意をよく理解し想定されるリスクを承知の上で private に設定された blog を公開するときの便利のためにこのファイルを日本語化したものを提供しています(5
ログイン画面を日本語化する)。また、3 を回避する方法の紹介もしています(6
JavaScript が OFF のブラウザを弾く)。
FeedPage.txt
その blog の RSS ファイルのテンプレートです。このファイルを取り込むことにより iBlog の Reader モードでその blog を閲覧できます。
このファイルの構成は以下のようになっています。
HomePage.txt
プレビューで生成される blog の一覧のページのテンプレートファイル。
このファイルの構成は以下のようになっています。
ArchivePage.txt
アーカイブのページのテンプレートファイル。エントリがある年が列挙されます。
このファイルの構成は以下のようになっています。
BlogPage.txt
blog のトップページのテンプレートファイル。
このファイルの構成は以下のようになっています。
CategoryPage.txt
カテゴリー毎のページのテンプレートファイル。
このファイルの構成は以下のようになっています。
DayPage.txt
日毎のアーカイブのページのテンプレートファイル。
このファイルの構成は以下のようになっています。
EntryPage.txt
エントリ単独のページのテンプレートファイル。
このファイルの構成は以下のようになっています。
YearPage.txt
特定の年の月毎のページのテンプレートファイル。
このファイルの構成は以下のようになっています。
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><$REPLACE名$></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 ファイルをコピーしてそれをベースにするのもよいでしょう。このファイルのカスタマイズの基本は次のとおりです。
オリジナルの スタイルシート名.css
には間違いがあります。
この赤字の none は letter-spacing の値として使用できません。normal にしておくか、この行を削除しておいた方がよいでしょう。また.description {...
letter-spacing: none;
}
honeydew.cssにも行末に
;がないという間違いがあります。これらの間違いを修正した css ファイル群を用意しています。(
8オリジナルスタイルシートの間違い)
Custom.css
このファイルは スタイルシート名.sxml
から styles-site.css
を作成する際に用いられるテンプレートファイルです。このファイルは sxml ファイルをスタイルシートとして使用する全ての blog に影響を与えるので注意が必要です。普段は iBlog の GUI でスタイルシートを編集したいがその結果は一律カスタマイズしたいというときに使用します。
このファイルの構成は以下のようになっています。
オリジナルのこのファイルには間違いを三箇所見つけました。一箇所は
.date {...
<$DatePostedBorder$>
...
}
#banner {...
<$HeaderBorder$>
...
}
スタイルシート名.cssで挙げたのと同じ間違いです。この間違いを修正した css ファイル群を用意しています。(
8オリジナルスタイルシートの間違い)
| 名前 | 説明 |
|---|---|
| banner | ページ上部のバナー部分。ここに blog の名前やカテゴリがページの表題として表示されます。 |
| container | クラス blog が入る部分。オリジナルテンプレートではクラス blog を囲っているだけですが、要はそのページの肝心の部分が入るところということです。 |
| links | ページ右または左サイドのナビゲーションコンテンツ部分。ここにカレンダーや各カテゴリへのリンクなどが表示されます。 |
| 名前 | 説明 |
|---|---|
| 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 テンプレートファイルではどこにも使用されておらず、スタイルシート名.cssと Custom.cssだけで定義されているクラス。 |
| title | エントリのタイトルの部分。 |
| 名前 | 説明 |
|---|---|
| ArchiveCalendarRows |
getArchiveCalendarRows がドキュメントに書き込む XHTML コード。置換結果はカレンダーの日付け達を表すテーブルの行(TR 要素の集まり)で、次のような XHTML コードです。(実際には改行もインデントもありません。)
TD 要素の内容が日で、その日のエントリがある場合は、その日のアーカイブ( DayPage.txt)へのリンクになります。このリンクは次のようになります。 CLASS が含まれているの構成図を書いておきます。 リンクの相対パスのあり方から、(getArchiveCalendarRows を通して) blog のベースディレクトリのファイル( ArchivePage.txt, BlogPage.txt)で使用されることが前提になります。実際には ArchivePage.txtでのみ使用されます。 |
| ArchiveCategories |
getArchiveCategories がドキュメントに書き込む HTML コード。置換結果はその blog に含まれるカテゴリ(CategoryPage.txt)へのリンクを HTL の各行(BR 要素が使われているということ)に配した HTML コードで、次のようなものの繰り返しです。 リンクの相対パスのあり方から、(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 要素の代わりに二つの が使用されています。ページのヘッダー部やフッター部にカテゴリへのリンクを横に並べたりするときに使えます。 |
| ArchiveLink |
ArchivePage.txtと DayPage.txtのアーカイブ項目の 相対 URI。 ArchivePage.txtの中では次のように置換されます。
DayPage.txtの中では次のように置換されます。 この REPLACE は ArchiveList の中で利用できます(推測)。 |
| ArchivesLink |
ArchivePage.txtから生成される archive.htmlへの相対 URL。 ナビゲーションエディタの Archiveの項の内容で使用される。 |
| ArchiveMonth |
DayPage.txtの TITLE 要素および banner の中の H3 要素の中で使用される月の値。 |
| ArchiveTitle |
ArchivePage.txtと DayPage.txtで使用されるアーカイブ項目のタイトル。 ArchivePage.txtならば 2003 というように西暦の年に置き換わり、 DayPage.txtならばエントリのタイトルに置き換わります。 この REPLACE は ArchiveList の中で利用できます(推測)。 |
| ArchiveYear |
YearPage.txtと DayPage.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.txtと HomePage.txtで使用されます。 Blog- ナビゲーションエディタを表示によって Description という項目を作って、その中に <$BlogDescription$> と入れましたが置き換えられませんでした。また、 BlogPage.txtに直接書いてみましたがこれも置き換えられずにそのまま表示されてしまいます。 |
| BlogEntriesCount | getBlogEntriesCount がドキュメントに書き込む HTML コード。その blog が含むエントリ数に置換されます。 |
| BlogHorizontalCategories | getBlogHorizontalCategories がドキュメントに書き込む XHTML コード。ArchiveHorizontalCategories と同じ内容に置換されます。 |
| BlogLink |
HomePage.txtの ForEachBlog の中で使用される blog の URI。次のように置換されます。
|
| BlogName |
その blog の名前。FeedPage.txt, HomePage.txt, BlogPage.txtおよびナビゲーションコンテンツで使用されています。 |
| CalendarHead |
getCalendarHead がドキュメントに書き込む文字列。次のように置換されます。
|
| CalendarRows |
各ページおけるカレンダーの本体部分を表す JavaScript コードに置換されます。各日のアーカイブ(DayPage.txtから生成されるファイル)へのパスが異なるために、使用されるファイルによって置換結果が異なります。次のようになります。
|
| Categories |
ナビゲーションエディタの Categoryの項で使用される、各カテゴリへのリンクを表す JavaScript コードに置換されます。各カテゴリのページ( CategoryPage.txtから生成されるファイル)へのパスが異なるために、使用されるファイルによって置換結果が異なります。次のようになります。
|
| CategoryCalendarRows |
getCategoryCalendarRows がドキュメントに書き込む XHTML コード。ArchiveCalendarRows とほぼ同じ内容ですが、エントリがある日へのリンクが次のようになります。
リンクの張り方から CategoryPage.txtでのみ使用できます。 |
| CategoryCategories |
getCategoryCategories がドキュメントに書き込む HTML コード。ArchiveCategories とほぼ同じ内容ですが、各カテゴリの URI が次のようになります。
リンクの張り方から YearPage.txtと CategoryPage.txtでのみ使用できます。 |
| CategoryHorizontalCategories |
getCategoryHorizontalCategories がドキュメントに書き込む XHTML コード。ArchiveHorizontalCategories とほぼ同じ内容ですが、各カテゴリの URI が次のようになります。
リンクの張り方から CategoryPage.txtでのみ使用できます。 |
| CategoryImage |
そのカテゴリのイメージを表す HTML コード。BlogPage.txt, CategoryPage.txt, EntryPage.txtで使用されそれぞれ次のように置換されます。
|
| CategoryName |
CategoryPage.txtで使用されるカテゴリ名。 banner に書かれる見出しは getCategoryName を使って CategoryUUID から取得されるので、これとは別です。これは HEAD 要素の中の TITLE 要素のデータとして用いられます。なぜ同じテンプレートファイルの中でカテゴリ名の取得の仕方が異なるかは不明です。相互に置き換え可能かどうかも調べていません。 |
| CategoryStatistics |
getCategoryStatistics がドキュメントに書き込む HTML コード。次のコードの繰り返しに置換されます。
これは XHTML ではなく HTML のコードになっています。これもバグです。 |
| CategoryUUID |
カテゴリを一意に指す ID。Cで始まり数字が 10 個程度続く文字列に置換されます。これは JavaScript の関数を通して色々なカテゴリ固有値に変換されます。またカテゴリ毎のディレクトリの名前にも使用されます。 |
| CategoryUUIDEntriesCountPair | getCategoryEntriesCount で使用され、各カテゴリの UUID とそのエントリ数が交互に並んだ JavaScript の配列に置き換えられます。 |
| CategoryUUIDNamePairs |
getCategoryName で使用され、各カテゴリの UUID とその名前が交互に並んだ JavaScript の配列に置き換えられます。具体的には次のように置換されます。
|
| ContentAreaWidth |
環境設定- 一般- コンテントエリアの幅の値。 |
| CookieName |
Login.htmlで使用され、private に設定された blog が認証済みかどうかを表す Cookie の名前を表します。実際には blog UUID に置換されます。 |
| Copyright |
FeedPage.txtで用いられる著作権表示の文字列。次のように置換されます。 氏名 は 環境設定- 一般- 氏名:で入力した文字列です。© は © のことです。 |
| DateBuild |
FeedPage.txtで用いられるその blog の最終更新日で、 7RFC 2822 で定められているメールの日時と同じフォーマットで置換されます。 |
| DatePostedBorder |
date を囲む border を定義するスタイルシートコード。Custom.cssでのみ使用され、次のように変換されます。
|
| DatePublished |
FeedPage.txtで用いられるその blog の最終公開日で、 7RFC 2822 で定められているメールの日時のフォーマットをベースに次の違いがあります。
rss.xmlでは置換されずにそのまま残っていました。 |
| DayCalendarRows |
getDayCalendarRows がドキュメントに書き込む XHTML コード。ArchiveCalendarRows とほぼ同じ内容ですが、エントリがある日へのリンクが次のようになります。
リンクの張り方から DayPage.txtでのみ使用できます。 |
| DayCategories |
getDayCategories がドキュメントに書き込む HTML コード。ArchiveCategories とほぼ同じ内容ですが、各カテゴリの URI が次のようになります。
リンクの張り方から DayPage.txtでのみ使用できます。 |
| DayEntriesCount |
DayPage.txtの統計情報で用いられるその日のエントリ数。 |
| DayHorizontalCategories |
getDayHorizontalCategories がドキュメントに書き込む XHTML コード。ArchiveHorizontalCategories とほぼ同じ内容ですが、各カテゴリの URI が次のようになります。
リンクの張り方から DayPage.txtでのみ使用できます。 |
| DocumentBackground |
XHTML テンプレートファイルにおける BODY 要素のバックグラウンドの色を定義するスタイルシートコード。Custom.cssでのみ使用され、#FFFFFF のように スタイルシートで用いられる色の RGB 表現に置換されます。 |
| DocumentRoot |
FeedPage.txtで用いられるその blog のベース URL。BlogBaseURL と値に違いはありませんが使用できるコンテクストが異なります。 |
| EmailFeedback |
各エントリのフィードバック用 XHTML コード。次のように置換されます。
エントリの題名の文字コードは 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で使用されます。要旨だけに置換されるのか、要旨と本文に置換されるのかは 環境設定- プレビューの中で次のように設定で決まります。
|
| EntryBackground |
blogbody と container のバックグラウンド色。スタイルシート名.sxmlで定義され、 Custom.cssで使用されます。これも #FFFFFF というようにスタイルシートの RGB 形式に置換されます。 |
| EntryBody |
エントリの本文。Shift_JIS ではなく実体参照での表記に置き換わります。これは EntryPage.txtで使用されます。 |
| EntryBorder |
blogbody を囲む border を定義するスタイルシートコード。Custom.cssでのみ使用され、次のように変換されます。
Custom.cssを編集する際にはちょっと気をつけてください。当該部分が ;で終わっていないので、その後ろに何かを続けるとエラーになってしまいます。 |
| EntryCalendarRows |
getEntryCalendarRows がドキュメントに書き込む XHTML コード。ArchiveCalendarRows とほぼ同じ内容ですが、エントリがある日へのリンクが次のようになります。
リンクの張り方から EntryPage.txtでのみ使用できます。 |
| EntryCategories |
getEntryCategories がドキュメントに書き込む HTML コード。ArchiveCategories とほぼ同じ内容ですが、各カテゴリの URI が次のようになります。
リンクの張り方から EntryPage.txtでのみ使用できます。 |
| EntryCategoryUUID |
そのエントリが所属するカテゴリの UUID。BlogPage.txtの中の ForEachEntry と EntryPage.txtで用いられる。カテゴリ UUID については CategoryUUID を参照してください。 |
| EntryHorizontalCategories |
getEntryHorizontalCategories がドキュメントに書き込む XHTML コード。ArchiveHorizontalCategories とほぼ同じ内容ですが、各カテゴリの URI が次のようになります。
リンクの張り方から EntryPage.txtでのみ使用できます。 |
| EntryLink |
DocumentRoot からのエントリのパス。FeedPage.txtの ForEachEntry の中で DocumentRoot と共に用いられ、そのエントリの URL を構成しています。ですから次のように置換されます。
|
| EntryPostDate |
エントリの投稿日または更新日。どちらになるかは 環境設定- プレビュー- 〜の表示順:の値によって次のように決まります。
〜の表示順:には三つあります。それぞれ次のように影響を与えます。
FeedPage.txtの場合は 7RFC 2822 で定義されているメールの日時と同形式に、その他のテンプレートファイルの場合には に置換されます。ただし曜日は実体参照で 日, 月, ..., 土を表したものになります。ここがローカライズされています。これは恐らくシステムのロケールの設定に依存しているのだと推測しています。 |