2

当我使用 Emacs Org Mode 发布项目时,Emacs 会根据链接类型转换外部链接。

例如,当我尝试在 Org 模式下链接 Evernote 笔记链接时,Evernote 链接 url 为:

evernote:///view/52572/s1/6e53e0ed-272a-4ec9-89c7-f636b16d6a3c/6e53e0ed-272a-4ec9-89c7-f636b16d6a3c/

我在 Org Mode 文件中输入如下链接:

[[evernote:///view/52572/s1/6e53e0ed-272a-4ec9-89c7-f636b16d6a3c/6e53e0ed-272a-4ec9-89c7-f636b16d6a3c/][Som Evernote笔记标题]]

然后我发布项目,上面的链接将转换为:

index.html#evernote-view/52572/s1/6e53e0ed-272a-4ec9-89c7-f636b16d6a3c/6e53e0ed-272a-4ec9-89c7-f636b16d6a3c

前缀evernote:///view被转换为evernote-view

那么,关于不要让 Emacs 转换这个evernote:///view前缀的任何想法?

4

1 回答 1

5

使用该org-add-link-type功能。将以下内容放入您的.emacs

(require 'org)
(org-add-link-type "evernote" nil '(lambda (path desc frmt)
      (format "<a href=\"evernote:%s\">%s</a>" path desc)))

org-add-link-type接受三个参数,即链接标识符标签的名称(在本例中为“evernote”)、链接跟踪函数和链接导出函数。在这种情况下,我们只关心导出,所以我们只提供后一个函数作为 lambda。它采用定义的链接属性并导出一个 html 字符串。

可以进行的改进包括

  • 提供链接跟随功能,这将允许您“单击” emacs 中的链接。
  • 为非 html 创建导出类型。该frmt参数保存正在执行的导出类型的值,但在上面它被忽略,因为它只导出 HTML。

您可以在此处和源代码中阅读更多相关信息org-mode

于 2013-07-09T09:06:21.843 回答