(defun info-toc-to-org ()
  "Transform the Info buffer's table of contents to an Org-mode tree."
  (interactive)
  (let ((tree nil))
    ;; Move to the beginning of the TOC.
    (goto-char (point-min))
    ;; Skip the title and section headings.
    (re-search-forward "^Table of Contents$")
    (re-search-forward "^* ")
    ;; Parse the tree.
    (while (re-search-forward "^\\([*]+\\) \\(.+\\)$" nil t)
      (let ((level (length (match-string 1)))
            (text (match-string 2)))
        ;; Add the current item to the tree.
        (setq tree (append tree (list (cons text level)))))
    ;; Convert the tree to Org-mode syntax.
    (let ((org-tree (format-org-tree tree)))
      (kill-region (point-min) (point-max))
      (insert org-tree))))

(defun format-org-tree (tree &optional level)
  "Format a tree as an Org-mode tree."
  (let ((level (or level 0))
        (indent (make-string (* level 2) ?\s))
        (org-tree ""))
    (dolist (item tree)
      (let ((text (car item))
            (subtree (cdr item)))
        (setq org-tree
              (concat org-tree
                      indent
                      (if (> level 0) " " "")
                      (format "* %s\n" text)
                      (when subtree
                        (format-org-tree subtree (1+ level)))))))
    org-tree))
(defun info-toc-to-org () "แปลงสารบัญบัฟเฟอร์ข้อมูลเป็นแผนผังโหมดองค์กร" (โต้ตอบ) (let ((tree nil)) ;; ย้ายไปที่จุดเริ่มต้นของ TOC (ไปที่ -char (point-min)) ;; ข้ามชื่อเรื่องและส่วนหัวของส่วน (ค้นหาใหม่-ส่งต่อ "^สารบัญ$") (ค้นหาซ้ำไปข้างหน้า "^* ") ;; แยกวิเคราะห์แผนผัง (ในขณะที่ (ค้นหาซ้ำไปข้างหน้า "^\\([*]+\\) \\(.+\\)$" ไม่มี t) (let ((ระดับ (ความยาว (match-string 1)))) (ข้อความ (match -string 2))) ;; เพิ่มรายการปัจจุบันลงในแผนผัง (setq tree (ต่อท้าย tree (รายการ (ระดับข้อความ cons))))) ;; แปลง tree เป็นไวยากรณ์โหมด Org (let ((org- tree (format-org-tree tree))) (kill-region (point-min) (point-max)) (ใส่ org-tree)))) (defun format-org-tree (ต้นไม้ & ระดับทางเลือก) "จัดรูปแบบ tree เป็นแผนผังโหมดองค์กร" (let ((ระดับ (หรือระดับ 0)) (เยื้อง (make-string (* ระดับ 2) ?\s)) (org-tree "")) (dolist (แผนผังรายการ) (let ((ข้อความ (รายการรถ)) (ทรีย่อย (รายการ cdr))) (setq org-tree (concat org-tree indent (ถ้า (> ระดับ 0) " " "") (รูปแบบ "* %s\n" ข้อความ) (เมื่อทรีย่อย (ทรีย่อยรูปแบบ org-tree (1+ ระดับ)))))))) org-tree))
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence