我在用着五指龙,一个模拟 vim 风格按键绑定和浏览的 Firefox 插件。我最近对使用口袋勾选‘自动使所有已保存的页面可供离线使用’,即可轻松保存和管理文章以供离线查看。
Pocket 使用 URL 栏中的按钮保存页面。工具栏上也有一个按钮,但对我来说似乎没有任何作用,只显示一个白框。右键单击菜单中也有一个选项,还有一个书签可以将其添加到您的 Pocket 帐户。我似乎找不到使用 Pentadactyl 命令调用这些选项的方法。
我能找到的唯一:emenu
Pocket 命令是显示和隐藏侧边栏。有一种方法可以将命令绑定到书签,但我的网速经常非常慢,这需要等待 Pocket 将页面添加到我的帐户,然后与我的本地文件同步,然后下载文件以供离线查看。
有没有办法定义 Pentadactyl 命令来访问我缺少的插件操作?我似乎也找不到访问上下文菜单条目的方法,或者我可以使用那里的命令。感谢您的帮助。
答案1
您可以安装口袋书签并为其分配一个关键字,这样您就可以使用o后跟关键字来激活它。例如。 o
poc
Enter或者,您可以将书签代码转换为命令并将其保存在 .pentadactylrc 中:
command! pocket :open javascript:(function(){var%20e=function(t,n,r,i,s){var%20o=[3526112,5522661,1460314,3450302,5361262,5114635,2897350,3675444,1446118,2801611];var%20i=i||0,u=0,n=n||[],r=r||0,s=s||0;var%20a={'a':97,'b':98,'c':99,'d':100,'e':101,'f':102,'g':103,'h':104,'i':105,'j':106,'k':107,'l':108,'m':109,'n':110,'o':111,'p':112,'q':113,'r':114,'s':115,'t':116,'u':117,'v':118,'w':119,'x':120,'y':121,'z':122,'A':65,'B':66,'C':67,'D':68,'E':69,'F':70,'G':71,'H':72,'I':73,'J':74,'K':75,'L':76,'M':77,'N':78,'O':79,'P':80,'Q':81,'R':82,'S':83,'T':84,'U':85,'V':86,'W':87,'X':88,'Y':89,'Z':90,'0':48,'1':49,'2':50,'3':51,'4':52,'5':53,'6':54,'7':55,'8':56,'9':57,'\/':47,':':58,'?':63,'=':61,'-':45,'_':95,'&':38,'$':36,'!':33,'.':46};if(!s||s==0){t=o[0]+t}for(var%20f=0;f<t.length;f++){var%20l=function(e,t){return%20a[e[t]]?a[e[t]]:e.charCodeAt(t)}(t,f);if(!l*1)l=3;var%20c=l*(o[i]+l*o[u%o.length]);n[r]=(n[r]?n[r]+c:c)+s+u;var%20p=c%(50*1);if(n[p]){var%20d=n[r];n[r]=n[p];n[p]=d}u+=c;r=r==50?0:r+1;i=i==o.length-1?0:i+1}if(s==166){var%20v='';for(var%20f=0;f<n.length;f++){v+=String.fromCharCode(n[f]%(25*1)+97)}o=function(){};return%20v+'ce5c747776'}else{return%20e(u+'',n,r,i,s+1)}};var%20t=document,n=t.location.href,r=t.title;var%20i=e(n);var%20s=t.createElement('script');s.type='text/javascript';s.src='https://getpocket.com/b/r4.js?h='+i+'&u='+encodeURIComponent(n)+'&t='+encodeURIComponent(r);e=i=function(){};var%20o=t.getElementsByTagName('head')[0]||t.documentElement;o.appendChild(s)})()
然后您可以使用保存页面
:pocket
Enter如果您想将所有标签保存到 Pocket,您可以在 .pentadactylrc 中包含此命令:
command! pocketall -js RIL.saveTabs()
笔记:与上一个命令不同,此命令不会导致横幅出现
一般访问扩展功能。
为了回答您的更一般的问题,您通常可以通过 javascript 访问扩展的功能,但这通常需要一些探索和反复试验。有两种方法可以从 pentadactyl 运行 javascript:
:js ...
:open javascript: ...
(或等价地, ojavascript: ...
)这就像运行小书签一样:它使用带有
javascript:
“伪协议”的打开文档命令。
这两种方法在不同的上下文中运行 javascript。在后者中,全局对象是标准window
对象,它为客户端代码提供对浏览器的访问。在前者中,全局对象是一个ChromeWindow
允许您访问浏览器更多内部内容的对象,包括对象中不可用的 Firefox UI 元素和扩展对象window
。
您可以ChromeWindow
使用 pentadactyl 的命令行补全功能探索该对象。输入后:js
SpaceTAB,您将获得一个可滚动的补全列表。现在继续:RIL.
TAB 您将获得 RIL 对象(属于 Pocket 扩展)的成员列表。
另一个工具是 Firefox浏览器控制台,它在相同的上下文中运行。您可以使用Ctrl- Shift-访问它j。这提供了一个交互式命令行和对象检查器。
最后,您可能希望查看配置文件目录中的扩展文件(在 GNU/Linux 中,通常是$HOME/.mozilla/firefox/PROFILE_NAME/extensions/
)。这可以为您提供寻找内容的提示。例如,即使没有实际打开任何源文件,当我寻找 Pocket 扩展的功能时,名称也会告诉我要寻找以“RIL”开头的对象。
答案2
我使用标签让它工作了。将其添加到您的 pentadactylrc:
command! pocket -nargs=* :open javascript:(function(){window.open('https://getpocket.com/edit?url='+escape(window.location.href)+'&tags=<args>', '_self');})()
通过以下方式触发:
:pocket optionalFirstTag,optionalSecondTag
标签不会显示在已加载的页面中,但会保存到您的阅读列表中。若要在新选项卡中打开,请将代码从“_self”更改为“_blank”。
如果有人知道如何在不访问提示模式的情况下插入链接,那就太好了。
答案3
还有几个附加选项:
- 您可以切换到即时纸(从 Pocket 导出链接, 进而使用 Instapaper“从口袋导入”设置)并使用我的适用于 pentadactyl 的原生 instapaper 插件。
- 如果你有时间并且愿意,你可以采用readitlater 的 vimperator 插件(袖珍版)对于五指龙来说。它并不像你想象的那么难。
答案4
您可以使用小书签轻松完成此操作。
- 访问此网站:https://getpocket.com/add?sb=1
- 右键单击红色书签按钮,然后单击“复制链接位置”
将此行放入您的 ~/.pentadactylrc 文件中,并将 #BOOKMARKLET LINK# 替换为您刚刚复制的 URL:
command! pocket -description "Save to Pocket" open #BOOKMARKLET LINK#
:pocket
现在,当您在想要保存的页面上时,只需使用 ex 命令即可。
希望这可以帮助。
来源:http://www.martinjosefsson.com/2012/10/30/pocket-and-pentadactyl.html