我正在使用伟大的Org捕获扩展火狐插件直接捕获我的网页链接到我的Emacs文档。
一个最小的组织捕获模板是:
(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]]不太协调。例如,捕获返回:
** [[https://arxiv.org/abs/1606.04838][[1606.04838] Optimization Methods for Large-Scale Machine Learning]]由于“1606.04838”字符串中的括号,操作模式链接被打破。
如何解决这个问题?
发布于 2017-10-11 10:12:10
解决方法是将链接[%:description]描述转换为不包含方括号[]的字符串。为此,我们可以定义一个函数,将,chars转换为(,)函数。
(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是:
(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按钮时,模板将正确地扩展到
** (1606.04838) Optimization Methods for Large-Scale Machine Learning有一个格式良好的操作模式链接(注意,1606.04838被转换为(1606.04838))
https://stackoverflow.com/questions/46685538
复制相似问题