ox-publish: Allow external references outside of publishing

* lisp/ox-publish.el (org-publish-resolve-external-link): Warn instead
  of throwing an error when a reference to a non-published external
  file is encountered.
This commit is contained in:
Nicolas Goaziou 2015-05-07 22:15:00 +02:00
parent 9aa69058bc
commit a35c4332f2
1 changed files with 21 additions and 19 deletions

View File

@ -1144,25 +1144,27 @@ This function allows to resolve external links like:
[[file.org::*fuzzy][description]] [[file.org::*fuzzy][description]]
[[file.org::#custom-id][description]] [[file.org::#custom-id][description]]
[[file.org::fuzzy][description]]" [[file.org::fuzzy][description]]"
(unless org-publish-cache (if (not org-publish-cache)
(user-error (progn
"Reference \"%s\" in file \"%s\" cannot be resolved without publishing" (message "Reference \"%s\" in file \"%s\" cannot be resolved without \
search publishing"
file)) search
(let ((references (org-publish-cache-get-file-property file)
(expand-file-name file) :references nil t))) "MissingReference")
(cond (let ((references (org-publish-cache-get-file-property
((cdr (case (aref search 0) (expand-file-name file) :references nil t)))
(?* (assoc (cons 'headline (org-split-string (substring search 1))) (cond
references)) ((cdr (case (aref search 0)
(?# (assoc (cons 'custom-id (substring search 1)) references)) (?* (assoc (cons 'headline (org-split-string (substring search 1)))
(t references))
(let ((s (org-split-string search))) (?# (assoc (cons 'custom-id (substring search 1)) references))
(or (assoc (cons 'target s) references) (t
(assoc (cons 'other s) references) (let ((s (org-split-string search)))
(assoc (cons 'headline s) references))))))) (or (assoc (cons 'target s) references)
(t (message "Unknown cross-reference \"%s\" in file \"%s\"" search file) (assoc (cons 'other s) references)
"MissingReference")))) (assoc (cons 'headline s) references)))))))
(t (message "Unknown cross-reference \"%s\" in file \"%s\"" search file)
"MissingReference")))))