2004年09月02日 (木)
iblogPatcher
のブログ定義ファイルテンプレート
ユーザが値を埋めなければならない箇所は
%短い説明%
というように % %
で囲んでいます。黄色く強調してあります。それぞれの説明は後述します。 %BLOG = (
'preview' => "$ENV{'HOME'}/Sites/iblog/%BlogUUID%",
'publish' => '%公開先のローカルでのフォルダー%',
);
%ACTION = (
'preview' => {
'before' => {
'onStart' => undef,
'file' => undef,
'onFinish' => undef,
},
'after' => {
'onStart' => sub {
#---- iBlog のバグを修正する(必須) ----------------------------
# シングルクォーテーションの間違ったエスケープを直す
# Latin2UTF8::OnStart(@_) より前になければならない
EscapeSQuot::OnStart(@_);
# ラテン文字扱いによる文字化けを解消
Latin2UTF8::OnStart(@_);
# <$BlogDescription$> の &<"> を実体参照にする
HtmlChar2EntityRef::OnStart(@_);
# iBlog が REPLACE に出力する間違った XHTML を直す
ValidXhtml::OnStart(@_);
#--------------------------------------------------------------
#---- ブラウザなどのバグを回避する(ほぼ必須) ------------------
# IE でフィードバックのサブジェクトが文字化けしないようにする
IEFeedback::OnStart(@_);
# title に勝手に挿入された改行コードを取り去る
DeleteTitleLF::OnStart(@_);
#--------------------------------------------------------------
#---- 他のプラグインの設定(オプション) ------------------------
# コピーターゲットを追加する
push @{$COPY_FILES::Conf{'target'}}, {
'src' => 'AroundEntries.js',
'dst' => 'AroundEntries.js',
};
# RECENT_ENTRIES_JS の設定をする
$RECENT_ENTRIES_JS::entry_count = 15;
$RECENT_ENTRIES_JS::entry_before = '●';
$RECENT_ENTRIES_JS::entry_after = '<br />';
$RECENT_ENTRIES_JS::jsfile = 'recent_entries.js';
# 独自の REPLACE を定義する
push @{$MY_REPLACE::Conf{'replace'}}, (
{
# キーワード
'name' => '<$MetaKeywords$>',
'value' => '%キーワード%',
'context' => 'html',
},
{
# ブログのドキュメントルート
'name' => '[$DocumentRoot$]',
'value' => '%公開先URL%',
},
{
# HaloScan ID
'name' => '<$HaloScanID$>',
'value' => '%HaloScanアカウント名%',
},
{
# Copyright
'name' => '<$MetaCopyright$>',
'value' => '© %blogの運営期間(西暦年)% <$MetaAuthor$>, All rights reserved.',
},
{
# Author
'name' => '<$MetaAuthor$>',
'value' => '%名前もしくはハンドル名%',
},
{
# Mail Address
'name' => '<$LinkMade$>',
'value' => '%メールアドレス%',
},
);
# 連続する <br /> を一つにまとめる
# foreach my $page (keys %CHANGE_CONTENT::Conf) {
# push @{$CHANGE_CONTENT::Conf{$page}}, {
# 'condition' => '<br ¥/>(?:¥s*<br ¥/>)+',
# 'replace' => '<br ¥/>',
# 'option' => 'gs',
# };
# }
# meta タグで description に <$BlogDescription$> を使用するとき
# & < " > を実体参照にする
foreach (
'BlogPage',
'CategoryPage',
'EntryPage',
'ArchivePage',
'YearPage',
'DayPage',
) {
my $targetPage = $_;
push @{$CHANGE_CONTENT::Conf{$targetPage}}, {
'condition' => '<meta name="description" content="((?:[^"]|"(?! ¥/>))*)" ¥/>',
'replace' => '¥'<meta name="description" content="¥'.ApplyModule($1, ¥'HtmlChar2EntityRef¥').¥'" ¥/>¥'',
'option' => 'es',
};
}
#--------------------------------------------------------------
#---- iBlog の機能拡張(オプション) ----------------------------
# 日時の書式を変更する
ReformatDateTime::OnStart(@_);
# UNYO_DISABLE を有効にする
UNYO_DISABLE::OnStart(@_);
# 独自 REPLACE を有効にする
MY_REPLACE::OnStart(@_);
# URI2LINK を有効にする
URI2LINK::OnStart(@_);
# QuickTimeObject を有効にする
QuickTimeObject::OnStart(@_);
# 高速化のための前処理をする
# CHANGE_ENCODE::OnStart(@_);
#--------------------------------------------------------------
1; # onStart がエラーを返さないようにするため
},
'file' => sub {
#---- 必須 ----------------------------------------------------
# ファイル書き換えを実行する
CHANGE_CONTENT::File(@_);
#--------------------------------------------------------------
#---- オプション ----------------------------------------------
# エンコードを変更する
# 他の大抵のプラグインよりも先に行う。
# CHANGE_ENCODE::File(@_);
# 全エントリをリストアップした entries.js のデータを収集する
ENTRIES_JS::File(@_);
# エントリのデータを収集する
ENTRYPAGE_ACTION::File(@_);
# カテゴリのデータを収集する
CATEGORYPAGE_ACTION::File(@_);
#--------------------------------------------------------------
},
'onFinish' => sub {
#---- 必須 ----------------------------------------------------
# ファイル書き換えを実行する
CHANGE_CONTENT::OnFinish(@_);
#--------------------------------------------------------------
#---- オプション ----------------------------------------------
# 全エントリをリストアップした entries.js ファイルを作成する
ENTRIES_JS::OnFinish(@_);
# カテゴリの unyo.js を作成する
CATEGORYPAGE_ACTION::OnFinish(@_);
# ブロッグの unyo.js を作成する
BLOGPAGE_ACTION::OnFinish(@_);
# 最近のエントリ一覧を作成する
RECENT_ENTRIES_JS::OnFinish(@_);
# entries.js 活用のための各種ファイルをコピーする
COPY_FILES::OnFinish(@_);
# 次回エンコード変更のための .CHANGE_ENCODE.time を作成する
# 一番最後に行う
# CHANGE_ENCODE::OnFinish(@_);
#--------------------------------------------------------------
},
},
},
'publish' => {
'before' => {
'onStart' => undef,
'file' => undef,
'onFinish' => undef,
},
'after' => {
'onStart' => sub {
#---- 必須 ----------------------------------------------------
# iBlog に頼らず iblogPatcher で公開版 RSS を作成する準備
$GenPubRSS::Conf{'DocumentRoot'} = '%公開先URL%';
#--------------------------------------------------------------
},
'file' => undef,
'onFinish' => sub {
#---- 必須 ----------------------------------------------------
# iBlog に頼らず iblogPatcher で公開版 RSS を作成する
GenPubRSS::OnFinish(@_);
#--------------------------------------------------------------
#---- オプション ----------------------------------------------
# 公開後オープンするファイルを設定する
$OPEN_FILES::Conf{'target'} = [
# バックアップを行う
# "$ENV{'HOME'}/Library/Script/iBlogFreezer",
# BlogPeople に Ping する
# "$ENV{'HOME'}/Library/Application Support/iblogPatcher/PingBlogPeople.webloc",
# Bulkfeeds に Ping する
# "$ENV{'HOME'}/Library/Application Support/iblogPatcher/PingBulkfeeds.webloc",
];
# 設定されたファイルをオープンする
# OPEN_FILES::OnFinish(@_);
#--------------------------------------------------------------
},
},
},
);
1;
- %BlogUUID%
-
プレビューで保存されるフォルダーの名前です。
ホームから Sites > iblog と Finder で辿ると B1234567890 というようなフォルダーがあります。それを入れます。
- %公開先のローカルでのフォルダー%
-
iDisk をマウントしたときの公開先のパスです。
多くの場合 /Volumes/.Macアカウント/Sites/iblog か /Volumes/.Macアカウント/Sites/iblog/BlogUUID になります。
- %キーワード%
-
あなたのサイトのキーワードです。複数ある場合はカンマで区切ってスペースなど入れないでください。
これは検索エンジンを助けます。
- %公開先URL%
-
公開後の URL のベース部分です。
多くの場合 http://homepage.mac.com/.Macアカウント/iblog あるいは http://homepage.mac.com/.Macアカウント/iblog/BlogUUID になります。
最後に / や index.html は入れないでください。
これは下の方でも使用されています。こちらの置き換えもお忘れなく。
- %HaloScanアカウント名%
-
HaloScan で取得したアカウント名(ID)です。
- %blogの運営期間(西暦年)%
-
著作権の発生期間です。blog の運営期間でよいでしょう。
例えば 2003, 2004 とかです。
meta タグによる copyright が上の書式で本当によいかどうか実は知りません。
- %名前もしくはハンドル名%
-
あなたの名前もしくはハンドル名です。
ここに日本語は使わない方がよいと思います。
- %メールアドレス%
-
あなたのメールアドレスです。
メールアドレスの収集に利用されるのが嫌なときは、人が見たらわかるけどそのままでは使えないような書き方をしておくか、全文字を実体参照にしてしまうかなどをしてください。
このシリーズはまだ続きがあります。プラグインの機能を活かしたエントリの書き方などです。
Posted: 13:32
| Comment
| Trackback
以下、類似エントリです。
|
Quick Links
お知らせ
Blog コメント
個々のエントリに関するコメントでないことはこちらにコメントしてください。時々古い方から消していきます。予めご了承下さい。
カレンダー
カテゴリ
アーカイブ
月毎のエントリ一覧
旧サイト引継ぎ(抜粋)
XML/RSS Feed
検索
最近のコメント
BlogPeople
任意のリンクサイトへジャンプ
※最近更新の 24 サイトまで表示
.Mac Tips について
.Mac および .Mac 配布アプリケーションを利用するためのノウハウやツールを提供しているウェブログです。iBlog の諸問題を克服し様々な機能を追加するためのツール iblogPatcher とそのプラグインや iBlog のバックアッププログラム iBlogFreezer の開発と公開、.Mac カウンタなど .Mac 提供機能の流用&カスタマイズ方法の紹介などがメインコンテンツです。
各種検査結果
うっかりすると駄目になってしまいます。エラーが検出されたときは Blog コメントでお知らせください。
Service & Community
Statistics
Total entries in this blog:
Total entries in this category:
Published On: 2006-08-10 20:42
DotMac Counter:
|