Simpan HTML dari clipboard sebagai teks penurunan harga

9

Saya ingin dapat menyorot bagian dari halaman web dan menyalinnya ke clipboard kemudian menyimpannya ke disk lokal saya sebagai penurunan harga. Saya perlu cara yang efisien untuk melakukan itu.

Metode rumit saya saat ini adalah:

  1. sorot bagian dan salin ke clipboard
  2. buka Libre Office Writer
  3. rekatkan ke Writer
  4. simpan Writer doc sebagai HTML
  5. terminal terbuka
  6. cd ke direktori tempat saya menyimpan HTML
  7. pandoc -s -r html /home/me/a/b/mydoc.html -o /home/me/a/b/mydoc.md

Jelas, saya butuh metode yang lebih baik! Ada saran?

MountainX
sumber
Saya percaya mendapatkan sumber HTML atau teks kaya dari permintaan papan klip X di Stackverflow dapat memberikan panduan dalam mendapatkan apa yang Anda cari.
tink
Bisakah Anda merujuk ke halaman yang mungkin ingin Anda salin dengan cara ini?
slm
Bisa jadi laman web apa pun yang kebetulan saya jelajahi. Contoh: money.cnn.com/2013/06/05/technology/mobile/…
MountainX
Anda memilih halaman web melalui halaman sumber, bukan? Atau potongan itu pula.
slm
Seperti yang disebutkan StephaneChazelas dalam komentar di bawah, saya hanya memilih teks dari Firefox (atau browser lain) secara normal. Saya TIDAK pergi ke tampilan sumber.
MountainX

Jawaban:

11

Dengan versi terbaru dari xclip( -topsi ditambahkan pada 2010 tetapi belum dirilis AFAICT, jadi Anda harus mendapatkannya dari subversi, atau menggunakan yang dikemas dalam Debian).

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

Dan jika Anda ingin membuatnya kembali ke clipboard:

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

Yang dapat Anda lakukan dalam satu lingkaran dengan:

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

Yang kedua xclip, dengan -quietakan memblokir sampai sesuatu yang lain mengklaim pemilihan CLIPBOARD, yaitu sampai Anda memilih sesuatu yang lain di suatu tempat.

Dengan begitu, Anda dapat menyalin bolak-balik antara browser Anda dan apa pun yang Anda tempelkan markdown di.

@tink juga memiliki tautan bermanfaat ke pertanyaan serupa tentang StackOverflow di mana Anda dapat menemukan cara menerapkannya dalam python.

Stéphane Chazelas
sumber
Asumsinya adalah Anda memilih sumber aktual halaman web, bukan hanya menjelajahinya, benar?
slm
@ sdm, tidak. Di browser seperti firefox atau chrome, ketika Anda memilih dan / atau menyalin beberapa teks di halaman web (yang diberikan), browser menetapkan pilihan baik sebagai string (untuk aplikasi teks untuk digunakan) dan sebagai html (untuk aplikasi yang memahaminya seperti libreoffice untuk digunakan). Itu disebut target. xclip -selection clipboard -t TARGETSakan mencantumkan target / format yang ditetapkan Firefox setelah Anda menyalin beberapa teks dari sana.
Stéphane Chazelas
Apakah ini fitur baru xclip? Saya mendapatkan -t: Tidak ada file atau dir. Saya menggunakan ver: 0.12.
slm
1
@StephaneChazelas Solusi luar biasa! Saya mendapat xclip dari sini: pkgs.org/debian-sid/debian-main-amd64/… dan diinstal di Kubuntu 12.04 tanpa masalah sama sekali. Inilah jenis solusi yang saya harapkan. Bagus!
MountainX
1
@slm: Versi kerja saya dari xclip (diinstal dari tautan di atas) juga menunjukkan versi 0.12, tetapi deb bernama xclip_0.12 + svn84-2_amd64.deb. Yang ini menyertakan opsi -t dan opsi itu dijelaskan di halaman manualnya. Tetapi halaman manual tidak menunjukkan opsi teks / html, dan saya mungkin tidak akan menemukan semua ini sendiri.
MountainX