Kopieren Sie die Markdown-Eingabe als Rich Text in die Zwischenablage

9

Ich bin dabei, mit einem Freund per E-Mail gemeinsam Prosa zu schreiben. Als normale Person wird er natürlich MS Word-Dokumentformate verwenden. Als massiver Nerd bevorzuge ich Markdown, wenn ich auf einem Computer schreibe.

Was ich brauche, ist das genaue Gegenteil dieser Frage zum Konvertieren von von einer Webseite kopiertem Rich Text in Markdown . Mein naiver Worst-Case-Workflow wäre:

  1. Schreiben Sie das Dokument in Markdown
  2. Verwenden pandoc -S file.mkd -o temp.html
  3. temp.htmlIn einem Webbrowser öffnen
  4. Kopieren und Einfügen von der Seite in das geöffnete Dokument in libreoffice

Ich bin sicher, dass dies optimiert werden kann.

(Google Text & Tabellen ist in diesem Fall keine Option).

Obwohl ich die Hauptfrage beantwortet habe, habe ich immer noch das Gefühl, dass dies weiter optimiert werden könnte. Wenn es eine Möglichkeit gibt, DOC-Dateien zu verketten (die ich empfangen werde und in die Pandoc schreiben kann), möglicherweise mit der libreoffice-Befehlszeilenschnittstelle, dann wäre es wahrscheinlich möglich, einen übermäßig komplizierten Einzeiler und zu erstellen Vermeiden Sie es, das Terminal verlassen zu müssen. Wenn jemand einen Weg findet, dies zu tun, werde ich diese Antwort gerne über meine eigene annehmen.

Übelsuppe
quelle
möglicherweise verwandt: unix.stackexchange.com/questions/78395/…
slm

Antworten:

14

Wie sich herausstellte, deutete der Link in der Frage auf eine funktionierende Lösung in Form von xclip:

pandoc -S file.mkd | xclip -t text/html

... und dann kann ich es in libreoffice direkt in das Dokument einfügen, richtig formatiert. Dies funktioniert mit den Versionen der Programme in den Ubuntu 13.04-Repositorys (pandoc 1.10.1 und xclip 0.12) - die -tOption für xclip ist insbesondere nur in Version 0.12 oder höher verfügbar. Die -SOption von pandoc bewirkt, dass es eine 'typografisch korrekte Ausgabe' erzeugt, also --in einen Strich ---verwandelt wird, in einen Strich verwandelt wird und ein paar andere Dinge.

Wenn Sie die ctrl-vZwischenablage verwenden möchten , verwenden Sie:

pandoc -S file.mkd | xclip -t text/html -selection clipboard

Bearbeiten : Wenn Sie OS X ausführen (mit pbcopyanstatt xclip), verwenden Sie:

pandoc -S file.mkd | textutil -stdin -format html -convert rtf -stdout | pbcopy

Um ausgewählten Text zu transformieren, ohne eine Datei zu erstellen, können Sie Folgendes verwenden:

xclip -o | pandoc -S | xclip -t text/html

... dies kann natürlich einer Tastenkombination zugeordnet werden.

Dies kann mit einer Reihe von Text-Markup-Formaten als Eingabe gut funktionieren. Weitere Informationen dazu finden Sie im Pandoc-Handbuch (möglicherweise müssen Sie die -f/--from/-r/--readOption verwenden, insbesondere wenn Sie die xclip|pandoc|xclipVersion verwenden).

Als Randnotiz können Sie auch eine bereits vorhandene HTML-Datei einlesen in xclip:

xclip -t text/html <file.html

oder

<file.html xclip -t text/html
Übelsuppe
quelle
Ich kann nicht scheinen, dass dies mit xclip0.12 (Arch Linux) funktioniert, da es nicht zu unterstützen scheint -t. Wie bekommt man eine Version, die funktioniert?
PythonNut
Ich liebe diese Antwort, habe aber festgestellt, dass sie textutilhier nicht besonders gut funktioniert, da für die RTF-Ausgabe standardmäßig Times New Roman verwendet wird und Probleme mit der Textcodierung auftreten. Dies ist auch ein unnötiger Schritt, da pandoc direkt an rtf ausgeben kann und meiner Erfahrung nach bessere Ergebnisse erzielt. Ich benutztepandoc -sf markdown+smart -t rtf file.md | pbcopy
Igid
0

Wenn Sie Vim verwenden

Tolle Lösung, da ich neovim verwende, habe ich die oben angegebene Antwort auf den folgenden Befehl verwendet:

:w ! pandoc -s | xclip -t text/html -selection clipboard

  • :w ! {cmd} leitet den Puffer an den Shell-Befehl weiter
  • Der Rest ist in der obigen Antwort zu finden
Ricardo Kullock
quelle