組織モードのハイパーリンクの修正と維持


15

これはリンク腐敗に関係する2つの部分からなる質問です。

  1. org-modeは、ハイパーリンク、特にローカルリンクを検証するための機能を提供しますか?これは、事後のリンクの腐敗と戦うために使用できます。

  2. さらに良いことに、組織はdiredのファイルの名前を変更すると、影響を受けるファイルを更新する機能を提供しますか?これにより、少なくともローカルファイルに対して、ある種のリンクの腐敗を防ぐことができます。

回答:


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-regexpOrgリンクを分解するのに役立つと思いますか?このようなタスク用に作成されたようです。
コンスタンティン14

@Constantineはい、ありがとう!そのことを知りませんでした。
タイラー14

いいね 考えられる2つのアドオンアイデア:(1)不正なリンクにマーキングテキストを追加して、検索や強調表示による発見を促進します。(2)不良リンクをブックマークします。
デビッドJ. 14

アイデア(3)をこれをフライチェックチェッカーにすると、バッファ内の強調表示が自動的に行われます。
マラバルバ14

興味深い提案。休日に時間が許せば、掘り下げます。
タイラー14

8

Org 9.0以降org-lintでは、特に壊れたローカルリンクをチェックする機能を実行できます。


2

Ubuntu OSのローカルドライブ上の1つ以上の組織ファイル内のローカルファイルへの壊れたリンクを修復しようとするPythonスクリプトhttps://github.com/cashTangoTangoCash/orgFixLinksを作成しました。確かにアマチュアのコマンドラインスクリプトですが、遊ぶ価値があるかもしれません。:ドキュメントの度合い提供のGitHubのWikiがありhttps://github.com/cashTangoTangoCash/orgFixLinks/wikiが。READMEの警告を確認してください。

このPythonスクリプトがOrgの一部ではなく、完全に分離/スタンドアロンであることを残念に思います。私がOPの質問に直接答えていないことに誰も悩まされないことを望みます。誰かがPythonスクリプトで遊んでみたいと思うかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.