sakito - 生きてるめも このページをアンテナに追加 RSSフィード

2011-10-01

MarsEditで無理矢理はてなダイアリーを更新してみる

MarsEditは、現在のバージョンでははてなダイアリーにログインできません。

よって直接はてなダイアリーを更新することはできません。

また当然ながらはてな記法にも対応していません。

MarsEditのプレビューをはてな記法に対応させ、かつ投稿を実施してみます。

MarsEditのはてな記法への対応

紹介マニアどらふと版: MarsEdit でプレビューできる文法を追加するで書いたように、文法を追加します。

はてな記法のパーサーがHatenaSyntax ¥ Package ¥ Openpearで公開されています。

最新版はanatoo/HatenaSyntax - GitHubです。

MarsEditにそのまま追加できる形式の物をsakito / MarsEditPlugIn / source — Bitbucketに配置しましたので使いたい人は自己責任でご利用ください。

これでMarsEditではてな記法のプレビューが可能になります。

2012/08/01 追記

HTMLも正常表示できるように修正し tar.gz 形式で配布をしています。

https://bitbucket.org/sakito/marseditplugin/downloads

MarsEditにダミーのBlogを追加する

「File」「New Blog…」で新規Blogを追加します。

URLにはてなダイアリーのURLを入力しておきます。

「OK」すると取得不能でエラーになりますが、そのまま継続して設定します。

設定画面の「Editing」で「preview Text Filter」を「HatenaSyntax」にしておいてください。

MarsEditで Local Draftsで記述する時に作成したBlogの設定を利用します。

「Edit Preview Template」でHTML/CSSを変更すればよりはてなダイアリーと同じ状態でプレビューされますので設定は好きにしてください。

はてなダイアリーにはメールで投稿する

はてなダイアリーにはメールで投稿する機能があります。

メールで日記を書く - はてなダイアリーのヘルプ

ここでは MarsEdit から Sparrow を呼び出し、メールを送信するAppleScriptを作成することでメールで更新してみます。

こんな感じ。

set myfrom to "xxxx@example.com" -- 自分のメールアドレス
set hatenato to "xxxx@d.hatena.ne.jp" -- 送信先メールアドレス 
tell application "Sparrow" to activate 
delay 1 
tell application "MarsEdit" 
activate tell document 1 
set tit to get title 
set cont to get body 
set cont to cont & (get extended entry) 
end tell 
end tell 

tell application "Sparrow" 
activate 
set newMessage to make new outgoing message with properties {subject:tit, sender:myfrom, content:cont} 
tell newMessage to make new to recipient at end of to recipients with properties {address:hatenato} 
compose newMessage
 -- 自動送信はしないので自分で送信してください 
end tell

これをAppleScriptエディタで書いて、「~/Library/Application Support/MarsEdit/Scripts」以下に保存します。

MarsEditを再起動すると、MarsEditのスクリプトメニュー内に保存したスクリプトがありますので、選択するとSparrowにMarsEditで現在記述している内容が送信され、メール送信前の状態になります。

問題ないようであれば、そのまま送信すると投稿されます。

まとめ

従来はメール投稿は便利ですがプレビューできませんでしたが、この方法ならローカルでプレビューすることが可能です。

スクリプトを組めばいろいろ応用できるでしょう。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

Connection: close