Использование Firefox Pocket аддона с пентадактилем

1041
kstew

Я использую Pentadactyl, плагин Firefox, который эмулирует сочетания клавиш в стиле vim и просмотр страниц. Недавно я заинтересовался использованием Pocket с пометкой «Автоматически делать все сохраненные страницы доступными в автономном режиме» как простой способ сохранения и управления статьями для просмотра в автономном режиме.

Pocket сохраняет страницы с помощью кнопки в строке URL. Есть также кнопка для панели инструментов, но она, кажется, ничего не делает для меня, а показывает только белый прямоугольник. Есть также опция для этого в меню, вызываемом правой кнопкой мыши, и закладка, чтобы добавить его в свой карманный аккаунт. Я не могу найти способ вызвать любую из этих опций, используя команды пентадактиля.

Единственная :emenuкарманная команда, которую я могу найти, - показать и скрыть боковую панель. Есть способ привязать команды к закладке, но у меня часто очень медленный интернет, для этого нужно подождать, пока Pocket добавит страницу в мою учетную запись, затем синхронизировать с моими локальными файлами, а затем загрузить файл для просмотра в автономном режиме.

Есть ли способ определить команду Pentadactyl для доступа к действиям надстройки, которые я пропускаю? Я также не могу найти способ получить доступ к пунктам контекстного меню, или я мог бы использовать команду там. Спасибо за любую помощь.

2

4 ответа на вопрос

3
Peter Grevel

У меня это работает с тегами. Добавьте это к вашему pentadactylrc:

command! pocket -nargs=* :open javascript:(function())() 

чем вызвать через:

:pocket optionalFirstTag,optionalSecondTag 

Теги не будут отображаться на загруженной странице, но будут сохранены в вашем списке чтения. Чтобы открыть его в новой вкладке, измените код с «_self» на «_blank».

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

Чтобы добавить режим подсказки, сначала вам нужно отредактировать `eht`, чтобы зарегистрировать тег подсказки. Вы можете просто добавить свое письмо в группу `[asotvvwy]` или использовать `set eht + = [p]: ': - moz-any-link'`. Затем вы должны предоставить описание и функцию. Вы можете сделать это с помощью функции `hints.addMode`. Например, `js hints.addMode ('p', 'сохранить с карманом', e => saveLinkWithPocket (e.href));` где `saveLinkWithPocket` - это функция, которая добавляет ссылку в pocket. Вы можете найти некоторые примеры в моем [.pentadactylrc файле] (https://github.com/troyp/.pentadactyl/blob/master/.pentadactylrc) или в источнике дактиля в `common / content / hints.js`. pyrocrasty 7 лет назад 1
2
pyrocrasty
  • Вы можете установить букмарклет Pocket и назначить ему ключевое слово, которое позволит вам активировать его, используя oключевое слово. Например. opocEnter

  • Кроме того, вы можете преобразовать код букмарклета в команду и сохранить его в вашем .pentadactylrc:

     command! pocket :open javascript:(function();if(!s||s==0)for(var%20f=0;f<t.length;f++)(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])u+=c;r=r==50?0:r+1;i=i==o.length-1?0:i+1}if(s==166)o=function(){};return%20v+'ce5c747776'}else};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)})() 

    Затем вы можете сохранить страницу, используя :pocketEnter

  • Если вы хотите сохранить все вкладки в кармане, вы можете включить эту команду в ваш .pentadactylrc:

     command! pocketall -js RIL.saveTabs() 

    примечание: в отличие от предыдущей команды, эта команда не приводит к появлению баннера


Доступ к функциональности расширения в целом.

Чтобы ответить на ваш более общий вопрос, вы часто можете получить доступ к функциональным возможностям расширений через javascript, но обычно это требует некоторого исследования, проб и ошибок. Есть два способа запустить javascript из пентадактиля:

  1. :js ...
  2. :open javascript: ...(или эквивалентно ojavascript: ...)

    Это похоже на запуск букмарклета: он использует команду open document с javascript:«псевдопротоколом».

Два метода запускают JavaScript в разных контекстах. В последнем случае глобальный объект является стандартным windowобъектом, который предоставляет клиентскому коду доступ к браузеру. В первом случае глобальный объект - это ChromeWindowобъект, который дает вам доступ к большему количеству внутренних компонентов браузера, включая элементы пользовательского интерфейса Firefox и объекты расширения, которые недоступны в windowобъекте.

Вы можете исследовать ChromeWindowобъект, используя завершение командной строки пентадактиля. Наберите :jsSpaceTABи вы получите прокручиваемый список завершений. Теперь продолжайте: RIL.TAB и вы получите список членов объекта RIL (принадлежащих расширению Pocket).

Другим инструментом является консоль браузера Firefox, которая работает в том же контексте. Вы можете получить к нему доступ Ctrl- Shift- j. Это обеспечивает интерактивную командную строку и инспектор объектов.

Наконец, вы можете захотеть совать файлы расширения в каталог вашего профиля (в GNU / Linux это обычно $HOME/.mozilla/firefox/PROFILE_NAME/extensions/). Это может дать вам подсказки о том, что искать. Например, даже не открывая никаких исходных файлов, имена сказали мне искать объекты, начинающиеся с «RIL», когда я искал функциональные возможности карманного расширения.

вау, один месяц нет ответов на этот пост и 2 человека отвечают практически одновременно. Псих :) simonwjackson 9 лет назад 0
Именно то, что я искал, особенно общую информацию о доступе к расширению функциональности. Благодарю. (и да, я не ожидал, что на это ответят вообще, и я получил два за один день xD) kstew 9 лет назад 0
1
petRUShka

There are several additional options:

  1. You can switch to Instapaper (export links from Pocket, and then use Instapaper "Import from pocket" setting) and use my native instapaper plugin for pentadactyl.
  2. If you have some time and willing you can adopt vimperator plugin for readitlater (pocket) for pentadactyl. It isn't so hard as you can expect.
0
simonwjackson

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

  1. Перейти на этот сайт: https://getpocket.com/add?sb=1
  2. Щелкните правой кнопкой мыши на красной кнопке букмарклета, затем нажмите «Копировать расположение ссылки»
  3. Поместите эту строку в ваш файл ~ / .pentadactylrc и замените #BOOKMARKLET LINK # на только что скопированный URL:

    command! pocket -description "Save to Pocket" open #BOOKMARKLET LINK#

Теперь вы можете просто использовать команду :pocketex, когда находитесь на странице, которую хотите сохранить.

Надеюсь это поможет.

Источник: http://www.martinjosefsson.com/2012/10/30/pocket-and-pentadactyl.html