Entry->Edit 作成メモ  2007.11.22
記事から編集画面に直接行くBookmarklet「Entry->Edit(FC2)」の作成メモ
あまりにも長いので分割。
Entry->Edit自体はこちら
[▽続き]ソースコード(実際はコメントなしの1行):
javascript:
var u=location.href, // ここから
h='http://blog',
f='.fc2.com/control.php?mode=',
l=f+'control&process=entry', // 一覧表示URL
e=f+'editor&process=load&eno=', // 記事編集URL
d=/http:\/\/[\w-]+\.blog(\d+)\.fc2\.com(.+)/; // ここまでは1行で
if(u.match(d)){
n=RegExp.$1;
p=RegExp.$2;
if(p.match(/\/blog-entry-(\d+)\.html.*/)){ // 個別記事
u=h+n+e+RegExp.$1;
}else if(p.match(/\/(blog-category-|category)(\d+).*\.html.*/)){ // カテゴリ別
u=h+n+l+'&cat='+RegExp.$2;
}else if(p.match(/\/blog-date-(\d{6}).*\.html.*/)){ // 月別
u=h+n+l+'&date='+RegExp.$1;
}else{ // その他(の自分のブログページ)
u=h+n+l;
}
location.href=u;
}

コードの説明:
現ページURLを正規表現にかけて編集画面へ飛ばしてるだけ。
(正規表現はもっと厳密に書けるかも。)

資料:(URLと正規表現)
 ○:サーバ「blog**」の番号
 □:記事やカテゴリの番号
 ▲:編集画面URLに関係しない数字

●個別記事
http://ブログ名.blog○.fc2.com/blog-entry-□.html (他に#more、#comment、#trackback)
 ↓ 正規表現
http:\/\/[\w-]+\.blog(\d+)\.fc2\.com\/blog-entry-(\d+)\.html.*
 ↓ 移動先(個別記事編集)
http://blog○.fc2.com/control.php?mode=editor&process=load&eno=□

●カテゴリ別
http://ブログ名.blog○.fc2.com/blog-category-□.html 又は category□-▲.html
 ↓ 正規表現
http:\/\/[\w-]+\.blog(\d+)\.fc2\.com\/(blog-category-|category)(\d+).*\.html.*
 ↓ 移動先(カテゴリ記事一覧)
http://blog○.fc2.com/control.php?mode=control&process=entry&cat=□

●月別("年月"は"YYYYMM"形式)
http://ブログ名.blog○.fc2.com/blog-date-年月.html 又は blog-date-年月-▲.html
 ↓ 正規表現
http:\/\/[\w-]+\.blog(\d+)\.fc2\.com\/blog-date-(\d{6}).*\.html.*
 ↓ 移動先(月別記事一覧)
http://blog○.fc2.com/control.php?mode=control&process=entry&date=年月
※カテゴリ・月別の赤文字部は通常無し。ソース見て付加(POST→GETでもOKだった)。

●TOP
http://ブログ名.blog○.fc2.com 又は 〜.com/ 又は page-▲.html
 ↓ 正規表現
http:\/\/[\w-]+\.blog(\d+)\.fc2\.com(.+)
 ↓ 移動先(過去記事一覧)
http://blog○.fc2.com/control.php?mode=control&process=entry


自分メモ:
正規表現
・URLのパターン化は「\/」と「\.」の忘れに注意(特に「.」はそのままでもマッチする)。
・ファイル以外は「.com」と「.com/」、「dir」と「dir/」の両方にマッチさせる。

JavaScript
・IEのBookmarkletは500字以内か外部ファイル化する。
・1行化で"else if"や"var a"の空白まで削除しない。
・グローバル変数(var無し)だと最後の式が評価され画面表示される場合あり。
・var a,b=1,c=2;と並べて書ける。
・正規表現パターンで変数を使用する方法ある?
・正規表現パターン「/abc/」は引用符で囲まない。(「"/abc/"」「/"abc"/」ともにNG)

Bookmarklet
・作成画面のWYSWYGエディタのURLボタンは使わない。
(「"」「&」がHTMLエスケープされ、逆に正規表現の「\/」「\.」が解除される。)
Secret

 (承認後掲載になります)

TrackBackURL
→http://denshiki.blog33.fc2.com/tb.php/26-8b081dbe