Zapisz HTML ze schowka jako tekst przeceny

9

Chcę być w stanie podświetlić sekcję strony internetowej i skopiować ją do schowka, a następnie zapisać na dysku lokalnym jako Markdown. Potrzebuję skutecznego sposobu, aby to zrobić.

Moja obecna nieporęczna metoda to:

  1. zaznacz sekcję i skopiuj do schowka
  2. otwórz Libre Office Writer
  3. wklej do Writer
  4. zapisz dokument Writer jako HTML
  5. otwarty terminal
  6. cd do katalogu, w którym zapisałem HTML
  7. pandoc -s -r html /home/me/a/b/mydoc.html -o /home/me/a/b/mydoc.md

Oczywiście potrzebuję lepszej metody! Jakieś sugestie?

MountainX
źródło
Wierzę, że pobieranie źródła HTML lub tekstu sformatowanego z żądania schowka X na Stackverflow może dostarczyć wskazówek w uzyskaniu tego, czego szukasz.
zadzwonić
Czy możesz odwołać się do strony, którą możesz skopiować w ten sposób?
slm
Może to być dowolna strona internetowa, którą przeglądam. Przykład: money.cnn.com/2013/06/05/technology/mobile/…
MountainX
Wybierasz stronę za pomocą strony źródłowej, prawda? A przynajmniej jego kawałki.
slm
Jak wspomniano w komentarzach StephaneChazelas, po prostu wybieram tekst z przeglądarki Firefox (lub innej przeglądarki) normalnie. NIE przechodzę do widoku źródłowego.
MountainX

Odpowiedzi:

11

W najnowszej wersji xclip( -topcja została dodana w 2010 r., Ale nie została jeszcze wydana AFAICT, więc trzeba będzie pobrać ją z subversion lub użyć tej zawartej w Debianie).

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

A jeśli chcesz to zrobić z powrotem do schowka:

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

Co możesz zrobić w pętli za pomocą:

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

Drugi xclip, z, -quietbędzie blokował, aż coś innego przejdzie do wyboru SCHOWKA, to znaczy dopóki nie wybierzesz czegoś innego.

W ten sposób możesz kopiować w tę iz powrotem między przeglądarką a tym, co wklejasz znaczniki.

@tink posiada również przydatny link do podobnego pytania na StackOverflow, gdzie można znaleźć sposób zaimplementowania go w pythonie.

Stéphane Chazelas
źródło
Zakładamy, że wybierasz rzeczywiste źródło stron internetowych, a nie tylko przeglądasz je, prawda?
slm
@slm, no. W przeglądarkach takich jak Firefox lub Chrome, gdy zaznaczasz i / lub kopiujesz tekst na (renderowanej) stronie internetowej, przeglądarka ustawia zaznaczenie zarówno jako ciąg (dla aplikacji tekstowych), jak i HTML (dla aplikacji, które rozumieją to jak libreoffice w użyciu). Są to tak zwane cele. xclip -selection clipboard -t TARGETSwyświetli listę celów / formatów, które Firefox ustawia po skopiowaniu stamtąd tekstu.
Stéphane Chazelas
Czy to nowa funkcja xclip? Dostaję -t: brak takiego pliku lub katalogu. Korzystam z wersji: 0.12.
slm
1
@StephaneChazelas Niesamowite rozwiązanie! Mam stąd xclip : pkgs.org/debian-sid/debian-main-amd64/... i został zainstalowany w Kubuntu 12.04 bez żadnych problemów. To jest dokładnie taki rodzaj rozwiązania, na jakie liczyłem. Świetny!
MountainX
1
@slm: Moja działająca wersja xclip (zainstalowana z powyższego linku) również pokazuje wersję 0.12, ale deb nosi nazwę xclip_0.12 + svn84-2_amd64.deb. Ten zawiera opcję -t i ta opcja jest opisana na stronie podręcznika. Ale strona podręcznika nie wyświetla opcji text / html i prawdopodobnie nie wymyśliłbym tego samodzielnie.
MountainX