Function: org-odt-headline
org-odt-headline is a byte-compiled function defined in ox-odt.el.gz.
Signature
(org-odt-headline HEADLINE CONTENTS INFO)
Documentation
Transcode a HEADLINE element from Org to ODT.
CONTENTS holds the contents of the headline. INFO is a plist holding contextual information.
Source Code
;; Defined in /usr/src/emacs/lisp/org/ox-odt.el.gz
(defun org-odt-headline (headline contents info)
"Transcode a HEADLINE element from Org to ODT.
CONTENTS holds the contents of the headline. INFO is a plist
holding contextual information."
;; Case 1: This is a footnote section: ignore it.
(unless (org-element-property :footnote-section-p headline)
(let* ((full-text (org-odt-format-headline--wrap headline nil info))
;; Get level relative to current parsed data.
(level (org-export-get-relative-level headline info))
(numbered (org-export-numbered-headline-p headline info))
;; Get canonical label for the headline.
(id (org-export-get-reference headline info))
;; Extra targets.
(extra-targets
(let ((id (org-element-property :ID headline)))
(if id (org-odt--target "" (concat "ID-" id)) "")))
;; Title.
(anchored-title (org-odt--target full-text id)))
(cond
;; Case 2. This is a deep sub-tree: export it as a list item.
;; Also export as items headlines for which no section
;; format has been found.
((org-export-low-level-p headline info)
;; Build the real contents of the sub-tree.
(concat
(and (org-export-first-sibling-p headline info)
(format "\n<text:list text:style-name=\"%s\" %s>"
;; Choose style based on list type.
(if numbered "OrgNumberedList" "OrgBulletedList")
;; If top-level list, re-start numbering. Otherwise,
;; continue numbering.
(format "text:continue-numbering=\"%s\""
(let* ((parent (org-export-get-parent-headline
headline)))
(if (and parent
(org-export-low-level-p parent info))
"true" "false")))))
(let ((headline-has-table-p
(let ((section (assq 'section (org-element-contents headline))))
(assq 'table (and section (org-element-contents section))))))
(format "\n<text:list-item>\n%s\n%s"
(concat
(format "\n<text:p text:style-name=\"%s\">%s</text:p>"
"Text_20_body"
(concat extra-targets anchored-title))
contents)
(if headline-has-table-p
"</text:list-header>"
"</text:list-item>")))
(and (org-export-last-sibling-p headline info)
"</text:list>")))
;; Case 3. Standard headline. Export it as a section.
(t
(concat
(format
"\n<text:h text:style-name=\"%s\" text:outline-level=\"%s\" text:is-list-header=\"%s\">%s</text:h>"
(format "Heading_20_%s%s"
level (if numbered "" "_unnumbered"))
level
(if numbered "false" "true")
(concat extra-targets anchored-title))
contents))))))