Сохранить HTML из буфера обмена как текст уценки

9

Я хочу иметь возможность выделить раздел веб-страницы и скопировать его в буфер обмена, а затем сохранить его на локальном диске в качестве уценки. Мне нужен эффективный способ сделать это.

Мой текущий громоздкий метод:

  1. выделить раздел и скопировать в буфер обмена
  2. открыть Libre Office Writer
  3. вставить в писателя
  4. сохранить документ Writer как HTML
  5. открытый терминал
  6. cd в каталог, где я сохранил HTML
  7. pandoc -s -r html /home/me/a/b/mydoc.html -o /home/me/a/b/mydoc.md

Очевидно, мне нужен лучший метод! Какие-либо предложения?

MountainX
источник
Я считаю, что получение исходного HTML-кода или расширенного текста из запроса X буфера обмена в Stackverflow может послужить руководством для получения того, что вы ищете.
звон
Можете ли вы обратиться к странице, которую вы можете скопировать таким образом?
slm
Это может быть любая веб-страница, которую я просматриваю. Пример: money.cnn.com/2013/06/05/technology/mobile/…
MountainX
Вы выбираете веб-страницу через исходную страницу, верно? Или кусочки этого в любом случае.
SLM
Как упомянул StephaneChazelas в комментариях ниже, я просто выбираю текст из Firefox (или другого браузера) в обычном режиме. Я НЕ собираюсь к исходному виду.
MountainX

Ответы:

11

В последней версии xclip( -tопция была добавлена ​​в 2010 году, но еще не выпущена AFAICT, так что вам нужно получить ее из subversion или использовать ту, что есть в Debian).

xclip -o -selection clipboard -t text/html | pandoc -r html -w markdown

И если вы хотите сделать это обратно в буфер обмена:

xclip -o -selection clipboard -t text/html |
  pandoc -r html -w markdown |
  xclip -i -selection clipboard

Что вы можете сделать в цикле с:

while :; do
  xclip -o -selection clipboard -t text/html |
    pandoc -r html -w markdown |
    xclip -i -selection clipboard -quiet
done

Второй xclip, с, -quietбудет блокировать, пока что-то еще не потребует выбора CLIPBOARD, то есть, пока вы не выберете что-то еще где-нибудь.

Таким образом, вы можете копировать туда и обратно между вашим браузером и всем, что вы вставляете уценку.

@tink также имеет полезную ссылку на аналогичный вопрос в StackOverflow, где вы можете найти информацию о том, как реализовать его в python.

Стефан Шазелас
источник
Предполагается, что вы выбираете фактический источник веб-страниц, а не просто просматриваете его, правильно?
SLM
@ нет, нет. В таких браузерах, как Firefox или Chrome, когда вы выбираете и / или копируете некоторый текст на (отображаемой) веб-странице, браузер устанавливает выделение как в виде строки (для использования текстовыми приложениями), так и в виде HTML (для приложений, которые понимают его как libreoffice для использования). Это так называемые цели. xclip -selection clipboard -t TARGETSперечислит цели / форматы, которые Firefox устанавливает после того, как вы скопируете оттуда текст.
Стефан Шазелас
Это новая функция в xclip? Я получаю -t: Нет такого файла или каталога. Я использую версию: 0,12.
SLM
1
@StephaneChazelas Отличное решение! Я получил xclip отсюда: pkgs.org/debian-sid/debian-main-amd64/… и он установлен в Kubuntu 12.04 без каких-либо проблем. Это именно то решение, на которое я надеялся. Большой!
MountainX
1
@slm: Моя рабочая версия xclip (установлена ​​по ссылке выше) также показывает версию 0.12, но deb называется xclip_0.12 + svn84-2_amd64.deb. Этот параметр включает параметр -t, который описан на его странице руководства. Но на странице руководства не отображается опция text / html, и я бы, наверное, не понял ничего из этого самостоятельно.
MountainX