조직 모드 하이퍼 링크 수정 및 유지


15

이것은 링크 썩음 과 관련된 두 가지 질문 입니다.

  1. org-mode는 하이퍼 링크, 특히 로컬 링크의 유효성을 검사하는 기능을 제공합니까? 이것은 사실 이후 링크 썩음 퇴치에 사용될 수 있습니다.

  2. 더 나은 방법은 조직에서 기능을 제공하여 파일 이름을 변경하면 영향을받는 파일을 업데이트하는 것입니까? 이로 인해 적어도 로컬 파일의 경우 어떤 종류의 링크가 썩어지지 않을 수 있습니다.

답변:


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조직 링크를 분리하는 데 도움이 될 것이라고 생각하십니까 ? 이 작업과 같은 작업을 위해 만들어진 것 같습니다.
Constantine

@ 콘스탄틴 예, 감사합니다! 그것에 대해 몰랐습니다.
Tyler

좋은. 두 가지 가능한 추가 아이디어 : (1) 검색 및 / 또는 강조 표시를 통해 검색을 촉진하기 위해 잘못된 링크에 표시 텍스트를 추가합니다. (2) 나쁜 링크를 북마크하십시오.
David J.

아이디어 (3)는 이것을 플라이 체크 체커로 만들고, 버퍼 내 강조 표시가 수행됩니다.
Malabarba

흥미로운 제안. 휴일이 지나면 시간이 지나면 파헤쳐 볼게요.
Tyler

8

Org 9.0부터는 org-lint로컬 링크가 끊어 졌는지 확인 하는 기능을 실행할 수 있습니다.


2

우분투 OS의 로컬 드라이브에있는 하나 이상의 조직 파일 내에서 로컬 파일에 대한 깨진 링크를 복구하려고 하는 Python 스크립트 https://github.com/cashTangoTangoCash/orgFixLinks 를 작성했습니다 . 확실히 아마추어 커맨드 라인 스크립트이지만, 그만한 가치가 있습니다. https://github.com/cashTangoTangoCash/orgFixLinks/wiki 문서를 제공하는 GitHub 위키가 있습니다 . 읽어보기의 경고를 확인하십시오.

이 Python 스크립트는 Org의 일부가 아니지만 완전히 분리 / 독립적입니다. 나는 OP에 관한 질문에 직접 대답하지 않는 사람이 아무도 없기를 바랍니다. 방금 누군가 파이썬 스크립트를 가지고 놀고 싶다고 생각했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.