From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rasmus Subject: Re: Bug: Export to html fails when link to header in non existing file in document present Date: Wed, 06 May 2015 15:50:30 +0200 Message-ID: <874mnpddcp.fsf@gmx.us> References: <87oalyc7kp.fsf@gmx.us> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:43592) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ypzii-0004D7-Ny for emacs-orgmode@gnu.org; Wed, 06 May 2015 09:50:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ypzid-0005gM-81 for emacs-orgmode@gnu.org; Wed, 06 May 2015 09:50:40 -0400 Received: from mout.gmx.net ([212.227.15.19]:57332) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ypzic-0005fz-Th for emacs-orgmode@gnu.org; Wed, 06 May 2015 09:50:35 -0400 In-Reply-To: (Rainer M. Krug's message of "Wed, 06 May 2015 14:14:22 +0200") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: rainer@krugs.de Cc: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Rainer M Krug 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. >=20 > 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=3Dn+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. =E2=80=94Rasmus --=20 Don't panic!!! --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-ox-html-Improve-links-with-search.patch >From 8e1dd6c43e8a358a85a8034825c475199bd2ffb7 Mon Sep 17 00:00:00 2001 From: Rasmus 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 --- 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 --=-=-=--