私は Pentadactyl を使用しています。これは、vimスタイルのキーバインドとブラウジングをエミュレートするFirefoxプラグインです。私は最近、オフラインで表示するために記事を保存および管理する簡単な方法として、[保存されたすべてのページを自動的にオフラインで利用できるようにする]をオンにして Pocket を使用することに興味がありました。
Pocketは、URLバーのボタンでページを保存します。ツールバーのボタンもありますが、それは私には何の役にも立たないようで、白いボックスしか表示されません。右クリックメニューにオプションがあり、ポケットアカウントに追加するためのブックマークもあります。 Pentadactylコマンドを使用してこれらのオプションを呼び出す方法が見つからないようです。
唯一の :emenu
私が見つけることができるpocketコマンドは、サイドバーを表示および非表示にするためのものです。コマンドをブックマークにバインドする方法はありますが、インターネットが非常に遅いことがよくあります。これには、Pocketがページをアカウントに追加するのを待ってから、ローカルファイルと同期してから、ファイルをダウンロードしてオフラインで表示する必要があります。
不足しているアドオンアクションにアクセスするためのPentadactylコマンドを定義する方法はありますか?また、コンテキストメニューエントリにアクセスする方法が見つからないか、そこでコマンドを使用することもできます。助けてくれてありがとう。
Pocketブックマークレット をインストールしてキーワードを割り当てると、を使用してアクティブ化できます。 o キーワードが続きます。例えば。 opoc
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
すべてのタブをポケットに保存する場合は、次のコマンドを.pentadactylrcに含めることができます。
command! pocketall -js RIL.saveTabs()
注:前のコマンドとは異なり、このコマンドではバナーは表示されません
より一般的な質問に答えるために、JavaScriptを介して拡張機能の機能にアクセスできることがよくありますが、通常、いくつかの調査と試行錯誤が必要です。 pentadactylからjavascriptを実行する方法は2つあります。
:js ...
:open javascript: ...
(または同等に、 ojavascript: ...
)
これは、ブックマークレットを実行するのと同じです。javascript:
"pseudo-protocol"を指定してopendocumentコマンドを使用します。
2つのメソッドは、異なるコンテキストでjavascriptを実行します。後者の場合、グローバルオブジェクトは標準のwindow
オブジェクトであり、ブラウザへのクライアントコードアクセスを提供します。前者の場合、グローバルオブジェクトはChromeWindow
オブジェクトであり、window
オブジェクトでは使用できないFirefoxUI要素や拡張オブジェクトなどのブラウザの内部にアクセスできます。
Pentadactylのコマンドライン補完を使用して、ChromeWindow
オブジェクトを探索できます。タイプ:js
SpaceTAB 完了のスクロール可能なリストが表示されます。続行します:RIL.
TAB そして、RILオブジェクトのメンバーのリストを取得します(Pocket拡張機能に属します)。
別のツールはFirefoxブラウザコンソールで、同じコンテキストで実行されます。あなたはそれにアクセスすることができます Ctrl-Shift-j。これにより、インタラクティブなコマンドラインとオブジェクトインスペクターが提供されます。
最後に、プロファイルディレクトリ内の拡張機能のファイルを調べたい場合があります(GNU/Linuxでは、通常は$HOME/.mozilla/firefox/PROFILE_NAME/extensions/
です)。これにより、何を探すべきかについてのヒントが得られます。たとえば、実際にソースファイルを開かなくても、ポケット拡張機能の機能を探しているときに、名前から「RIL」で始まるオブジェクトを探すように言われました。
タグで動作するようになりました。これを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」に変更します。
誰かがヒントモードにアクセスせずにリンクをスローする方法を知っているなら、それは素晴らしいことです。
追加のオプションがいくつかあります。
ブックマークレットで簡単にできます。
この行を〜/ .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