From mboxrd@z Thu Jan 1 00:00:00 1970 From: Richard Lawrence Subject: Bug: Footnotes break iCalendar export [8.0.1 (release_8.0.1 @ /home/rwl/src/org-mode/lisp/)] Date: Sat, 20 Apr 2013 14:14:32 -0700 Message-ID: <87li8c9a6f.fsf@berkeley.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([208.118.235.92]:54505) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UTf4k-00084b-6H for emacs-orgmode@gnu.org; Sat, 20 Apr 2013 17:12:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UTf4g-0001SP-Vi for emacs-orgmode@gnu.org; Sat, 20 Apr 2013 17:12:02 -0400 Received: from mail-pa0-f52.google.com ([209.85.220.52]:40790) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UTf4g-0001Ra-Lg for emacs-orgmode@gnu.org; Sat, 20 Apr 2013 17:11:58 -0400 Received: by mail-pa0-f52.google.com with SMTP id fb10so2875464pad.39 for ; Sat, 20 Apr 2013 14:11:57 -0700 (PDT) Received: from rwl by aristotle with local (Exim 4.72) (envelope-from ) id 1UTf7A-0002tJ-DD for emacs-orgmode@gnu.org; Sat, 20 Apr 2013 14:14:32 -0700 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 Hi Org maintainers, I've been trying to get iCalendar export working with my agenda files again since upgrading to 8.0, and I've found that footnotes break the agenda export to .ics. The problem is that a plain text version of the footnotes in the file ends up in the output "floating loose"---not wrapped by VEVENT tags or any other tags---resulting in an unparseable .ics file (at least according to Google Calendar). Here's a sample Org file to illustrate: * Entry 1 This entry has some text with an inline footnote[fn:: which isn't very interesting] * Entry 2 This entry has some text with an external footnote[fn:1] * Appointment with Someone <2013-04-20 Sat 15:00> * Footnotes [fn:1] which still isn't very interesting And here's the output I get when I export this (via C-c a < a C-x C-w /tmp/test.ics): BEGIN:VCALENDAR VERSION:2.0 X-WR-CALNAME:OrgMode PRODID:-//Richard Lawrence//Emacs with Org mode//EN X-WR-TIMEZONE:America/Los_Angeles X-WR-CALDESC: CALSCALE:GREGORIAN BEGIN:VEVENT DTSTAMP:20130420T211153Z UID:TS1-5b8f14ac-d380-437f-88dd-4ed0a4ebacb9 DTSTART:20130420T150000 DTEND:20130420T170000 SUMMARY:Appointment with Someone DESCRIPTION:<2013-04-20 Sat 15:00> CATEGORIES:test END:VEVENT Footnotes =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80 [1] which isn't very interesting [2] which still isn't very interesting END:VCALENDAR Note that I still seem to get the behavior when I restrict the export to headlines matching certain tags. In that case, even footnotes from entries which should not be exported end up in the output, which seems pretty strange. It doesn't make much sense to me to have footnotes when exporting to a calendar format, so is there any way to suppress exporting footnotes in this case? Thanks! Best, Richard Emacs : GNU Emacs 23.2.1 (i486-pc-linux-gnu, GTK+ Version 2.20.1) of 2013-01-08 on murphy, modified by Debian Package: Org-mode version 8.0.1 (release_8.0.1 @ /home/rwl/src/org-mode/lis= p/) current state: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D (setq org-todo-keyword-faces '(("WAITING" . "orange")) org-speed-command-hook '(org-speed-command-default-hook org-babel-speed-co= mmand-hook) org-agenda-custom-commands '(("r" "Reading list" tags-todo "+reading") ("S= " . "STUDY context searches") ("Sf" todo "FIND") ("Sp" todo "PRINT") ("Sr" todo "READ") ("Sn" todo "NOTES") ("St" tags-todo "+STUDY") (= "P" tags-todo "+CAMPUS") ("D" tags-todo "+COMPUTER") ("H" tags-todo "+HOME") ("E" tags-todo "ERRAND|BUY") ("F" tags "+F= REETIME") ("X" tags-todo "+EXERCISE") ("Z" "Export to iCalendar file" tags "event|appointment" nil ("~/D= ocuments/website/public_html/lib/attachments/calendar.ics")) ) org-agenda-files '("~/Documents/philosophy/dissertation/tasks.org" "~/org/= school.org" "~/org/life.org" "~/org/beer.org" "~/org/food.org") org-metaup-hook '(org-babel-load-in-session-maybe) org-capture-templates '(("s" "School") ("st" "Todo" entry (file+olp "~/org/school.org" "Tasks" "Spring 2013") = (file "~/org/templates/todo.txt") :prepend t) ("sy" "Todo (from active region or kill ring)" entry (file+olp "~/org/s= chool.org" "Tasks" "Spring 2013") (file "~/org/templates/todo-with-yank.txt") :prepend t) ("sl" "Todo (with link)" entry (file+olp "~/org/school.org" "Tasks" "Sp= ring 2013") (file "~/org/templates/todo-with-link.txt") :prepend t) ("se" "Event" entry (file+headline "~/org/school.org" "Events") (file "= ~/org/templates/event.txt") :prepend t) ("sr" "Reading" entry (file+olp "~/org/school.org" "Reading list") (fil= e "~/org/templates/reading.txt") :prepend t) ("sa" "Appointment" entry (file+olp "~/org/school.org" "Tasks" "Spring = 2013") (file "~/org/templates/appointment.txt") :prepend t) ("sb" "Bookmark" entry (file+olp "~/org/school.org" "Bookmarks") (file = "~/org/templates/bookmark-school.txt")) ("sc" "Class" entry (file+olp "~/org/school.org" "Semester Schedule" "S= pring 2013" "Classes") (file "~/org/templates/class.txt")) ("ss" "Semester" entry (file+olp "~/org/school.org" "Semester Schedule"= ) (file "~/org/templates/semester.txt") :prepend t) ("d" "Dissertation") ("dt" "Todo" entry (file+olp "~/Documents/philosophy/dissertation/tasks= .org" "Tasks") (file "~/org/templates/todo.txt") :prepend t) ("de" "Event" entry (file+headline "~/Documents/philosophy/dissertation= /tasks.org" "Events") (file "~/org/templates/event.txt") :prepend t) ("dr" "Reading" entry (file+olp "~/Documents/philosophy/dissertation/ta= sks.org" "Reading list") (file "~/org/templates/reading.txt") :prepend t) ("da" "Appointment" entry (file+olp "~/Documents/philosophy/dissertatio= n/tasks.org" "Tasks") (file "~/org/templates/appointment.txt") :prepend t) ("db" "Bookmark" entry (file+olp "~/Documents/philosophy/dissertation/t= asks.org" "Bookmarks") (file "~/org/templates/bookmark-school.txt")) ("l" "Life") ("lt" "Todo" entry (file+headline "~/org/life.org" "Tasks"= ) (file "~/org/templates/todo.txt") :prepend t) ("ly" "Todo (from active region or kill ring)" entry (file+headline "~/= org/life.org" "Tasks") (file "~/org/templates/todo-with-yank.txt") :prepend t) ("ll" "Todo (with link)" entry (file+headline "~/org/life.org" "Tasks")= (file "~/org/templates/todo-with-link.txt") :prepend t) ("le" "Event" entry (file+headline "~/org/life.org" "Events") (file "~/= org/templates/event.txt") :prepend t) ("la" "Appointment" entry (file+headline "~/org/life.org" "Tasks") (fil= e "~/org/templates/appointment.txt") :prepend t) ("lr" "Reading" entry (file+headline "~/org/life.org" "Reading list") (= file "~/org/templates/reading-life.txt")) ("lb" "Bookmark" entry (file+olp "~/org/life.org" "Bookmarks" "Misc.") = (file "~/org/templates/bookmark-life.txt")) ("l$" "Bill" entry (file+olp "~/org/life.org" "Finances" "Bills") (file= "~/org/templates/bill.txt") :prepend t) ("f" "Food") ("fr" "Recipe" entry (file+headline "~/org/food.org" "Recipes") (file "= ~/org/templates/recipe.txt") :prepend t) ("c" "Contacts") ("cp" "Personal" entry (file "~/org/contacts.org") (file "~/org/templat= es/contact-personal.txt")) ("cs" "School" entry (file "~/org/contacts.org") (file "~/org/templates= /contact-school.txt")) ("co" "Organization" entry (file "~/org/contacts.org") (file "~/org/tem= plates/contact-organization.txt")) ("a" "[Automated]") ("ap" "100 Paper" entry (file+olp "~/Documents/philosophy/teaching/100/= papers/papers.org" "New") (file "~/org/templates/paper-100.txt")) ) org-after-todo-state-change-hook '(org-clock-out-if-current) org-combined-agenda-icalendar-file "~/Documents/website/public_html/lib/at= tachments/calendar.ics" org-icalendar-timezone "America/Los_Angeles" org-footnote-auto-label 'confirm org-list-empty-line-terminates-plain-lists t org-agenda-sorting-strategy '((agenda time-up deadline-up priority-down to= do-state-up category-keep) (todo time-down priority-down category-keep) (tags tag-down priority-down category-keep) (search time-up prior= ity-down todo-state-up)) org-export-with-drawers '(not "LOGBOOK") org-export-copy-to-kill-ring 'if-interactive org-capture-before-finalize-hook '((lambda nil (add-bibliographic-data))) org-export-preprocess-hook '(ignoreheading-org-export-preprocess-hook) org-tab-first-hook '(org-hide-block-toggle-maybe org-src-native-tab-comman= d-maybe org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-confi= gure-edit-buffer) org-confirm-shell-link-function 'yes-or-no-p org-todo-keywords '((sequence "TODO" "INPROGRESS" "WAITING" "|" "DONE" "CA= NCELED") (sequence "FIND" "PRINT" "READ" "NOTES" "|" "DONE" "CANCELED") (sequence "PRIMARY" "SECONDARY" "|" "BOTTLED")) org-agenda-before-write-hook '(org-agenda-add-entry-text) org-babel-pre-tangle-hook '(save-buffer) org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers o= rg-cycle-hide-inline-tasks org-cycle-show-empty-lines org-optimize-window-after-visibility-change) org-publish-project-alist '(("orgfiles" :base-directory "~/Documents/websi= te/src" :publishing-directory "~/Documents/website/public_html" :publishing-function org-publish-org-to-html :base-extension "org$= ") ("css" :base-directory "~/Documents/website/src/lib/css" :publishin= g-directory "~/Documents/website/public_html/lib/css" :publishing-function org-publish-attachment :base-extension "css$") ("images" :base-directory "~/Documents/website/src/lib/img" :publis= hing-directory "~/Documents/website/public_html/lib/img" :publishing-function org-publish-attachment :base-extension "png\\= |jpe?g") ("12aworksheets-build" :base-directory "~/Documents/philosophy/teac= hing/12A/worksheets" :publishing-directory "~/Documents/philosophy/teaching/12A/worksheets" :publishing-funct= ion org-publish-org-to-pdf :base-extension "xxxx" :include ("worksheets.org")) ("12aworksheets-attach" :base-directory "~/Documents/philosophy/tea= ching/12A/worksheets" :publishing-directory "~/Documents/website/public_html/lib/attachments/teaching/12A" :pu= blishing-function org-publish-attachment :base-extension "pdf") ("12asyllabus-build" :base-directory "~/Documents/philosophy/teachi= ng/12A/syllabus" :publishing-directory "~/Documents/philosophy/teaching/12A/syllabus" :publishing-functio= n org-publish-org-to-pdf :base-extension "xxxx" :include ("section-syllabus.org")) ("12asyllabus-attach" :base-directory "~/Documents/philosophy/teach= ing/12A/syllabus" :publishing-directory "~/Documents/website/public_html/lib/attachments/teaching/12A" :pu= blishing-function org-publish-attachment :base-extension "pdf") ("12apdfs" :components ("12aworksheets-build" "12aworksheets-attach= " "12asyllabus-build" "12asyllabus-attach")) ("25asyllabus-build" :base-directory "~/Documents/philosophy/teachi= ng/25A/syllabus" :publishing-directory "~/Documents/philosophy/teaching/25A/syllabus" :publishing-functio= n org-publish-org-to-pdf :base-extension "xxxx" :include ("section-syllabus.org")) ("25asyllabus-attach" :base-directory "~/Documents/philosophy/teach= ing/25A/syllabus" :publishing-directory "~/Documents/website/public_html/lib/attachments/teaching/25A" :pu= blishing-function org-publish-attachment :base-extension "pdf") ("25ahandouts-attach" :base-directory "~/Documents/philosophy/teach= ing/25A/handouts" :publishing-directory "~/Documents/website/public_html/lib/attachments/teaching/25A" :pu= blishing-function org-publish-attachment :base-extension "pdf") ("25apdfs" :components ("25asyllabus-build" "25asyllabus-attach" "2= 5ahandouts-attach")) ("100pdfs-build" :base-directory "~/Documents/philosophy/teaching/1= 00" :publishing-directory "~/Documents/philosophy/teaching/100" :publishing-function org-pub= lish-org-to-pdf :base-extension "xxxx" :include ("syllabus.org" "paper-guidelines.org")) ("100pdfs-attach" :base-directory "~/Documents/philosophy/teaching/= 100" :publishing-directory "~/Documents/website/public_html/lib/attachments/teaching/100" :pu= blishing-function org-publish-attachment :base-extension "pdf") ("100pdfs" :components ("100pdfs-build" "100pdfs-attach")) ("146syllabus-build" :base-directory "~/Documents/philosophy/teachi= ng/146/syllabus" :publishing-directory "~/Documents/philosophy/teaching/146/syllabus" :publishing-functio= n org-publish-org-to-pdf :base-extension "xxxx" :include ("section-syllabus.org")) ("146syllabus-attach" :base-directory "~/Documents/philosophy/teach= ing/146/syllabus" :publishing-directory "~/Documents/website/public_html/lib/attachments/teaching/146" :pu= blishing-function org-publish-attachment :base-extension "pdf") ("146handouts-attach" :base-directory "~/Documents/philosophy/teach= ing/146/handouts" :publishing-directory "~/Documents/website/public_html/lib/attachments/teaching/146" :pu= blishing-function org-publish-attachment :base-extension "pdf") ("146pdfs" :components ("146syllabus-build" "146syllabus-attach")) ("website" :components ("orgfiles" "css" "images" "146pdfs"))) org-export-with-tags t org-agenda-span 1 org-mode-hook '(#[nil "\300\301\302\303\304$\207" [org-add-hook change-maj= or-mode-hook org-show-block-all append local] 5] #[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook o= rg-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes) org-refile-targets '((nil :maxlevel . 4)) org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-= maybe) org-confirm-elisp-link-function 'yes-or-no-p org-refile-use-outline-path t org-clock-out-hook '(org-clock-remove-empty-clock-drawer) org-occur-hook '(org-first-headline-recenter) org-from-is-user-regexp "\\" org-icalendar-include-body t org-icalendar-combined-description "" org-mobile-directory "/media/nexus/mobileorg" org-agenda-cmp-user-defined 'org-agenda-cmp-by-deadline org-modules '(org-habit org-w3m org-bbdb org-bibtex org-docview org-gnus o= rg-info org-irc org-mhe org-rmail) org-latex-format-headline-function 'org-latex-format-headline-default-func= tion org-metadown-hook '(org-babel-pop-to-session-maybe) )