Rainer M Krug <rai...@krugs.de> writes: >> What do you expect? >> >> Should the "::*SOMETHING"-part be discarded without warning? > > Well - the ideal solution would be a warning (or error message) with a > reference to the link. At the moment, a link to a non existing file is > exported, a link to a section in a non existing produces a cryptic > error message. > > At the moment, I have no clue how I can find the link. > > So I would hope for > > 1) consistent behavior for the two cases > 2) a meaningful warning which helps to find the culprit > 3) an html file, where the links do not work, but the export is fine. > > or, if 3) is not possible, meaningful error messages which actually help > me to track down the error (I only found out what was causing this error > accidentally)
The issue with warnings is that I don't see them.... Though an error seems a bit drastic here. The attached patch inserts a link without the anchor and issues a warning if exporting such links without ox-publish. >> The internal link cannot be known without the file, as it is of the form >> orgheadlineN where N=n+1 and n is the number of headlines prior to >> "*Something"... > > Sure - this is obvious. Actually, the error you found is more interesting than what I first though, as any link with anchors will trigger the error, it seems. org-publish-cache must be non-nil, which seems to linger on publishing a project. —Rasmus -- Don't panic!!!
>From 8e1dd6c43e8a358a85a8034825c475199bd2ffb7 Mon Sep 17 00:00:00 2001 From: Rasmus <ras...@gmx.us> Date: Wed, 6 May 2015 15:44:26 +0200 Subject: [PATCH] ox-html: Improve links with search * ox-html.el (org-html-link): Handle links with search when not using Publish. Reported-by: Rainer M Krug <rai...@krugs.de> <http://permalink.gmane.org/gmane.emacs.orgmode/97420> --- lisp/ox-html.el | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lisp/ox-html.el b/lisp/ox-html.el index 6c712f6..0e69e6a 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -2849,12 +2849,18 @@ INFO is a plist holding contextual information. See ;; relative to a custom-id, a headline title a name, ;; a target or a radio-target. (let ((option (org-element-property :search-option link))) - (if (not option) raw-path - (concat raw-path - "#" - (org-publish-resolve-external-link - option - (org-element-property :path link)))))) + (cond ((and option org-publish-cache) + (concat raw-path + "#" + (org-publish-resolve-external-link + option + (org-element-property :path link)))) + ((and option (not org-publish-cache)) + (org-display-warning + (format "Link to file %s cannot be resolved. Please use Org Publish." + (org-element-property :path link))) + raw-path) + (t raw-path)))) (t raw-path))) ;; Extract attributes from parent's paragraph. HACK: Only do ;; this for the first link in parent (inner image link for -- 2.4.0