diff options
author | Kyle Meyer <kyle@kyleam.com> | 2017-05-04 00:03:00 -0400 |
---|---|---|
committer | Kyle Meyer <kyle@kyleam.com> | 2017-05-04 00:03:00 -0400 |
commit | c28ec3a17011aafa0bee7dcd2e12d3e7d5a3a87d (patch) | |
tree | df2a6202d7f6db21c21f1709ffb9209da01ed71c | |
parent | cbe544edf33a97ffffd3a03f550ffa85e45c18e4 (diff) | |
parent | fef346798f9230644d389e21d33990bfac65e884 (diff) | |
download | org-mode-c28ec3a17011aafa0bee7dcd2e12d3e7d5a3a87d.tar.gz |
Merge branch 'maint'
-rw-r--r-- | contrib/lisp/ox-extra.el | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/contrib/lisp/ox-extra.el b/contrib/lisp/ox-extra.el index 85dae47..9cd6980 100644 --- a/contrib/lisp/ox-extra.el +++ b/contrib/lisp/ox-extra.el @@ -56,7 +56,7 @@ ;;; Code: (require 'ox) -(eval-when-compile (require 'cl)) +(require 'cl-lib) (defun org-latex-header-blocks-filter (backend) (when (org-export-derived-backend-p backend 'latex) @@ -72,8 +72,10 @@ (org-element-property :post-affiliated block))))))) (mapc (lambda (pos) (goto-char (nth 2 pos)) - (destructuring-bind + (cl-destructuring-bind (beg end &rest ignore) + ;; FIXME: `org-edit-src-find-region-and-lang' was + ;; removed in 9c06f8cce (2014-11-11). (org-edit-src-find-region-and-lang) (let ((contents-lines (split-string (buffer-substring-no-properties beg end) @@ -150,8 +152,27 @@ parent." (org-element-contents object))) (org-element-extract-element object))) info nil) + (org-extra--merge-sections data backend info) data) +(defun org-extra--merge-sections (data _backend info) + (org-element-map data 'headline + (lambda (hl) + (let ((sections + (cl-loop + for el in (org-element-map (org-element-contents hl) + '(headline section) #'identity info) + until (eq (org-element-type el) 'headline) + collect el))) + (when (and sections + (> (length sections) 1)) + (apply #'org-element-adopt-elements + (car sections) + (cl-mapcan (lambda (s) (org-element-contents s)) + (cdr sections))) + (mapc #'org-element-extract-element (cdr sections))))) + info)) + (defconst ox-extras '((latex-header-blocks org-latex-header-blocks-filter org-export-before-parsing-hook) (ignore-headlines org-export-ignore-headlines org-export-filter-parse-tree-functions)) |