Function: org-texinfo-plain-list

org-texinfo-plain-list is a byte-compiled function defined in ox-texinfo.el.gz.

Signature

(org-texinfo-plain-list PLAIN-LIST CONTENTS INFO)

Documentation

Transcode a PLAIN-LIST element from Org to Texinfo.

CONTENTS is the contents of the list. INFO is a plist holding contextual information.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ox-texinfo.el.gz
;;;; Plain List

(defun org-texinfo-plain-list (plain-list contents info)
  "Transcode a PLAIN-LIST element from Org to Texinfo.
CONTENTS is the contents of the list.  INFO is a plist holding
contextual information."
  (let* ((attr (org-export-read-attribute :attr_texinfo plain-list))
	 (indic (let ((i (or (plist-get attr :indic)
			     (plist-get info :texinfo-table-default-markup))))
		  ;; Allow indicating commands with missing @ sign.
		  (if (string-prefix-p "@" i) i (concat "@" i))))
	 (table-type (plist-get attr :table-type))
	 (type (org-element-property :type plain-list))
	 (enum
	  (cond ((not (eq type 'ordered)) nil)
		((plist-member attr :enum) (plist-get attr :enum))
		(t
		 ;; Texinfo only supports initial counters, i.e., it
		 ;; cannot change the numbering mid-list.
		 (let ((first-item (car (org-element-contents plain-list))))
		   (org-element-property :counter first-item)))))
	 (list-type (cond
		     ((eq type 'ordered) "enumerate")
		     ((eq type 'unordered) "itemize")
		     ((member table-type '("ftable" "vtable")) table-type)
		     (t "table"))))
    (format "@%s\n%s@end %s"
	    (cond ((eq type 'descriptive) (concat list-type " " indic))
		  (enum (format "%s %s" list-type enum))
		  (t list-type))
	    contents
	    list-type)))