Использование Firefox Pocket аддона с пентадактилем
Я использую Pentadactyl, плагин Firefox, который эмулирует сочетания клавиш в стиле vim и просмотр страниц. Недавно я интересовался использованием Pocket с пометкой "Автоматически делать все сохраненные страницы доступными в автономном режиме" как простой способ сохранения и управления статьями для просмотра в автономном режиме.
Pocket сохраняет страницы с помощью кнопки в строке URL. Также есть кнопка для панели инструментов, но она, кажется, ничего не делает для меня, а показывает только белый прямоугольник. Есть также опция для этого в меню, вызываемом правой кнопкой мыши, и закладка, чтобы добавить его в свой карманный аккаунт. Кажется, я не могу найти способ вызвать любую из этих опций, используя команды пентадактиля.
Единственный :emenu
Карманная команда, которую я могу найти, предназначена для показа и скрытия боковой панели. Есть способ привязать команды к закладке, но у меня часто очень медленный интернет, для этого нужно подождать, пока Pocket добавит страницу в мою учетную запись, затем синхронизировать с моими локальными файлами, а затем загрузить файл для просмотра в автономном режиме.
Есть ли способ определить команду Pentadactyl для доступа к действиям надстройки, которые я пропускаю? Я также не могу найти способ получить доступ к пунктам контекстного меню, или я мог бы использовать команду там. Спасибо за любую помощь.
4 ответа
Вы можете установить букмарклет Pocket и назначить ему ключевое слово, которое позволит вам активировать его, используя o, за которым следует ключевое слово. Например. о
poc
ВойтиКроме того, вы можете преобразовать код букмарклета в команду и сохранить его в вашем.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
ВойтиЕсли вы хотите сохранить все вкладки в кармане, вы можете включить эту команду в ваш.pentadactylrc:
command! pocketall -js RIL.saveTabs()
примечание: в отличие от предыдущей команды, эта команда не приводит к появлению баннера
Доступ к функциональности расширения в целом.
Чтобы ответить на более общий вопрос, вы часто можете получить доступ к функциональным возможностям расширений через javascript, но обычно это требует некоторого исследования, проб и ошибок. Есть два способа запустить javascript из пентадактиля:
:js ...
:open javascript: ...
(или, что то же самое, оjavascript: ...
)Это похоже на запуск букмарклета: используется команда открытия документа с
javascript:
"Псевдо-протокол".
Два метода запускают JavaScript в разных контекстах. В последнем глобальный объект является стандартом window
объект, обеспечивающий доступ клиентского кода к браузеру. В первом глобальный объект является ChromeWindow
объект, который дает вам доступ к большему количеству внутренних компонентов браузера, включая элементы пользовательского интерфейса Firefox и объекты расширения, которые недоступны в window
объект.
Вы можете исследовать ChromeWindow
объект, используя завершение командной строки пентадактиля. Тип :js
ПробелTAB и вы получите прокручиваемый список завершений. Теперь продолжайте: 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".
Если кто-нибудь знает, как добавить ссылку из режима подсказок, не посещая ее, это было бы здорово.
Есть несколько дополнительных опций:
- Вы можете переключиться на Instapaper ( экспортировать ссылки из Pocket, а затем использовать настройку Instapaper "Импорт из кармана") и использовать мой плагин instapaper для пентадактиля.
- Если у вас есть время и желание, вы можете использовать плагин vimperator для чтения (карман) для пентадактиля. Это не так сложно, как вы можете ожидать.
Вы можете сделать это легко с помощью букмарклета.
- Перейти на этот сайт: 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