Korrigieren und Pflegen von Hyperlinks im Organisationsmodus


15

Dies ist eine zweiteilige Frage, die mit Link Rot zu tun hat .

  1. Bietet der Organisationsmodus Funktionen zum Überprüfen von Hyperlinks, insbesondere von lokalen? Dies könnte verwendet werden, um Link Rot nachträglich zu bekämpfen.

  2. Besser noch: Bietet org Funktionen, mit denen beim Umbenennen einer Datei in dired die betroffenen Dateien aktualisiert werden? Dies könnte verhindern, dass einige Arten von Links verrotten, zumindest für lokale Dateien.

Antworten:


6

Für Teil 1 habe ich nichts eingebaut gefunden. Die folgende Funktion liefert eine Liste defekter Links im Minipuffer. Ich habe es an einfachen Beispielen getestet, aber alles andere als erschöpfend.

(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
Glaubst du, org-bracket-link-analytic-regexpwürde es helfen, Org-Links auseinander zu nehmen? Es scheint, als ob es für Aufgaben wie diese erstellt wurde.
Konstantin

@Constantine ja, danke! Wusste nichts davon.
Tyler

Nett. Zwei mögliche Add-On-Ideen: (1) Hinzufügen von Markierungstext zu fehlerhaften Links, um die Entdeckung durch Suchen und / oder Hervorheben zu fördern; (2) Setzen Sie ein Lesezeichen für die fehlerhaften Links.
David J.

Idea (3) verwandelt dies in einen Flycheck-Checker, und die Hervorhebung im Puffer wird für Sie durchgeführt.
Malabarba

Interessante Vorschläge. Ich werde mich damit befassen, wenn es die Zeit im Urlaub erlaubt.
Tyler

8

Seit Org 9.0 können Sie die org-lintFunktion ausführen , die unter anderem nach fehlerhaften lokalen Links sucht.


2

Ich habe ein Python-Skript https://github.com/cashTangoTangoCash/orgFixLinks geschrieben , das versucht, fehlerhafte Links zu lokalen Dateien in einer oder mehreren Organisationsdateien auf einem lokalen Laufwerk des Ubuntu-Betriebssystems zu reparieren. Es ist sicherlich ein Amateur-Befehlszeilenskript, aber es könnte sich lohnen, damit zu spielen. Es gibt ein GitHub-Wiki mit einer Reihe von Dokumentationen: https://github.com/cashTangoTangoCash/orgFixLinks/wiki . Bitte überprüfen Sie die Warnungen in der README.

Es tut mir leid, dass dieses Python-Skript nicht Teil von Org ist, sondern vollständig separat / eigenständig. Ich hoffe, es stört niemanden, dass ich die Frage des OP nicht direkt beantworte. Ich dachte nur, jemand könnte gerne mit dem Python-Skript spielen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.