Evernote Safari5.1 Web クリッパーが公開された

Evernote Safari Web クリッパー公開 « Evernote日本語版ブログ: “Safari のエクステンション Evernote Web クリッパーが Apple Extension Gallery で公開されました。Apple からダウンロード または Evernote から直接ダウンロード。”

やっとEvernoteのWebクリッパーエクステンションが公開されました。Chromeの機能拡張に近い機能を持っているようです。

が、PDFで保存することはできなくなったようです。PDFで保存したい場合はSafari5.1からEvernoteにページをPDFで保存する方法を試してみてください。

Safari5.1からEvernoteにページをPDFで保存する方法

Safari5.1になってEvernoteプラグインが機能しなくなって久しいですが、いまだ新版はリリースされません(と、書いているとリリースされたりして)。

なので、プリントダイアログからEvernoteにPDFで保存を実行すればできますが、SafariからEvernoteにPDFで保存するのが面倒になりました。

それをAppleScriptで簡単にしてしまおうというのがこの投稿の趣旨です。

で、そのAppleScriptスクリプトですが、以前に色々なアプリケーションからPDFとしてEvernoteに保存するAppleScriptで投稿済みだったりします。SafariだけでなくGoogle Chromeやその他のアプリからも保存が可能です。このスクリプトをSparkやLaunchBarなどから実行すれば、自動的にPDFがEvernoteに保存されます。また、アプリケーションとして保存すれば、Dockに登録して使うこともできます。

ということで、再度掲載しておきます。

-- LaunchBarから実行する場合は以下を有効にする
-- tell application "LaunchBar" to hide
 
tell application "System Events"
	-- AppleScript Editorから実行する場合は以下の2行を有効にする
	-- set theName to name of the first process whose frontmost is true
	-- set visible of process theName to false
	set theName to name of the first process whose frontmost is true
end tell
 
tell application theName to activate
 
if theName is "Google Chrome" then
	printPDF2EvernoteChrome(theName)
else
	printPDF2Evernote(theName)
end if
 
on printPDF2EvernoteChrome(theName)
	tell application "System Events" to tell process theName
		try
			keystroke "p" using command down
			repeat until exists menu button named "PDF" of window 1
				delay 0.2
			end repeat
			tell window 1
				click menu button "PDF"
				repeat until exists menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF"
					delay 0.2
				end repeat
				click menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF"
			end tell
		end try
	end tell
end printPDF2EvernoteChrome
 
on printPDF2Evernote(theName)
	tell application "System Events" to tell process theName
		try
			keystroke "p" using command down
 
			repeat 20 times
				if exists menu button named "PDF" of sheet 1 of window 1 then exit repeat
				delay 0.2
			end repeat
 
			tell sheet 1 of window 1
				click menu button "PDF"
 
				repeat 20 times
					if exists menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF" then exit repeat
					delay 0.2
				end repeat
				click menu item named "PDFをEvernoteに保存" of menu 1 of menu button "PDF"
			end tell
		end try
	end tell
end printPDF2Evernote

Safari5.1でEvernoteクリッパープラグインが使えないのでブックマークを使用する

Safari5.1になってEvernoteクリッパープラグインが使えなくなっていますね。

しかたがないので、そのうち対応されることでしょうからそれまでの間はブックマークレットを使用してクリップすることにします。

追記: Safari 5.1からEvernoteにPDFで保存する方法について記事を書きました。

リンクテキストを生成するSafari Extension – Make Link

Make Link.safariextz

リンクテキストを生成するSafari Extensionを作りました。テストはほとんどしてません。正常に動かないことも多いと思うので、その場合はコメントしてください。(それか、もっとまともなExtensionがあると思うので…)

環境設定で3つまで生成パターンを登録できます。

タイトル・URL・選択テキストはそれぞれ、%title%・%url%・%selection%で表します。初期状態でパターンが一つ登録されているので、それを参考に記述してみてください。

登録したパターンがコンテクストメニューに表示されます。メニューを実行するとリンクテキストが表示されます。

Safari Extensionで動的にコンテクストメニューを作成する

Safari ExtensionでContext Menuを利用する場合には、一般には機能拡張ビルダーでコンテクストメニュー項目を作成しますが、今回は動的に作成してみます。

コンテクストメニューは、contextmenuイベントを取得してその時に作成します。具体的にはグローバルHTMLで

safari.application.addEventListener("contextmenu", handleContextMenu, false);
 
function handleContextMenu(event) {
    event.contextMenu.appendContextMenuItem("doSomething", "Menu Name", "do-something");
}

とします。あとはcommandイベントでevent.commandがdo-somethingの時になにがしかの処理をします。

safari.application.addEventListener("command", handleCommand, false);
function handleCommand(event) {
    if (event.command === "do-something") {
        alert("do something);
    }
}

Safari ExtensionsでHello World!

Safari 5にSafari Extensionsが追加されました。
これでSafariの追加機能が簡単に作成できるようになりました。

ただ、デフォルトでは有効になっていないので、開発メニューを表示して、「機能拡張を有効にする」をONにする必要があります。
機能拡張はSafari Extensionsの訳。

Extensionを開発するにはSafariの開発メニューの「機能拡張ビルダーを表示」でビルダーを表示して作成します。

_Users_r_izumita_Library_Application-Support_Evernote_data_51783_content_p15815_652abdb61f4812f3c50d0d1758d5b584.jpeg

+ボタンをクリックすると新規機能拡張と機能拡張を追加が表示されます。
新規の方をクリック。Saveパネルが表示されるので名前を付けます。
名前はHelloWorld。
HelloWorld.safariextensionというフォルダが作成される。中にはInfo.plistがあります。

_Users_r_izumita_Library_Application-Support_Evernote_data_51783_content_p15815_fe8fa9f111a7be394bceecff9425d50a.jpeg

デベロッパ証明書が必要なので
http://developer.apple.com/safari/certificates/index.action
から取得。取得するにはSafari Developer ProgramにJoinが必要(無料)。

_Users_r_izumita_Library_Application-Support_Evernote_data_51783_content_p15815_df47871c4f12e292fe50d8a1d9596c4f.jpeg

_Users_r_izumita_Library_Application-Support_Evernote_data_51783_content_p15815_13a8dfc0795525f875cf349f5687f4e3.jpeg

キーチェーンアクセスアプリを起動。
キーチェーンアクセスメニューの証明書アシスタントの「認証局に証明書を要求…」を実行。
ユーザのメールアドレスと通称に自分の情報を記述。要求の処理をディスクに保存に設定。
証明書を保存。

Safariに戻ってContinue。

_Users_r_izumita_Library_Application-Support_Evernote_data_51783_content_p15815_ea00616e41fbda0068ba5c7d95582756.jpeg

証明書を選択してGenerate。

_Users_r_izumita_Library_Application-Support_Evernote_data_51783_content_p15815_78f2ce0fda59d80ebbfbb40af0cef4ac.jpeg

_Users_r_izumita_Library_Application-Support_Evernote_data_51783_content_p15815_646c3909e7bd69b7e8d78074b66a2da3.png

ダウンロードしてキーチェーンに追加。
無事Safari Developerになりました。

_Users_r_izumita_Library_Application-Support_Evernote_data_51783_content_p15815_ec4cf493986b97b884218a815baf7192.png

ではではHelloWorldを表示するために…
HelloWorld.safariextensionフォルダにhelloworld.htmlファイルを作成。内容は以下。

<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
</head>
<body>Hello World!</body>
</html>

Extensionsバーにボタンを表示作成するために、Extensions Builderの新規バーをクリック。

_Users_r_izumita_Library_Application-Support_Evernote_data_51783_content_p15815_00f56d9d58d3bcc16005eacfd1e0b465.jpeg

こんなかんじで入力。
Extensions Buildreのインストールボタンをクリック。すると…

_Users_r_izumita_Library_Application-Support_Evernote_data_51783_content_p15815_c1344b6e0cb1760318f20488381b3a70.jpeg

Extensionバーが表示されてHello World!があります。
このHello World!という表示はhelloworld.htmlのBodyが表示されています。ので、BodyをHello Safari Extension Bar!に変更してExtensions Builderの再度読み込むをクリックすると

_Users_r_izumita_Library_Application-Support_Evernote_data_51783_content_p15815_f7778bfaf542985ba91466f36ef81bf0.jpeg

になりました。

どんなExtensionが現れるかたのしみです。
自分は何つくろうかな。

SafariAutoZoom Ver.0.1を公開しました

SafariAutoZoomを公開しました。

Safariでページを自動的に拡大表示するSIMBLプラグインです。
Sfaraiのメニューでいうと「表示」→「拡大」です。

設定する項目もなく、インストールするだけで拡大されます。
拡大されたページは手動で縮小できます。

Glimsでリストアしたタブはリロードしないと拡大されない問題があります。
それ以外でバグがあったらコメントで連絡ください。

SIMBLプラグインの作り方と、どこでズームさせるかの調査に時間がかかりましたね。結局一番簡単なWebKitのNotificationを利用したので、実装は1時間もかかってないです。そのかわりタブのリストアに対応してないです。

Coolirisをインストール。が、問題発生

イメージ検索する用事ができたのでCoolirisをインストール。

でもなんかバグがあるみたいで、他のタブに移動して再度Coolirisタブをクリックすると、表示できない。Coolirisタブを再読み込みすれば表示されるようになる。

それに日本語が入力できない。Copy&Pasteでなら表示は正しくされないが、検索はできた。

Safariは4.0.3。