如何在发布时不让Emacs Org模式转换特定的外部链接?

Wat*_*Lin 2 emacs org-mode

当我使用Emacs组织模式发布项目时,Emacs将根据链接类型转换外部链接.

例如,当我尝试在组织模式中链接Evernote注释链接时,Evernote链接URL为:

evernote:///view/52572/s1/6e53e0ed-272a-4ec9-89c7-f636b16d6a3c/6e53e0ed-272a-4ec9-89c7-f636b16d6a3c/
Run Code Online (Sandbox Code Playgroud)

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

[[evernote:/// view/52572/s1/6e53e0ed-272a-4ec9-89c7-f636b16d6a3c/6e53e0ed-272a-4ec9-89c7-f636b16d6a3c /] [Som Evernote note title]]

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

的index.html#Evernote的视点/ 52572/S1/6e53e0ed-272A-4ec9-89c7-f636b16d6a3c/6e53e0ed-272A-4ec9-89c7-f636b16d6a3c

前缀evernote:///视图转换为evernote-view.

所以,任何想法都不要让Emacs转换这个evernote:///视图前缀?

alt*_*ler 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)))
Run Code Online (Sandbox Code Playgroud)

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

可以做出的改进包括

  • 提供链接跟踪功能,允许您"点击"emacs中的链接.
  • 为html以外的地方创建导出类型.该frmt参数保存正在执行的导出类型的值,但在上面它被忽略,因为它只导出HTML.

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