更正和维护组织模式超链接


15

这是与链接腐烂有关的两部分问题。

  1. 组织模式是否提供任何用于验证超链接的功能,尤其是本地的?事实证明,这可以用来对抗链接腐烂。

  2. 更好的是,org是否提供功能,以便如果我将文件重命名为Dired,它将更新受影响的文件?这可以防止某些类型的链接腐烂发生,至少对于本地文件而言。

Answers:


6

对于第1部分,我没有发现任何内置内容。以下函数将提供迷你缓冲区中断开链接的列表。我已经在一些简单的示例上对其进行了测试,但是还远远不够。

(defun check-bit-rot ()
  "Searches current buffer for file: links, and reports the broken ones."
  (interactive)
  (save-excursion
    (beginning-of-buffer)
    (let (file-links)
      (while (re-search-forward org-bracket-link-analytic-regexp nil t)
        (if (string= "file:" (match-string-no-properties 1))
            (if (not (file-exists-p (match-string-no-properties 3)))
                (setq file-links
                      (cons (match-string-no-properties 0)
                            file-links)))))
      (message
       (concat "Warning: broken links in this file:\n"
               (mapconcat #'identity file-links "\n"))))))

1
您认为org-bracket-link-analytic-regexp会有助于挑选Org链接吗?似乎它是针对此类任务而创建的。
君士坦丁

@Constantine是的,谢谢!不知道那一个。
泰勒2014年

真好 两种可能的附加想法:(1)在不良链接中添加一些标记文字,以通过搜索和/或突出显示来促进发现;(2)收藏不良链接。
David J.

想法(3)使其成为复选检查器,然后将为您完成缓冲区内突出显示。
马拉巴巴2014年

有趣的建议。假期允许的时候我会深入研究。
泰勒2014年

8

从Org 9.0开始,您可以运行该org-lint功能,其中包括检查损坏的本地链接。


2

我写了一个Python脚本https://github.com/cashTangoTangoCash/orgFixLinks,尝试修复Ubuntu操作系统中本地驱动器上一个或多个组织文件中本地文件的断开链接。它当然是业余命令行脚本,但可能值得一玩。GitHub Wiki提供了一定程度的文档:https : //github.com/cashTangoTangoCash/orgFixLinks/wiki。请检查自述文件中的警告。

抱歉,该Python脚本不是Org的一部分,而是完全独立/独立的。我希望没有人会打扰我不直接回答OP的问题;我只是以为有人可能喜欢玩Python脚本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.