From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jess Balint Subject: Bug: HTML Export doesn't handle internal link with spaces [8.0.7 (8.0.7-6-g13cb28-elpa @ /home/jbalint/.emacs.d/elpa/org-20130812/)] Date: Mon, 16 Dec 2013 14:48:03 -0600 Message-ID: <87zjo034l8.wl%jbalint@gmail.com> Mime-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:34943) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vsf2l-0004e8-ST for emacs-orgmode@gnu.org; Mon, 16 Dec 2013 15:45:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Vsf2g-0001Bi-Um for emacs-orgmode@gnu.org; Mon, 16 Dec 2013 15:45:35 -0500 Received: from mail-ie0-x231.google.com ([2607:f8b0:4001:c03::231]:32825) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vsf2g-0001BX-GF for emacs-orgmode@gnu.org; Mon, 16 Dec 2013 15:45:30 -0500 Received: by mail-ie0-f177.google.com with SMTP id tp5so7208547ieb.22 for ; Mon, 16 Dec 2013 12:45:29 -0800 (PST) Received: from rook.gmail.com (68-190-117-42.dhcp.mdsn.wi.charter.com. [68.190.117.42]) by mx.google.com with ESMTPSA id y10sm18204673igl.4.2013.12.16.12.45.28 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Dec 2013 12:45:29 -0800 (PST) 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: emacs-orgmode@gnu.org Remember to cover the basics, that is, what you expected to happen and what in fact did happen. You don't know how to make a good report? See http://orgmode.org/manual/Feedback.html#Feedback Your bug report will be posted to the Org-mode mailing list. ------------------------------------------------------------------------ I've generated a link to a headline with `org-store-link' and `org-insert-link'. It's rendered into the Org file like so: [[*Headline%20with%Spaces][Headline with Spaces]] The HTML export renders this as an italic string (the last cond in the org-html-link function). The HTML exporter gets a "fuzzy" link which is handled in this block: ;; Links pointing to a headline: Find destination and build ;; appropriate referencing command. ((member type '("custom-id" "fuzzy" "id")) (let ((destination (if (string= type "fuzzy") (org-export-resolve-fuzzy-link link info) (org-export-resolve-id-link link info)))) The problem is in `org-export-resolve-fuzzy-link' which get's the path directly from the link: (let* ((raw-path (org-element-property :path link)) But at this point it has "%20" in it which causes a problem when splitting it: ;; Split PATH at white spaces so matches are space ;; insensitive. (path (org-split-string (if match-title-p (substring raw-path 1) raw-path))) This does nothing because there are no spaces in the string (they are %20 here). The search for a headline matching this fails. I can solve this here by doing: ;; Split PATH at white spaces so matches are space ;; insensitive. (path (org-split-string (replace-regexp-in-string "%20" " " (if match-title-p (substring raw-path 1) raw-path)))) I'm not it's the proper solution though. Thanks. Jess Emacs : GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.8.2) of 2013-08-06 on -mnt-storage-buildroots-staging-x86_64-eric Package: Org-mode version 8.0.7 (8.0.7-6-g13cb28-elpa @ /home/jbalint/.emacs.d/elpa/org-20130812/) current state: ============== (setq org-tab-first-hook '(org-hide-block-toggle-maybe org-src-native-tab-command-maybe org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-speed-command-hook '(org-speed-command-default-hook org-babel-speed-command-hook) org-occur-hook '(org-first-headline-recenter) org-metaup-hook '(org-babel-load-in-session-maybe) org-log-done 'time org-confirm-shell-link-function 'yes-or-no-p org-latex-format-headline-function 'org-latex-format-headline-default-function org-default-notes-file "~/Dropbox/important/org/notes.org" org-after-todo-state-change-hook '(org-clock-out-if-current) org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) org-agenda-before-write-hook '(org-agenda-add-entry-text) org-babel-pre-tangle-hook '(save-buffer) org-mode-hook '(#[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-show-block-all append local] 5] #[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes (lambda nil (local-set-key "a" (quote org-agenda)) (local-unset-key "") (local-set-key "" (function (lambda nil (interactive) (if (oracle-elem-open) nil (org-open-at-point))) ) ) (org-babel-do-load-languages (quote org-babel-load-languages) (quote ((ditaa . t)))) ) ) org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-maybe) org-directory "~/Dropbox/important/org" org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-hide-inline-tasks org-cycle-show-empty-lines org-optimize-window-after-visibility-change) org-todo-keywords '((sequence "TODO" "|" "DONE") (sequence "|" "WAITING") (sequence "|" "CANCELED")) org-confirm-elisp-link-function 'yes-or-no-p org-metadown-hook '(org-babel-pop-to-session-maybe) org-babel-load-languages '((ditaa . t)) org-agenda-files '("~/Dropbox/important/org" "~/Dropbox/important/org/oracle_work_log" "~/Dropbox/important/org/notes") org-clock-out-hook '(org-clock-remove-empty-clock-drawer) org-confirm-babel-evaluate 'my-org-confirm-babel-evaluate org-src-fontify-natively t )