正在加载

让Evernote3 和 Opera配合的更好

| 2009年3月4日星期三

CreditDKMILAN副本众所周知,Opera是个小众的浏览器,根据某机构对全球浏览器用户的调查,Opera用户比例不足1%….随着Chrome的横空出世,目前好像已经降低到0.6%。

对于如此之小的用户群,我们这些Opera Fans不能指望其他软件公司对我们的浏览器的额外支持会有多好(我是说工具软件,不是web网站,不过事实是很多网站对我们都不支持)。

Evernote是世界上最好的笔记软件之一,Evenote3虽然是比2的速度慢了一些,但是和Web的无缝对接又让我们难以割舍了。但是Opera的一个顽固的特点就是,不支持带格式复制,Evernote 3的快捷键Win+A只能捕捉到纯文本的内容,对于格式和图片则是完全捕捉不到。

真是很令人不爽的一件事情。

Evernote的官方为Opera用户提供了一个按钮,可以clip2EvernoteWeb,我之前是一直在用这个功能的,但是那个页面的加载速度实在是有点慢。

于是,我最近对Opera的菜单设置进行了一系列的改造。不过说是改造,其实就是改了改ini配置文件而已。




暗度陈仓:一键复制富文本内容到Evernote


需要用到的工具:htm2clip.exe,AutoHotKey

然后是我用AutoHotKey编写的小工具 EvernoteClip(仅适用于Evernote3.x)

源代码如下

DetectHiddenWindows, On
If WinExist("ahk_class ENMainFrame3") or WinExist("ahk_class TApplication")
{
  Sleep,2000   Send, ^!v
  return
}
else
{
  MsgBox,1,,Evernote 3没有运行,是否启动Evernote 3?
  IfMsgBox OK
  {
  RegRead, OutputVar, HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Evernote.exe
  Run %OutputVar%
  return
  }
}


首先,感谢这俩免费工具的作者,AHK还是开源的,感谢的话咱就不多说了,以下省略10000字

然后,对Evernote进行配置

  1. 启动Evernote3
  2. 菜单Application – Options
  3. 切换至Note选项卡
  4. 选中Use Ctrl+Alt+V to paste to new note from any Application

第三步,下载htm2clip,并配置

  1. 解压缩到任意文件夹(推荐放在opera文件夹下)
  2. 复制其中的autocopy.js到userJS目录
  3. 首选项 ->高级 ->下载,点击添加
  4. MIME类型:text/cwf  扩展名:无,用其他应用程序打开:htm2clip.exe的路径  

第四步,编辑菜单

  1. 打开opera\profile\menu文件夹下你当前使用的菜单的配置文件
  2. 找到[Hotclick Popup Menu]
  3. 在最后添加一个新的item,如下

    Item, "带格式复制"="Go to Page, "javascript:(function(){var sel=document.createDocumentFragment();var range=window.getSelection().getRangeAt(0); sel.appendChild(document.createComment('StartFragment')); sel.appendChild(range.cloneContents()); sel.appendChild(document.createComment('EndFragment'));var ele=range.commonAncestorContainer;while(ele){if(ele.nodeType==1){var clone=ele.cloneNode(false);clone.appendChild(sel);sel=clone}; ele=ele.parentNode};var head=document.getElementsByTagName('head')[0];if(head){var h=sel.insertBefore(head.cloneNode(true),sel.firstChild);var b=h.getElementsByTagName('base')[0];if(!b) {b=document.createElement('base');h.insertBefore(b,h.firstChild)} if(!b.href)b.href=location.href;var m=h.getElementsByTagName('meta');for(var i=0,mi;mi=m[i];i++){if(mi.httpEquiv&&mi.httpEquiv.toLowerCase()=='content-type')mi.content='text/html; charset=utf-8'}};location.href='data:text/cwf;charset=UTF-8,'+encodeURIComponent ('SourceURL:'+location.href+'\r\n\r\n'+sel.outerHTML)})();",,,"New Note""

  4. 这个菜单是仅仅管复制富文本内容
  5. 然后再添加一个可以复制到Evernote的。
  6. 首先下载附件中的EvernoteClip
  7. 把EvernoteClip.exe放到某个目录下
  8. 在上面找到[Hotclick Popup Menu]最后再添加一个新的item,如下

    Platform Windows, Item, "带格式复制到Evernote"=Go to Page, "javascript:(function(){var sel=document.createDocumentFragment();var range=window.getSelection().getRangeAt(0); sel.appendChild(document.createComment('StartFragment')); sel.appendChild(range.cloneContents()); sel.appendChild(document.createComment('EndFragment'));var ele=range.commonAncestorContainer;while(ele){if(ele.nodeType==1){var clone=ele.cloneNode(false); clone.appendChild(sel);sel=clone};ele=ele.parentNode};var head=document.getElementsByTagName('head')[0];if(head){var h=sel.insertBefore(head.cloneNode(true),sel.firstChild);var b=h.getElementsByTagName('base')[0]; if(!b){b=document.createElement('base'); h.insertBefore(b,h.firstChild)}if(!b.href)b.href=location.href;var m=h.getElementsByTagName('meta');for(var i=0,mi;mi=m[i];i++) {if(mi.httpEquiv&&mi.httpEquiv.toLowerCase()=='content-type')mi.content='text/html; charset=utf-8'}};location.href='data:text/cwf;charset=UTF-8,'+encodeURIComponent ('SourceURL:'+location.href+'\r\n\r\n'+sel.outerHTML)})();" & Execute program, "刚才EvernoteClip.exe的路径"

  • 用图说话


  • 好了,测试一下吧,选中一部分文本,在纯文本的部分右击,选择复制到evernote,ok
  • 完成后的效果
     


  • 目前的bug(已经修复)

    如果这样还不可以,那么很可能是你的opera配置文件有问题,打开Opera\profile\opera6.ini文件,在User Prefs子项下面,加一句Cache Directory4=X:\XXX\cache4 说明一下,文件夹路径必须无空格无中文,我的选择是d:\recycler\cache4    直接扔进回收站。。呵呵

    感谢老王报告bug

    借尸还魂:不启动Evernote,照样能保存想要的内容


    有时候我们不愿意启动evernote,只是临时想要保存什么东西,就像是opera自带的笔记一样。于是我修改了一下,做出了这个功能。

    1. 首先,是我们需要的东西 optool.exe,下载之后放在任意位置。
    2. 使用“快速文本保存设置.exe” 修改保存文件夹,比如设在Opera\Opera Clip Notes文件夹。
    3. 在Evernote中设定自动导入文件夹。Account – Properties.
      选择File Import 选项卡,添加一个上面选择的文件夹。


    4. 在上面用到的配置文件中,找到[Note Item Popup Menu]和[Hotclick Popup Menu]中,再添加一个item

      Item,保存选定文本="copy & Execute program,"D:\\Program Files\\Opera\\optool.exe","q""



    5. ok了,打开Opera,测试一下,选中文字,保存选定文本。
    6. 这个时候打开Evernote,你会发现刚刚保存的文件已经自动被导入到Evernote数据库了

    如果你喜欢本文,把它分享到 Twitter / 校内 / 鲜果 / Digg
    或者把它收藏到 Delicious

    2 comments:

    水瓶尤加利 / Eucaly61 说...

    謝謝分享, 有機會也來看看我的 Firefox, Outlook, Evernote 環境是否需要類似的改良, 因為有時複製也會變成『不帶格式』的 ....

    goooooood girl 说...

    i like your blog......