繁体   English   中英

跨emacs org-mode文件引用唯一ID

[英]reference unique id across emacs org-mode files

我有几个.org文件,我希望能够使用ID在它们之间创建链接。 我使用DOI作为唯一标识符。 我可以使用属性在文件中链接:

* Paper 1
  :PROPERTIES:
  :CUSTOM_ID: 10.1088/0953-8984/23/21/213001
  :END:

* Paper 2
  :PROPERTIES:
  :CUSTOM_ID: 10.1038/nphys2935
See also [[#10.1088/0953-8984/23/21/213001]]

有没有办法使custom_id全局,所以我可以从另一个文件引用它?

我认为org-id是我需要更进一步的,但我发现文档有点令人困惑。 我尝试在.emacs添加以下行

;; Use global IDs
(require 'org-id)
(setq org-id-link-to-org-use-id use-existing)

;; Update ID file .org-id-locations on startup
(org-id-update-id-locations)

但文件.emacs.d/.org-id-locations只有nil

似乎不会自动生成全局链接( 为组织模式中的每个条目分配ID )。 我尝试(使用光标在标题上)使用Mx org-id-get-create ,但这似乎没有做任何事情。

编辑:(基于有用的评论)

在一个会话中,我可以在标题上使用Mx org-store-link存储和创建链接(上例中的Paper 1 )。 然后我可以使用Mx org-insert-link ,并输入ID以插入链接。 该链接看起来像[[id:10.1088/0953-8984/23/21/213001][Paper 1]] 但是我遇到了两个问题:(1)我希望自动存储ID。 (2)当我关闭并重新打开文件时,链接不起作用。

编辑:一个相关的问题:

https://emacs.stackexchange.com/questions/2186/have-org-modes-exported-html-use-custom-id-when-linking-to-sub-sections-in-toc

所以这是我提出的解决方案。

  1. 在我的.emacs配置中,我保留了与我的问题相同的设置:

     (require 'org-id) (setq org-id-link-to-org-use-id use-existing) ;; Update ID file on startup (org-id-update-id-locations) 
  2. 文件需要是议程列表的一部分(或使用org-id-extra-files添加到其他文件列表中( 参见org-id文档 ))

  3. PROPERTIES抽屉中使用ID而不是CUSTOM_ID

     * Paper 1 :PROPERTIES: :ID: 10.1088/0953-8984/23/21/213001 :END: 
  4. 需要创建每个ID(如果需要,在我的情况下我已经拥有它们),并且添加到ID文件的链接(链接存储在.emacs.d/.org-id-locations )。 这是使用org-id-get-create :将光标放在标题上,使用它来调用它

     Mx org-id-get-create 
  5. 使用[[id:10.1088/0953-8984/23/21/213001][Paper 1]]链接到ID。

当我想要创建ID时,我还要多思考一下; 我可以通过将ID存储绑定到我将对所有标题执行的另一个函数来自动化该过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM