mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-11-24 07:20:29 +00:00
ox-texinfo: Allow enabling compact syntax for @itemx per file
* doc/org-manual.org (Plain lists in Texinfo export): Document the :texinfo-compact-itemx export option and variable org-texinfo-compact-itemx. (Texinfo specific properties): Mention new export option and variable. * lisp/ox-texinfo.el: Add org-texinfo-compact-itemx to the :options-alist of the texinfo backend. * lisp/ox-texinfo.el (org-texinfo-compact-itemx): New option. * lisp/ox-texinfo.el (org-texinfo--massage-key-item): Add INFO argument and use the :texinfo-compact-itemx export option. * lisp/ox-texinfo.el (org-texinfo-item): Use the :texinfo-compact-itemx export option.
This commit is contained in:
parent
1312e1a938
commit
98588ebfe1
@ -15307,11 +15307,14 @@ example is transcoded to the same output as above.
|
||||
This is the common text for variables foo and bar.
|
||||
#+end_example
|
||||
|
||||
Likewise, the Texinfo export back-end supports two approaches to
|
||||
writing Texinfo definition commands (see [[info:texinfo::Definition
|
||||
Commands]]). One of them uses description lists and is described below,
|
||||
the other relies on special blocks (see [[*Special blocks in Texinfo
|
||||
export]]).
|
||||
Support for this compact syntax can also be enabled for all lists in
|
||||
a file using the =compact-itemx= export option, or globally using the
|
||||
variable ~org-texinfo-compact-itemx~.
|
||||
|
||||
The Texinfo export back-end also supports two approaches to writing
|
||||
Texinfo definition commands (see [[info:texinfo::Definition Commands]]).
|
||||
One of them uses description lists and is described below, the other
|
||||
relies on special blocks (see [[*Special blocks in Texinfo export]]).
|
||||
|
||||
Items in a description list in a Org file that begin with =Function:=
|
||||
or certain other prefixes are converted using Texinfo definition
|
||||
@ -16333,6 +16336,7 @@ Settings]]), however, override everything.
|
||||
| ~:texinfo-active-timestamp-format~ | ~org-texinfo-active-timestamp-format~ |
|
||||
| ~:texinfo-classes~ | ~org-texinfo-classes~ |
|
||||
| ~:texinfo-class~ | ~org-texinfo-default-class~ |
|
||||
| ~:texinfo-compact-itemx | ~org-texinfo-compact-itemx~ |
|
||||
| ~:texinfo-table-default-markup~ | ~org-texinfo-table-default-markup~ |
|
||||
| ~:texinfo-diary-timestamp-format~ | ~org-texinfo-diary-timestamp-format~ |
|
||||
| ~:texinfo-filename~ | ~org-texinfo-filename~ |
|
||||
|
@ -119,8 +119,8 @@
|
||||
(:texinfo-table-default-markup nil nil org-texinfo-table-default-markup)
|
||||
(:texinfo-text-markup-alist nil nil org-texinfo-text-markup-alist)
|
||||
(:texinfo-format-drawer-function nil nil org-texinfo-format-drawer-function)
|
||||
(:texinfo-format-inlinetask-function nil nil org-texinfo-format-inlinetask-function)))
|
||||
|
||||
(:texinfo-format-inlinetask-function nil nil org-texinfo-format-inlinetask-function)
|
||||
(:texinfo-compact-itemx nil "compact-itemx" org-texinfo-compact-itemx)))
|
||||
|
||||
|
||||
;;; User Configurable Variables
|
||||
@ -355,6 +355,20 @@ The function should return the string to be exported."
|
||||
:group 'org-export-texinfo
|
||||
:type 'function)
|
||||
|
||||
;;;; Itemx
|
||||
|
||||
(defcustom org-texinfo-compact-itemx nil
|
||||
"Non-nil means certain items in description list become `@itemx'.
|
||||
|
||||
If this is non-nil and an item in a description list has no
|
||||
body but is followed by another item, then the second item is
|
||||
transcoded to `@itemx'. See info node `(org)Plain lists in
|
||||
Texinfo export' for how to enable this for individual lists."
|
||||
:package-version '(Org . "9.6")
|
||||
:group 'org-export-texinfo
|
||||
:type 'boolean
|
||||
:safe t)
|
||||
|
||||
;;;; Compilation
|
||||
|
||||
(defcustom org-texinfo-info-process '("makeinfo --no-split %f")
|
||||
@ -614,7 +628,7 @@ Return new tree."
|
||||
(org-texinfo--split-definition plain-list item cmd args))
|
||||
(t
|
||||
(when args
|
||||
(org-texinfo--massage-key-item plain-list item args))
|
||||
(org-texinfo--massage-key-item plain-list item args info))
|
||||
(push item items)))))
|
||||
(unless (org-element-contents plain-list)
|
||||
(org-element-extract-element plain-list)))))
|
||||
@ -663,7 +677,7 @@ new plain list."
|
||||
(mapc #'org-element-extract-element items))
|
||||
plain-list))
|
||||
|
||||
(defun org-texinfo--massage-key-item (plain-list item args)
|
||||
(defun org-texinfo--massage-key-item (plain-list item args info)
|
||||
"In PLAIN-LIST modify ITEM based on ARGS.
|
||||
|
||||
Reformat ITEM's tag property and determine the arguments for the
|
||||
@ -674,7 +688,9 @@ If PLAIN-LIST is a description list whose `:compact' attribute is
|
||||
non-nil and ITEM has no content but is followed by another item,
|
||||
then store the `@findex' and `@kindex' values in the next item.
|
||||
If the previous item stored its respecive values in this item,
|
||||
then move them to the next item."
|
||||
then move them to the next item.
|
||||
|
||||
INFO is a plist used as a communication channel."
|
||||
(let ((key nil)
|
||||
(cmd nil))
|
||||
(if (string-match (rx (+ " ")
|
||||
@ -701,8 +717,9 @@ then move them to the next item."
|
||||
(setq kindex (nconc kindex (list key))))
|
||||
(cond
|
||||
((and next-item
|
||||
(org-not-nil
|
||||
(org-export-read-attribute :attr_texinfo plain-list :compact))
|
||||
(or (plist-get info :texinfo-compact-itemx)
|
||||
(org-not-nil
|
||||
(org-export-read-attribute :attr_texinfo plain-list :compact)))
|
||||
(not (org-element-contents item))
|
||||
(eq 1 (org-element-property :post-blank item)))
|
||||
(org-element-put-property next-item :findex findex)
|
||||
@ -1138,8 +1155,9 @@ contextual information."
|
||||
(let* ((tag (org-element-property :tag item))
|
||||
(plain-list (org-element-property :parent item))
|
||||
(compact (and (eq (org-element-property :type plain-list) 'descriptive)
|
||||
(org-not-nil (org-export-read-attribute
|
||||
:attr_texinfo plain-list :compact))))
|
||||
(or (plist-get info :texinfo-compact-itemx)
|
||||
(org-not-nil (org-export-read-attribute
|
||||
:attr_texinfo plain-list :compact)))))
|
||||
(previous-item nil))
|
||||
(when (and compact
|
||||
(org-export-get-next-element item info)
|
||||
|
Loading…
Reference in New Issue
Block a user