Збережіть HTML із буфера обміну як текст розмітки


9

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

Мій поточний громіздкий метод:

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

Очевидно, що мені потрібен кращий метод! Будь-які пропозиції?


Я вважаю, що отримання джерела HTML або насиченого тексту із запиту в буфер обміну X на Stackverflow може дати керівництво щодо отримання того, що ви шукаєте.
тинк

Чи можете ви звернутися до сторінки, яку ви хочете скопіювати таким чином?
slm

Це може бути будь-яка веб-сторінка, яку я переглядаю. Приклад: money.cnn.com/2013/06/05/technology/mobile/…
MountainX

Ви вибираєте веб-сторінку через вихідну сторінку, правда? Або шматочки його все одно.
slm

Як згадував StephaneChazelas у коментарях нижче, я просто вибираю текст з Firefox (або іншого браузера) зазвичай. Я НЕ переходжу до подання джерела.
MountainX

Відповіді:


11

З недавньою версією xclip( -tопція була додана в 2010 році, але ще не випущена AFAICT, тому вам потрібно буде отримати її від підривної роботи або скористатися такою, упакованою в 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

@slm, ні. У веб-переглядачах, таких як firefox або chrome, коли ви вибираєте та / або копіюєте текст на (наданій) веб-сторінці, браузер встановлює вибір як рядок (для використання текстових програм), так і як html (для програм, які це розуміють як libreoffice використовувати). Вони називаються цілями. xclip -selection clipboard -t TARGETSвідображатиме цілі / формати, які встановлює Firefox після того, як ви скопіюєте звідти якийсь текст.
Стефан Шазелас

Це нова функція xclip? Я отримую -t: немає такого файлу чи dir. Я використовую ver: 0,12.
slm

1
@StephaneChazelas Дивовижне рішення! Звідси я отримав xclip: pkgs.org/debian-sid/debian-main-amd64/…, і він встановлений у Kubuntu 12.04 взагалі без проблем. Це саме той тип рішення, на який я сподівався. Чудово!
MountainX

1
@slm: Моя робоча версія xclip (встановлена ​​за посиланням вище) також показує версію 0,12, але деб названо xclip_0.12 + svn84-2_amd64.deb. Цей варіант включає опцію -t, і ця опція описана на її довільній сторінці. Але на сторінці man не відображається параметр text / html, і я, мабуть, не зрозумів би нічого з цього самостійно.
MountainX
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.