如何将代码转换为可以粘贴(从剪贴板)到Google文档的以语法突出显示的形式?

时间:2016-02-26 14:04:16

标签: python markdown syntax-highlighting clipboard

我经常复制&粘贴来自网站的代码(C,Python,R,bash等)并将其存储到Google Docs中(以语法突出显示的形式)。我目前的方法是将代码复制到Jupyter笔记本的Markdown单元格中,例如:

```python
[paste code here]
```

接下来,我将Markdown呈现为以语法突出显示的形式,然后我将复制&将其粘贴到Google文档中。我正在寻找一种更好的方法来做到这一点。

编辑1 :到目前为止我所拥有的是以下代码:

from tkinter import Tk
import mistune

# Get data from clipboard
w = Tk()
w.withdraw();
clipboard = w.clipboard_get()
w.destroy()

# Convert clipboard data into html
html = mistune.markdown("```python\n" + clipboard + "```")

现在的问题是如何将渲染的html重新放回到剪贴板中,形成一个可以剪切的形式。粘贴到Google文档? 注意:我对tkintermistune以外的其他库很好,例如QClipboardPyQt5.QtGui中的PyObjC。使用markdown / html路由将纯文本代码转换为突出显示语法的语法也不是“必须”。

编辑2 :我发现了另一种方法(使用Pygments还需要一个额外的步骤来从Mac终端复制和粘贴到Google文档中)。以下内容已添加到~/.bash_profile

alias syn_py="pbpaste > temp.py && pygmentize temp.py && rm temp.py"
alias syn_c="pbpaste > temp.c && pygmentize temp.c && rm temp.c"

请注意,在Linux上,pbpaste / pbcopy需要替换为appropriate equivalent。 Mac终端的设置为“显示ANSI颜色”,并为“使用样式'复制'命令”选择“基本”主题。此外,我尝试了以下方法,但这些都没有奏效:

pbpaste | pygmentize | pbcopy
pbpaste > temp.c && pygmentize temp.c | pbcopy && rm temp.c

0 个答案:

没有答案