首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定制的Org - Capture -Org捕获扩展模板

定制的Org - Capture -Org捕获扩展模板
EN

Stack Overflow用户
提问于 2017-10-11 10:12:10
回答 1查看 950关注 0票数 2

我正在使用伟大的Org捕获扩展火狐插件直接捕获我的网页链接到我的Emacs文档。

一个最小的组织捕获模板是:

代码语言:javascript
复制
(setq org-capture-templates `(
     ("L" "Protocol Link" entry (file+headline "~/web.org" "Links")
      "* [[%:link][%:description]]\n")  

     ;; ... your other templates
))

我用这个来书签文章,奇怪的是,很多文章都在arxiv.org上。问题是arxiv标题页包含[]字符,例如:

1606.04838大规模机器学习优化方法

这与模板中用于创建组织模式链接的[[%:link][%:description]]不太协调。例如,捕获返回:

代码语言:javascript
复制
** [[https://arxiv.org/abs/1606.04838][[1606.04838] Optimization Methods for Large-Scale Machine Learning]]

由于“1606.04838”字符串中的括号,操作模式链接被打破。

如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-11 10:12:10

解决方法是将链接[%:description]描述转换为不包含方括号[]的字符串。为此,我们可以定义一个函数,将,chars转换为(,)函数。

代码语言:javascript
复制
(defun transform-square-brackets-to-round-ones(string-to-transform)
  "Transforms [ into ( and ] into ), other chars left unchanged."
  (concat 
  (mapcar #'(lambda (c) (if (equal c ?[) ?\( (if (equal c ?]) ?\) c))) string-to-transform))
  )

然后,我们可以在org-capture-template中使用这个函数。%(性别)语法用于将lisp代码计算到模板中:

%(性别)评估Elisp性行为,并用结果取代。为了方便起见,表达式中的%:关键字(见下文)占位符将在此之前展开。性感必须返回一个字符串。

修改后的org-capture-template是:

代码语言:javascript
复制
(setq org-capture-templates '(

    ("L" "Protocol Link" entry (file+headline "~/web.org" "Links")
     "* [[%:link][%(transform-square-brackets-to-round-ones \"%:description\")]]\n")

    ;; ... your other templates
))

然后,当您单击Firefox Org-Capture按钮时,模板将正确地扩展到

代码语言:javascript
复制
** (1606.04838) Optimization Methods for Large-Scale Machine Learning

有一个格式良好的操作模式链接(注意,1606.04838被转换为(1606.04838))

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46685538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档