Sao chép đầu vào markdown vào clipboard dưới dạng văn bản có định dạng


9

Tôi sắp tham gia vào một số bài viết văn xuôi hợp tác với một người bạn của tôi qua email. Là một người bình thường, tất nhiên anh ta sẽ sử dụng các định dạng tài liệu MS Word; như một mọt sách lớn, tôi thích sử dụng markdown khi viết trên máy tính.

Những gì tôi cần là trái ngược hoàn toàn với câu hỏi này về việc chuyển đổi văn bản phong phú được sao chép từ một trang web sang đánh dấu . Quy trình xử lý tình huống xấu nhất ngây thơ của tôi sẽ là:

  1. Viết tài liệu trong markdown
  2. Sử dụng pandoc -S file.mkd -o temp.html
  3. Mở ra temp.htmltrong một trình duyệt web
  4. Sao chép và dán từ trang vào tài liệu mở trong libreoffice

Tôi chắc chắn rằng điều này có thể được tối ưu hóa.

(Google Docs không phải là một lựa chọn trong trường hợp này).

Mặc dù tôi đã trả lời câu hỏi chính, tôi vẫn cảm thấy rằng điều này có thể được tối ưu hóa hơn nữa. Nếu có bất kỳ cách nào để ghép các tệp .doc (mà tôi sẽ nhận được và pandoc nào có thể ghi vào), có lẽ với giao diện dòng lệnh libreoffice, thì tôi cho rằng có thể xây dựng một lớp lót quá phức tạp và tránh phải rời khỏi thiết bị đầu cuối Nếu bất cứ ai tìm ra cách để làm điều đó, tôi sẽ vui vẻ chấp nhận câu trả lời đó cho riêng tôi.


Câu trả lời:


14

Khi nó bật ra, liên kết trong câu hỏi gợi ý về một giải pháp làm việc dưới dạng xclip:

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

... và sau đó tôi có thể dán thẳng vào tài liệu trong libreoffice, được định dạng đúng. Điều này hoạt động với các phiên bản của các chương trình trong kho lưu trữ Ubuntu 13.04 (pandoc 1.10.1 và xclip 0.12) - -ttùy chọn cho xclip đặc biệt chỉ có trong phiên bản 0.12 trở lên. Các -Stùy chọn của pandoc làm cho nó sản xuất 'ra typographically đúng', vì vậy --được biến thành một en-dash, ---được biến thành một em-dash, và một vài thứ khác.

Nếu bạn muốn sử dụng ctrl-vclipboard, hãy sử dụng:

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

Chỉnh sửa : nếu bạn đang chạy OS X ( pbcopythay vì xclip), hãy sử dụng:

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

Để chuyển đổi văn bản đã chọn mà không tạo tệp, bạn có thể sử dụng:

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

... Tất nhiên, điều này có thể được ánh xạ tới một phím tắt.

Điều này có thể hoạt động tốt với một số định dạng đánh dấu văn bản làm đầu vào, xem hướng dẫn pandoc để biết thêm thông tin về cách thực hiện việc này (bạn có thể cần sử dụng -f/--from/-r/--readtùy chọn, đặc biệt nếu bạn đang sử dụng xclip|pandoc|xclipphiên bản).

Là một lưu ý phụ, bạn cũng có thể đọc tệp HTML đã tồn tại vào xclip:

xclip -t text/html <file.html

hoặc là

<file.html xclip -t text/html

Tôi dường như không thể làm điều này hoạt động với xclip0.12 (Arch Linux), vì nó dường như không hỗ trợ -t. Làm thế nào để bạn có được một phiên bản hoạt động?
PythonNut

Thích câu trả lời này, nhưng thấy rằng textutilnó không hoạt động tốt ở đây vì nó mặc định cho Times New Roman cho đầu ra rtf, cũng như chạy vào các vấn đề mã hóa văn bản. Đây cũng là một bước không cần thiết, vì pandoc có thể xuất trực tiếp lên rtf, theo kinh nghiệm của tôi, kết quả tốt hơn. Tôi đã sử dụngpandoc -sf markdown+smart -t rtf file.md | pbcopy
Igid

0

Nếu bạn sử dụng Vim

Giải pháp tuyệt vời, vì tôi sử dụng neovim, tôi đã sử dụng câu trả lời ở trên với lệnh sau:

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

  • :w ! {cmd} đặt ống đệm vào lệnh shell
  • Phần còn lại được tìm thấy trong câu trả lời ở trên
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.