emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] [bug, patch, ox] INCLUDE and footnotes


From: Rasmus
Subject: [O] [bug, patch, ox] INCLUDE and footnotes
Date: Tue, 09 Dec 2014 12:44:55 +0100
User-agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/24.4.51 (gnu/linux)

Hi,

When using LINES in `org-export--prepare-file-contents' the footnotes
section is not preserved causing export to fail.

Minimal example

$> cat t{1,2}.org
# this is t1.org
* intro
foo[fn:1]
* sec2
bar
* Footnotes

[fn:1] baz


# this is t2.org
#+INCLUDE: "./t1.org::#intro"

And export t2.org.

The attached patch fixes this by explicitly saving the footnote section

(Aside: org-footnote-section is used in hackish ways; should we make a
function that returns to correct regexp for the footnotes section?).

It works in a rather large document of mine and in the minimal test.

Should I apply it, or is there a better way to fix this bug?

Thanks,
Rasmus

-- 
Slowly unravels in a ball of yarn and the devil collects it
>From 3f352159d9011e6a00af853fa6dadb04a5b46c87 Mon Sep 17 00:00:00 2001
From: rasmus <address@hidden>
Date: Tue, 9 Dec 2014 12:40:52 +0100
Subject: [PATCH] ox.el: Fix footnote-bug in #+INCLUDE-keyword

* ox.el (org-export--prepare-file-contents): Preserve footnote-section
when using the LINES argument.
---
 lisp/ox.el | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/lisp/ox.el b/lisp/ox.el
index 9d9e794..8d4fd6c 100644
--- a/lisp/ox.el
+++ b/lisp/ox.el
@@ -3260,8 +3260,22 @@ with footnotes is included in a document."
             (end (if (zerop lend) (point-max)
                    (goto-char (point-min))
                    (forward-line (1- lend))
-                   (point))))
-       (narrow-to-region beg end)))
+                   (point)))
+            (footnote-section
+             (save-excursion
+               (goto-char (point-min))
+               (when (search-forward-regexp
+                      (concat "^\\*+[ \t]+" org-footnote-section "[ \t]*$")
+                      nil t)
+                 (buffer-substring
+                  (point-at-bol)
+                  (or
+                   (and (search-forward-regexp org-heading-regexp nil t)
+                        (point-at-bol))
+                   (point-max)))))))
+       (narrow-to-region beg end)
+       (and footnote-section
+            (insert "\n" footnote-section))))
     ;; Remove blank lines at beginning and end of contents.  The logic
     ;; behind that removal is that blank lines around include keyword
     ;; override blank lines in included file.
-- 
2.1.3


reply via email to

[Prev in Thread] Current Thread [Next in Thread]