記事の編集画面までサクッと移動できるブックマークレット作った

MovableTypeに来て、早6ヶ月。シックス・アパート株式会社さんいつもお世話になってます。

テンプレートを編集してみたり、プラグインと呼ばれる便利な部品を付けたり外したりしながら少しずつMovableTyperとしてのスキルが上がってきたようにおもいます。

で。ここから本題。

「記事を直したい」と思う時ってありますよね?私はブラウザで自分のブログを見ている時に特におもいます。

そして、MovableTypeで記事を編集するときは、

  1. 記事の一覧を開く
  2. 編集したい記事を探す
  3. 編集したい記事を開く

このステップを踏まなければなりません。

もっと短くしたい。

てゆーか、「今見ている記事から直接編集画面に行きたい!」

そこで我々必死に探しました。

そして、あなたの願い...見つけましたよ。

8年前のスクリプトにヒントを得た

記事ページに「編集」っていうリンクを設置する方法もあったのですが...。

「ブログを見に来てくれた人に、
編集なんていうリンクは必要かね?カイジくん」

と言われた気がして、ジタバタする私。




がっ・・・・!



風雲急っ・・・・!



地獄に垂れた蜘蛛の糸っ・・・・!

絶望的状況に溺れかけてるオレの前に現れた救助船・・・
救いの光・・・・・・・・・・・・!

小川宏高さんっ・・・・!2004年の記事、ヒットっ・・・・!

Ogawa::Buzz: "Edit This" Bookmarklet

個別エントリーアーカイブをブラウザで開いている状態でこのBookmarkletをクリックするだけで編集画面を開くことができ、Editリンクがなくても非常に快適です。

ブックマークレットで編集画面にっ・・・・ジャンプっ・・・・!

画期的っ・・・・!

早速このブックマークレットツールバーに配置、(セット!)

実行!(オープン!)








が・・・・駄目っ・・・・・!

カイジ遊び終わり。)



原因

  • コメントフォームが設置されていないと動かない仕組みだった

調査

  • 編集画面を開くためには「EntryID」が必要(1~連番で振られる番号)

対策

  • 隠し属性で記事ページに埋め込めばいいっぽい

ブックマークレットを動かすための準備

「ブログ記事」テンプレートに以下のコードを埋め込んで、再構築してください。

<input type="hidden" id="entryid" value="<$MTEntryID$>" />

inputタグですが、typeをhiddenにしているので、見た目に影響はない(はず)です。

私は</body>タグの直前に入れています。

これでvalueに記事のEntryIDが入ります。

MTEntryID | テンプレートタグリファレンス

ブックマークレット

閲覧中の記事を編集

javascript:
  f=document.getElementById('entryid');
  id=f.value;
  location.href='http://example.com/mt/mt.cgi?
    __mode=view&_type=entry&id='+id+'&blog_id=1';

記事をランダムに選んで編集

javascript:
  id=(parseInt(Math.random()*300));
  if(id==0)id++;
  location.href='http://example.com/mt/mt.cgi?
    __mode=view&_type=entry&id='+id+'&blog_id=1';

ランダム版は「今日のおみくじ」的なノリで、過去記事を直したいがために作りました。

ブックマークレットジェネレータ

mt.cgiのURLと、Blog IDを入力して「Generate」してください。

ランダム用のブックマークレットも同時に更新されます。

(例)http://example.com/mt/mt.cgi
(ランダム用)

MovableTypeユーザーのお役に立てれば幸いです:)

このブックマークレットに対するご意見、ご感想は@hirocuekiまでお願いします。