Использование 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 из пентадактиля:

  1. :js ...
  2. :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".

Если кто-нибудь знает, как добавить ссылку из режима подсказок, не посещая ее, это было бы здорово.

Есть несколько дополнительных опций:

  1. Вы можете переключиться на Instapaper ( экспортировать ссылки из Pocket, а затем использовать настройку Instapaper "Импорт из кармана") и использовать мой плагин instapaper для пентадактиля.
  2. Если у вас есть время и желание, вы можете использовать плагин vimperator для чтения (карман) для пентадактиля. Это не так сложно, как вы можете ожидать.

Вы можете сделать это легко с помощью букмарклета.

  1. Перейти на этот сайт: https://getpocket.com/add?sb=1
  2. Щелкните правой кнопкой мыши на красной кнопке букмарклета, затем нажмите "Копировать расположение ссылки"
  3. Поместите эту строку в файл ~/.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

Другие вопросы по тегам