Sửa chữa và duy trì các siêu liên kết chế độ org


15

Đây là một câu hỏi hai phần phải làm với thối liên kết .

  1. Chế độ org có cung cấp bất kỳ chức năng nào để xác thực các siêu liên kết, đặc biệt là các liên kết cục bộ không? Điều này có thể được sử dụng để chống thối liên kết sau khi thực tế.

  2. Thậm chí tốt hơn, org có cung cấp chức năng để nếu tôi đổi tên một tệp trong thư mục, nó sẽ cập nhật các tệp bị ảnh hưởng không? Điều này có thể ngăn chặn một số loại thối liên kết trước khi nó xảy ra, ít nhất là đối với các tệp cục bộ.

Câu trả lời:


6

Đối với phần 1, tôi không tìm thấy bất cứ thứ gì tích hợp. Các chức năng sau đây sẽ cung cấp một danh sách các liên kết bị hỏng trong xe buýt nhỏ. Tôi đã thử nghiệm nó trên một số ví dụ đơn giản, nhưng không hoàn toàn xa.

(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
Bạn có nghĩ rằng org-bracket-link-analytic-regexpsẽ giúp chọn ra các liên kết Org? Có vẻ như nó được tạo ra cho các nhiệm vụ như thế này.
Constantine

@Constantine có, cảm ơn! Không biết về điều đó.
Tyler

Đẹp. Hai ý tưởng bổ trợ có thể có: (1) thêm một số văn bản đánh dấu vào các liên kết xấu để thúc đẩy khám phá thông qua tìm kiếm và / hoặc tô sáng; (2) đánh dấu các liên kết xấu.
David J.

Ý tưởng (3) biến điều này thành một trình kiểm tra flycheck và việc tô sáng trong bộ đệm sẽ được thực hiện cho bạn.
Malabarba

Gợi ý thú vị. Tôi sẽ đào sâu vào nó khi thời gian cho phép trong kỳ nghỉ.
Tyler

8

Vì Org 9.0, bạn có thể chạy org-lintchức năng, trong số những thứ khác, kiểm tra các liên kết cục bộ bị hỏng.


2

Tôi đã viết một tập lệnh Python https://github.com/cashTangoTangoCash/orgFixLinks cố gắng sửa chữa các liên kết bị hỏng đến các tệp cục bộ, trong một hoặc nhiều tệp org trên ổ đĩa cục bộ trong hệ điều hành Ubuntu. Nó chắc chắn là một kịch bản dòng lệnh nghiệp dư, nhưng có thể đáng chơi. Có một wiki GitHub cung cấp một mức độ tài liệu: https://github.com/cashTangoTangoCash/orgFixLinks/wiki . Vui lòng kiểm tra các cảnh báo trong README.

Tôi xin lỗi vì tập lệnh Python này không phải là một phần của Org, mà hoàn toàn tách biệt / độc lập. Tôi hy vọng không ai bị làm phiền rằng tôi không trả lời trực tiếp câu hỏi của OP; Tôi chỉ nghĩ ai đó có thể thích chơi với kịch bản Python.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.