Merge branch 'maint'
Conflicts: testing/lisp/test-org-element.el
This commit is contained in:
commit
451e20d982
|
@ -3012,16 +3012,20 @@ Assume point is at the beginning of the link."
|
|||
(cond
|
||||
;; File type.
|
||||
((or (file-name-absolute-p raw-link)
|
||||
(string-match "^\\.\\.?/" raw-link))
|
||||
(string-match "\\`\\.\\.?/" raw-link))
|
||||
(setq type "file" path raw-link))
|
||||
;; Explicit type (http, irc, bbdb...). See `org-link-types'.
|
||||
((string-match org-link-re-with-space3 raw-link)
|
||||
(setq type (match-string 1 raw-link) path (match-string 2 raw-link)))
|
||||
((string-match org-link-types-re raw-link)
|
||||
(setq type (match-string 1 raw-link)
|
||||
;; According to RFC 3986, extra whitespace should be
|
||||
;; ignored when a URI is extracted.
|
||||
path (replace-regexp-in-string
|
||||
"[ \t]*\n[ \t]*" "" (substring raw-link (match-end 0)))))
|
||||
;; Id type: PATH is the id.
|
||||
((string-match "^id:\\([-a-f0-9]+\\)" raw-link)
|
||||
((string-match "\\`id:\\([-a-f0-9]+\\)" raw-link)
|
||||
(setq type "id" path (match-string 1 raw-link)))
|
||||
;; Code-ref type: PATH is the name of the reference.
|
||||
((string-match "^(\\(.*\\))$" raw-link)
|
||||
((string-match "\\`(\\(.*\\))\\'" raw-link)
|
||||
(setq type "coderef" path (match-string 1 raw-link)))
|
||||
;; Custom-id type: PATH is the name of the custom id.
|
||||
((= (aref raw-link 0) ?#)
|
||||
|
|
|
@ -1472,19 +1472,19 @@ e^{i\\pi}+1=0
|
|||
(org-test-with-temp-text "[[file:projects.org::*task title]]"
|
||||
(org-element-map (org-element-parse-buffer) 'link
|
||||
(lambda (l) (list (org-element-property :type l)
|
||||
(org-element-property :path l)
|
||||
(org-element-property :search-option l)))))))
|
||||
;; ... file-type link with application.
|
||||
(org-element-property :path l)
|
||||
(org-element-property :search-option l)))))))
|
||||
;; ... file-type link with application...
|
||||
(should
|
||||
(equal
|
||||
'(("file" "projects.org" "docview"))
|
||||
'("file" "projects.org" "docview")
|
||||
(org-test-with-temp-text "[[docview:projects.org]]"
|
||||
(org-element-map (org-element-parse-buffer) 'link
|
||||
(lambda (l) (list (org-element-property :type l)
|
||||
(org-element-property :path l)
|
||||
(org-element-property :application l)))))))
|
||||
(let ((l (org-element-context)))
|
||||
(list (org-element-property :type l)
|
||||
(org-element-property :path l)
|
||||
(org-element-property :application l))))))
|
||||
;; ... `:path' in a file-type link must be compatible with "file"
|
||||
;; scheme in URI syntax, even if Org syntax isn't.
|
||||
;; scheme in URI syntax, even if Org syntax isn't...
|
||||
(should
|
||||
(org-test-with-temp-text-in-file ""
|
||||
(let ((file (expand-file-name (buffer-file-name))))
|
||||
|
@ -1502,7 +1502,12 @@ e^{i\\pi}+1=0
|
|||
(let ((file (file-relative-name (buffer-file-name))))
|
||||
(insert (format "[[file:%s]]" file))
|
||||
(list (org-element-property :path (org-element-context)) file))))
|
||||
;; Plain link.
|
||||
;; ... multi-line link.
|
||||
(should
|
||||
(equal "//orgmode.org"
|
||||
(org-test-with-temp-text "[[http://orgmode.\norg]]"
|
||||
(org-element-property :path (org-element-context)))))
|
||||
;; Plain link.
|
||||
(should
|
||||
(org-test-with-temp-text "A link: http://orgmode.org"
|
||||
(org-element-map (org-element-parse-buffer) 'link 'identity)))
|
||||
|
|
Loading…
Reference in New Issue