浏览代码

Revert "org-footnote.el: Allow to inline external footnotes"

This reverts commit 8738f173e5ba87987e4c057868cc34e9fb205df5.
Nicolas Goaziou 11 年之前
父节点
当前提交
857222323b
共有 1 个文件被更改,包括 36 次插入61 次删除
  1. 36 61
      lisp/org-footnote.el

+ 36 - 61
lisp/org-footnote.el

@@ -450,41 +450,41 @@ This command prompts for a label.  If this is a label referencing an
 existing label, only insert the label.  If the footnote label is empty
 existing label, only insert the label.  If the footnote label is empty
 or new, let the user edit the definition of the footnote."
 or new, let the user edit the definition of the footnote."
   (interactive)
   (interactive)
-  (if (not (org-footnote-in-valid-context-p))
-      (org-footnote-action '(4))
-    (let* ((lbls (and (not (equal org-footnote-auto-label 'random))
-		      (org-footnote-all-labels)))
-	   (propose (and (not (equal org-footnote-auto-label 'random))
-			 (org-footnote-unique-label lbls)))
-	   (label
-	    (org-footnote-normalize-label
-	     (cond
-	      ((member org-footnote-auto-label '(t plain))
-	       propose)
-	      ((equal org-footnote-auto-label 'random)
-	       (require 'org-id)
-	       (substring (org-id-uuid) 0 8))
-	      (t
-	       (org-icompleting-read
-		"Label (leave empty for anonymous): "
-		(mapcar 'list lbls) nil nil
-		(if (eq org-footnote-auto-label 'confirm) propose nil)))))))
-      (cond
-       ((bolp) (error "Cannot create a footnote reference at left margin"))
-       ((not label)
-	(insert "[fn:: ]")
-	(backward-char 1))
-       ((member label lbls)
-	(insert "[" label "]")
-	(message "New reference to existing note"))
-       (org-footnote-define-inline
-	(insert "[" label ": ]")
-	(backward-char 1)
-	(org-footnote-auto-adjust-maybe))
-       (t
-	(insert "[" label "]")
-	(org-footnote-create-definition label)
-	(org-footnote-auto-adjust-maybe))))))
+  (unless (org-footnote-in-valid-context-p)
+    (error "Cannot insert a footnote here"))
+  (let* ((lbls (and (not (equal org-footnote-auto-label 'random))
+		    (org-footnote-all-labels)))
+	 (propose (and (not (equal org-footnote-auto-label 'random))
+		       (org-footnote-unique-label lbls)))
+	 (label
+	  (org-footnote-normalize-label
+	   (cond
+	    ((member org-footnote-auto-label '(t plain))
+	     propose)
+	    ((equal org-footnote-auto-label 'random)
+	     (require 'org-id)
+	     (substring (org-id-uuid) 0 8))
+	    (t
+	     (org-icompleting-read
+	      "Label (leave empty for anonymous): "
+	      (mapcar 'list lbls) nil nil
+	      (if (eq org-footnote-auto-label 'confirm) propose nil)))))))
+    (cond
+     ((bolp) (error "Cannot create a footnote reference at left margin"))
+     ((not label)
+      (insert "[fn:: ]")
+      (backward-char 1))
+     ((member label lbls)
+      (insert "[" label "]")
+      (message "New reference to existing note"))
+     (org-footnote-define-inline
+      (insert "[" label ": ]")
+      (backward-char 1)
+      (org-footnote-auto-adjust-maybe))
+     (t
+      (insert "[" label "]")
+      (org-footnote-create-definition label)
+      (org-footnote-auto-adjust-maybe)))))
 
 
 (defvar org-blank-before-new-entry) ; silence byte-compiler
 (defvar org-blank-before-new-entry) ; silence byte-compiler
 (defun org-footnote-create-definition (label)
 (defun org-footnote-create-definition (label)
@@ -579,10 +579,9 @@ With prefix arg SPECIAL, offer additional commands in a menu."
   (let (tmp c)
   (let (tmp c)
     (cond
     (cond
      (special
      (special
-      (message "Footnotes: [s]ort, [r]enumber fn:N, [S]=r+s, ->[n]umeric, [d]elete, [i]inline")
+      (message "Footnotes: [s]ort  |  [r]enumber fn:N  |  [S]=r+s |->[n]umeric  |  [d]elete")
       (setq c (read-char-exclusive))
       (setq c (read-char-exclusive))
       (cond
       (cond
-       ((eq c ?i) (org-footnote-inline-footnotes))
        ((eq c ?s) (org-footnote-normalize 'sort))
        ((eq c ?s) (org-footnote-normalize 'sort))
        ((eq c ?r) (org-footnote-renumber-fn:N))
        ((eq c ?r) (org-footnote-renumber-fn:N))
        ((eq c ?S)
        ((eq c ?S)
@@ -871,30 +870,6 @@ If LABEL is non-nil, delete that footnote instead."
 	       (push (cons (match-string 1) new-val) map))
 	       (push (cons (match-string 1) new-val) map))
 	     (replace-match new-val nil nil nil 1))))))))
 	     (replace-match new-val nil nil nil 1))))))))
 
 
-(defun org-footnote-inline-footnotes ()
-  "Convert external footnotes into inline ones."
-  (interactive)
-  (org-with-wide-buffer
-   (goto-char (point-min))
-   (while (re-search-forward (concat org-footnote-re "\\]") nil t)
-     (let ((fn (match-string 0)) fnd-end repl)
-       (save-excursion
-	 (save-match-data
-	   (when (and (re-search-forward (regexp-quote fn) nil t)
-		      (eq (car (org-element-at-point)) 'footnote-definition))
-	     (beginning-of-line)
-	     (setq fnd-end (save-excursion (org-forward-element) (point)))
-	     (setq repl (org-trim
-			 (replace-regexp-in-string
-			  (concat "\n\\|" org-footnote-re "\\]")
-			  " " (buffer-substring (point) fnd-end))))
-	     (delete-region (point) fnd-end))))
-       (replace-match (format "[fn::%s]" repl))))
-   (goto-char (point-min))
-   ;; Delete the * Footnotes heading
-   (when (re-search-forward (concat org-outline-regexp-bol org-footnote-section) nil t)
-     (replace-match ""))))
-
 (defun org-footnote-auto-adjust-maybe ()
 (defun org-footnote-auto-adjust-maybe ()
   "Renumber and/or sort footnotes according to user settings."
   "Renumber and/or sort footnotes according to user settings."
   (when (memq org-footnote-auto-adjust '(t renumber))
   (when (memq org-footnote-auto-adjust '(t renumber))