在电子邮件正文中插入代码块


15

我是一名开发人员,在写电子邮件时,我希望能够将代码块与常规文本区分开。

Basically I wanna be able to do this. In the Mail app, (or Sparrow!).

有没有办法使用快捷方式或宏等来执行此操作这样我就不必每次都触及鼠标并像20种字体属性一样进行更改?

Answers:


15

StackExchange格式化背后的魔力是一个很棒的perl脚本,称为Markdown。下载它,然后双击生成的Markdown_1.0.1.zip文件。

然后,在终端中键入

chmod a+x ~/Downloads/Markdown_1.0.1/Markdown.pl
sudo cp ~/Downloads/Markdown_1.0.1/Markdown.pl /usr/local/bin/

完成此操作后,您可以在Automator中创建服务。

您创建的服务会在任何应用程序中接收富文本格式。取消选中“ 输出替换所选文本”的框

您的服务将包含两个操作:

第一个动作是Run Shell Script。这是shell脚本:

/usr/local/bin/Markdown.pl | /usr/bin/textutil -stdin -stdout -format html -convert rtf | /usr/bin/pbcopy

您的部分操作是“运行AppleScript”。这是AppleScript:

tell application "System Events"
    keystroke "v" using {command down}
end tell

保存服务,并根据需要使用系统偏好设置 » 键盘 » 键盘快捷方式 » 服务为其分配键盘快捷方式

然后,您可以使用在此站点上使用的格式代码键入文本,然后运行此服务以生成格式化的文本。仅当您的电子邮件设置为RTF时,此方法才有效-如果您具有纯文本邮件,则运行此服务将仅擦除消息的内容,因为通过服务格式化的RTF将无法粘贴。


1
比在Safari中“呈现” HTML更干净。我喜欢。
jaberg 2012年

可悲的是,这仍然对我不起作用。现在,我收到“无法写入输出”,再次看起来是由第二部分(粘贴)引起的。我正在使用Automator 2.1.1运行10.6.8。我猜这是一个版本控制问题。
garageàtrois

1
:如果有人调试的问题,我们有一个房间chat.stackexchange.com/rooms/info/2830/...
亚贝格

太好了 对于那些喜欢reStructuredText的人:/path/to/rst2html.py -q --stylesheet=/create/a/style.css --embed-stylesheet | /path/to/textutil -stdin -stdout -format html -convert rtf | pbcopy
Shabbyrobe 2012年

天哪,这很酷!!!完美运作。
Mike N

2

假设您可以舒适地发送HTML邮件,则可以使用Markdown格式化电子邮件,并创建一个自动服务,以转换,呈现和用格式化的文本替换Markdown

ᔥRyan Gray:针对Mac OS X Mail的Markdown撰写

[W]我要做的是将Markdown转换生成的HTML保存到一个临时文件,然后在Safari中打开它,让Safari全选,然后复制到剪贴板(复制HTML对象),然后用Mail粘贴它–替换所选的Markdown文本。因此,服务工作流将采用所选的文本,但本身不会直接替换所选内容。

本文提供了有关创建此服务的说明。除了在Automator脚本中提供markdown.pl文件的显式路径外,还要确保将markdown.pl设为可执行文件。

chmod a+x your/path/to/markdown.pl

注意:随着后世的消亡,与瑞安·格雷(Ryan Gray)的文章的原始链接中断了。我已经编辑了答案,以指向Internet存档Wayback Machine上存档的版本。↬ 多米尼克(Dominique)使断开的链接引起了我的注意。


现在,Posterous消失了,Ryan Gray的文章不再位于给定的地址。但是,Brett Terpstra 为Markdown提供了一套很棒的OSX服务
Dominique

是的,我一直在使用Brett的降价服务。
jaberg 2013年


1

我知道这有点旧-所以这里是各种更新。我很难让那个答案的shell脚本正常工作。

我是通过brew安装Markdown的。

在外壳程序脚本上,将“传递输入:”设置为“作为参数”。我在shell脚本上成功实现了这种变体:

/usr/local/bin/markdown <( echo "$1" ) | /usr/bin/textutil -stdin -stdout -convert rtf -format html | /usr/bin/pbcopy

AppleScript保持不变。

在此处输入图片说明


0

我使用这样的shell脚本:

echo "<style>
$(cat /Applications/Marked.app/Contents/Resources/swiss.css |
sed 's/&/&amp;/g;s/</\&lt;/g;s/>/\&gt;/g')
</style>
$(cat | pandoc --strict -p)" |
textutil -stdin -stdout -inputencoding UTF-8 -format html -convert rtf |
LC_CTYPE=UTF-8 pbcopy

pandoc --strict -p 类似于Markdown.pl并保留选项卡。

-inputencoding UTF-8保留非ASCII字符是必需的。LC_CTYPE=UTF-8如果LC_CTYPE已设置为UTF-8语言环境,则不需要。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.