การแก้ไขและบำรุงรักษาไฮเปอร์ลิงก์โหมดองค์กร


15

นี่คือคำถามที่สองส่วนต้องทำอย่างไรกับลิงก์เสีย

  1. โหมดองค์กรมีฟังก์ชันใด ๆ สำหรับการตรวจสอบความถูกต้องของการเชื่อมโยงหลายมิติโดยเฉพาะอย่างยิ่งในประเทศหรือไม่ สิ่งนี้สามารถนำมาใช้เพื่อต่อสู้กับการเน่าของลิงค์

  2. ยิ่งไปกว่านั้น org มีฟังก์ชั่นการใช้งานหรือไม่ดังนั้นถ้าฉันเปลี่ยนชื่อไฟล์เป็น dired มันจะอัปเดตไฟล์ที่ได้รับผลกระทบหรือไม่ สิ่งนี้สามารถป้องกันไม่ให้ลิงค์เน่าบางประเภทเกิดขึ้นก่อนอย่างน้อยก็สำหรับไฟล์ในเครื่อง

คำตอบ:


6

สำหรับตอนที่ 1 ฉันไม่พบสิ่งใดในตัว ฟังก์ชั่นต่อไปนี้จะแสดงรายการลิงก์ที่ไม่สามารถใช้งานได้ใน minibuffer ฉันได้ทดสอบกับตัวอย่างง่ายๆ แต่ยังห่างไกลอย่างละเอียด

(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

@ แน่นอนใช่ขอบคุณ! ไม่รู้เกี่ยวกับอันนั้น
ไทเลอร์

ดี แนวคิดเพิ่มเติมที่เป็นไปได้สองประการ: (1) เพิ่มข้อความทำเครื่องหมายลงในลิงก์ที่ไม่ดีเพื่อส่งเสริมการค้นพบผ่านการค้นหาและ / หรือการเน้น (2) คั่นลิงก์ที่ไม่ดี
David J.

แนวคิด (3) ทำให้สิ่งนี้เป็นตัวตรวจสอบการบินและการเน้นในบัฟเฟอร์จะทำเพื่อคุณ
Malabarba

คำแนะนำที่น่าสนใจ ฉันจะขุดลงไปเมื่อเวลาอนุญาตในช่วงวันหยุด
ไทเลอร์


2

ฉันเขียนสคริปต์ Python https://github.com/cashTangoTangoCash/orgFixLinksที่พยายามซ่อมแซมลิงก์ที่เสียหายไปยังไฟล์ในเครื่องภายในไฟล์ org หนึ่งไฟล์ขึ้นไปบนไดรฟ์ภายในใน Ubuntu OS แน่นอนมันเป็นสคริปต์บรรทัดคำสั่งมือสมัครเล่น แต่อาจคุ้มค่ากับการเล่น วิกิพีเดียมี GitHub ที่ให้การศึกษาระดับปริญญาของเอกสารคือhttps://github.com/cashTangoTangoCash/orgFixLinks/wiki โปรดตรวจสอบคำเตือนใน README

ฉันขอโทษที่สคริปต์ Python นี้ไม่ได้เป็นส่วนหนึ่งขององค์กร แต่แยกออกจากกัน / แยกจากกันอย่างสมบูรณ์ ฉันหวังว่าจะไม่มีใครใส่ใจว่าฉันไม่ได้ตอบคำถามของ OP โดยตรง ฉันแค่คิดว่าบางคนอาจชอบเล่นกับสคริปต์ Python

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.