瀏覽代碼

Fix link fontification

* lisp/org.el (org-activate-links): Delegate to
  `org-element-link-parser' to handle blanks and link expansion.
Nicolas Goaziou 7 年之前
父節點
當前提交
439fcfbbf2
共有 1 個文件被更改,包括 7 次插入12 次删除
  1. 7 12
      lisp/org.el

+ 7 - 12
lisp/org.el

@@ -137,6 +137,7 @@ Stars are put in group 1 and the trimmed body in group 2.")
 (declare-function org-element-copy "org-element" (datum))
 (declare-function org-element-interpret-data "org-element" (data))
 (declare-function org-element-lineage "org-element" (blob &optional types with-self))
+(declare-function org-element-link-parser "org-element" ())
 (declare-function org-element-nested-p "org-element" (elem-a elem-b))
 (declare-function org-element-parse-buffer "org-element" (&optional granularity visible-only))
 (declare-function org-element-property "org-element" (property element))
@@ -5973,14 +5974,11 @@ This includes angle, plain, and bracket links."
 					  (max (1- start) (point-min)) 'face)))
 			       (if (consp face) (memq 'org-tag face)
 				 (eq 'org-tag face))))))
-	  (let* ((link (pcase type	;extract URL part
-			 (`plain (match-string-no-properties 0))
-			 (`angle (buffer-substring-no-properties
-				  (1+ start) (1- end)))
-			 (_ (match-string-no-properties 2))))
-		 (path (save-match-data
-			 (and (string-match ":" link) ;remove type
-			      (substring link (match-end 0)))))
+	  (let* ((link-object (save-excursion
+				(goto-char start)
+				(save-match-data (org-element-link-parser))))
+		 (link (org-element-property :raw-link link-object))
+		 (path (org-element-property :path link-object))
 		 (properties		;for link's visible part
 		  (list
 		   'face (pcase (org-link-get-parameter type :face)
@@ -5995,10 +5993,7 @@ This includes angle, plain, and bracket links."
 		   'help-echo (pcase (org-link-get-parameter type :help-echo)
 				((and (pred stringp) echo) echo)
 				((and (pred functionp) echo) echo)
-				(_ (concat "LINK: "
-					   (save-match-data
-					     (org-link-unescape
-					      (org-link-expand-abbrev link))))))
+				(_ (concat "LINK: " link)))
 		   'htmlize-link (pcase (org-link-get-parameter type
 								:htmlize-link)
 				   ((and (pred functionp) f) (funcall f))