Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I'm about to get involved in some collaborative prose writing with a friend of mine via email. As a regular person, he will of course be using MS Word document formats; as a massive nerd, I prefer to use markdown when writing on a computer.

What I need is the exact opposite of this question about converting rich text copied from a webpage to markdown. My naive worst-case workflow would be:

  1. Write up the document in markdown
  2. Use pandoc -S file.mkd -o temp.html
  3. Open up temp.html in a web browser
  4. Copy & paste from the page to the open document in libreoffice

I am certain that this can be optimised.

(Google Docs is not an option in this case).

Even though I've answered the main question, I still feel that this could be optimised further. If there is any way to concatenate .doc files (which I will be receiving and which pandoc can write to), perhaps with the libreoffice command-line interface, then I suppose it would be possible to construct an overly-complicated one-liner and avoid having to leave the terminal at all. If anyone finds a way to do that, I will happily accept that answer over my own.

share|improve this question
    
possibly related: unix.stackexchange.com/questions/78395/… –  slm Jul 30 '13 at 18:34

1 Answer 1

up vote 3 down vote accepted

As it turns out, the link in the question hinted at a working solution in the form of xclip:

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

...and then I can paste it straight into the document in libreoffice, properly formatted. This works with the versions of the programs in the Ubuntu 13.04 repositories (pandoc 1.10.1 and xclip 0.12) -- the -t option for xclip especially is only in version 0.12 or above. The -S option of pandoc makes it produce 'typographically correct output', so -- is turned into an en-dash, --- is turned into an em-dash, and a few other things.

If you want to use the ctrl-v clipboard, use:

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

To transform selected text without creating a file, you can use:

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

...this can, of course, be mapped to a keyboard shortcut.

This can work well with a number of text markup formats as input, see the pandoc guide for some more information on how to accomplish this (you might need to use the -f/--from/-r/--read option, especially if you're using the xclip|pandoc|xclip version).

As a side note, you can also read an already-existing HTML file into xclip:

xclip -t text/html <file.html

or

<file.html xclip -t text/html
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.