Hi Terry, Apparently the Debian version of the xclip program (.deb file from their repositories) is different from the Ubuntu version (gleaned from a Stackexchange conversation). When I run the string on an image copied in GIMP, it returns an error message, "Error: target text/html not available".
The way to tell if you have the right version or not is to type "man xclip" and see if -t is an option. If it is not, you need to remove xclip and hunt down the Debian version. Chris . On Monday, December 28, 2015 at 8:01:37 AM UTC-8, Terry Brown wrote: > > On Sun, 27 Dec 2015 19:33:24 -0800 (PST) > Chris George <[email protected] <javascript:>> wrote: > > > Hello All, > > > > Some time ago I asked Terry about being able to copy rich text from a > > browser window and paste rst. I was pointed to a solution that uses > > xclip and pandoc and have been using it since by running it in a > > command window and copy/pasting the output into Leo. This worked as I > > only needed to do this on rare occasions. I recently switched over to > > using markdown and the command line to make this happen works just > > great. I find myself using this capability more and more often though. > > > > xclip -o -selection clipboard -t text/html | pandoc -r html -w > > markdown > > > My question is: How do I automate this in Leo? It would be nice to be > > able to have this command run on all pastes (Ctrl-v) that have a > > markdown file as a destination, with plain text as a fallback if the > > clipboard provides something that isn't text/html. > > "all pastes (Ctrl-v) that have a markdown file as a destination" would > require a bit more thought. Here's a simple(*) solution you could > deploy as a @button, just stick it in a node called `@button h2m`, > reload or click the script-button button the first time (it will appear > automatically on reloads). > > --- cut here --- > from subprocess import Popen, PIPE > from leo.core.leoQt import QtGui > > clipboard = QtGui.QApplication.clipboard() > html = unicode(clipboard.text("html")) > > if html: > cmd = "pandoc -r html -w markdown".split() > proc = Popen(cmd, stdout=PIPE, stdin=PIPE) > markdown, errors = proc.communicate(html.encode("utf-8")) > i = c.frame.body.wrapper.getInsertPoint() > c.frame.body.wrapper.insert(i, markdown) > else: > g.es("No HTML to convert") > --- cut here --- > > For my setup I get a lot of extra chatter in the markdown, like > <span class="Apple-converted-space">Â </span> > but maybe there are pandoc settings to stop that. > > (*) ok, this seemed simple, but wasn't. > xclip -o -selection clipboard -t text/html > returns nothing when executed in the shell when there's no html on the > clipboard, but when execute from Popen without html, it never returns. > Hence using Qt to access the clipboard, with related encoding issues. > > Cheers -Terry > > > The usual disclaimer about me not being a programmer applies. I use > > Leo to write, not code. > > > > Chris > -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/leo-editor. For more options, visit https://groups.google.com/d/optout.
