mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-11-21 06:55:35 +00:00
ox-texinfo: Do not create menu for headlines without sectioning command
* lisp/ox-texinfo.el (org-texinfo--sectioning-structure): New function. (org-texinfo-headline): Use new function. (org-texinfo--menu-entries): Filter out headlines with no sectioning command defined. Reported-by: Ramesh Nedunchezian <rameshnedunchezian@outlook.com> <http://lists.gnu.org/r/emacs-orgmode/2021-04/msg00196.html>
This commit is contained in:
parent
e1b8d1d2b4
commit
f99f26306c
@ -559,6 +559,14 @@ strings (e.g., returned by `org-export-get-caption')."
|
||||
(format "@float %s%s\n%s\n%s%s@end float"
|
||||
type (if label (concat "," label) "") value caption-str short-str)))
|
||||
|
||||
(defun org-texinfo--sectioning-structure (info)
|
||||
"Return sectioning structure used in the document.
|
||||
INFO is a plist holding export options."
|
||||
(let ((class (plist-get info :texinfo-class)))
|
||||
(pcase (assoc class (plist-get info :texinfo-classes))
|
||||
(`(,_ ,_ . ,sections) sections)
|
||||
(_ (user-error "Unknown Texinfo class: %S" class)))))
|
||||
|
||||
;;; Template
|
||||
|
||||
(defun org-texinfo-template (contents info)
|
||||
@ -858,25 +866,22 @@ holding contextual information."
|
||||
(notoc? (org-export-excluded-from-toc-p headline info))
|
||||
(command
|
||||
(and
|
||||
(not (org-export-low-level-p headline info))
|
||||
(let ((class (plist-get info :texinfo-class)))
|
||||
(pcase (assoc class (plist-get info :texinfo-classes))
|
||||
(`(,_ ,_ . ,sections)
|
||||
(pcase (nth (1- (org-export-get-relative-level headline info))
|
||||
sections)
|
||||
(`(,numbered ,unnumbered ,unnumbered-no-toc ,appendix)
|
||||
(cond
|
||||
((org-not-nil
|
||||
(org-export-get-node-property :APPENDIX headline t))
|
||||
appendix)
|
||||
(numbered? numbered)
|
||||
(index unnumbered)
|
||||
(notoc? unnumbered-no-toc)
|
||||
(t unnumbered)))
|
||||
(`nil nil)
|
||||
(_ (user-error "Invalid Texinfo class specification: %S"
|
||||
class))))
|
||||
(_ (user-error "Unknown Texinfo class: %S" class))))))
|
||||
(not (org-export-low-level-p headline info))
|
||||
(let ((sections (org-texinfo--sectioning-structure info)))
|
||||
(pcase (nth (1- (org-export-get-relative-level headline info))
|
||||
sections)
|
||||
(`(,numbered ,unnumbered ,unnumbered-no-toc ,appendix)
|
||||
(cond
|
||||
((org-not-nil
|
||||
(org-export-get-node-property :APPENDIX headline t))
|
||||
appendix)
|
||||
(numbered? numbered)
|
||||
(index unnumbered)
|
||||
(notoc? unnumbered-no-toc)
|
||||
(t unnumbered)))
|
||||
(`nil nil)
|
||||
(_ (user-error "Invalid Texinfo class specification: %S"
|
||||
(plist-get info :texinfo-class)))))))
|
||||
(todo
|
||||
(and (plist-get info :with-todo-keywords)
|
||||
(let ((todo (org-element-property :todo-keyword headline)))
|
||||
@ -1215,12 +1220,15 @@ holding contextual information."
|
||||
:texinfo-entries-cache)))
|
||||
(cached-entries (gethash scope cache 'no-cache)))
|
||||
(if (not (eq cached-entries 'no-cache)) cached-entries
|
||||
(puthash scope
|
||||
(cl-remove-if
|
||||
(lambda (h)
|
||||
(org-not-nil (org-export-get-node-property :COPYING h t)))
|
||||
(org-export-collect-headlines info 1 scope))
|
||||
cache))))
|
||||
(let ((sections (org-texinfo--sectioning-structure info)))
|
||||
(puthash scope
|
||||
(cl-remove-if
|
||||
(lambda (h)
|
||||
(or (org-not-nil (org-export-get-node-property :COPYING h t))
|
||||
(>= (org-export-get-relative-level h info)
|
||||
(length sections))))
|
||||
(org-export-collect-headlines info 1 scope))
|
||||
cache)))))
|
||||
|
||||
;;;; Node Property
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user