org-manual: Automatically generate export option list

* mk/org-fixup.el (org-make-manual):
(org-make-guide):
(org-make-manuals): Allow code evaluation when exporting manuals.
* doc/org-manual.org (Generic properties):
(ASCII specific properties):
(Beamer specific properties):
(HTML specific properties):
(LaTeX specific properties):
(Markdown specific properties):
(ODT specific properties):
(Texinfo specific properties): Build property tables programatically,
from a code block.
This commit is contained in:
Ihor Radchenko 2023-07-31 11:23:33 +03:00
parent 68ba286fee
commit 7151481313
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
2 changed files with 65 additions and 183 deletions

View File

@ -16649,228 +16649,107 @@ Settings]]), however, override everything.
:UNNUMBERED: notoc
:END:
| ~:archived-trees~ | ~org-export-with-archived-trees~ |
| ~:exclude-tags~ | ~org-export-exclude-tags~ |
| ~:headline-levels~ | ~org-export-headline-levels~ |
| ~:language~ | ~org-export-default-language~ |
| ~:preserve-breaks~ | ~org-export-preserve-breaks~ |
| ~:section-numbers~ | ~org-export-with-section-numbers~ |
| ~:select-tags~ | ~org-export-select-tags~ |
| ~:with-author~ | ~org-export-with-author~ |
| ~:with-broken-links~ | ~org-export-with-broken-links~ |
| ~:with-clocks~ | ~org-export-with-clocks~ |
| ~:with-creator~ | ~org-export-with-creator~ |
| ~:with-date~ | ~org-export-with-date~ |
| ~:with-drawers~ | ~org-export-with-drawers~ |
| ~:with-email~ | ~org-export-with-email~ |
| ~:with-emphasize~ | ~org-export-with-emphasize~ |
| ~:with-fixed-width~ | ~org-export-with-fixed-width~ |
| ~:with-footnotes~ | ~org-export-with-footnotes~ |
| ~:with-latex~ | ~org-export-with-latex~ |
| ~:with-planning~ | ~org-export-with-planning~ |
| ~:with-priority~ | ~org-export-with-priority~ |
| ~:with-properties~ | ~org-export-with-properties~ |
| ~:with-special-strings~ | ~org-export-with-special-strings~ |
| ~:with-sub-superscript~ | ~org-export-with-sub-superscripts~ |
| ~:with-tables~ | ~org-export-with-tables~ |
| ~:with-tags~ | ~org-export-with-tags~ |
| ~:with-tasks~ | ~org-export-with-tasks~ |
| ~:with-timestamps~ | ~org-export-with-timestamps~ |
| ~:with-title~ | ~org-export-with-title~ |
| ~:with-toc~ | ~org-export-with-toc~ |
| ~:with-todo-keywords~ | ~org-export-with-todo-keywords~ |
#+NAME: org-manual-get-export-props-customizations
#+begin_src emacs-lisp :exports none :results table
(require 'ox)
(let (result)
(dolist (spec alist)
(when (and (nth 3 spec) (symbolp (nth 3 spec))) ; has customization
(push (list (format "~%s~" (car spec)) (format "~%s~" (nth 3 spec))) result)))
(nreverse result))
#+end_src
#+begin_src emacs-lisp :exports results :results table :eval yes :noweb yes
(require 'ox)
(let ((alist org-export-options-alist))
<<org-manual-get-export-props-customizations>>
)
#+end_src
**** ASCII specific properties
:PROPERTIES:
:UNNUMBERED: notoc
:END:
| ~:ascii-bullets~ | ~org-ascii-bullets~ |
| ~:ascii-caption-above~ | ~org-ascii-caption-above~ |
| ~:ascii-charset~ | ~org-ascii-charset~ |
| ~:ascii-global-margin~ | ~org-ascii-global-margin~ |
| ~:ascii-format-drawer-function~ | ~org-ascii-format-drawer-function~ |
| ~:ascii-format-inlinetask-function~ | ~org-ascii-format-inlinetask-function~ |
| ~:ascii-headline-spacing~ | ~org-ascii-headline-spacing~ |
| ~:ascii-indented-line-width~ | ~org-ascii-indented-line-width~ |
| ~:ascii-inlinetask-width~ | ~org-ascii-inlinetask-width~ |
| ~:ascii-inner-margin~ | ~org-ascii-inner-margin~ |
| ~:ascii-links-to-notes~ | ~org-ascii-links-to-notes~ |
| ~:ascii-list-margin~ | ~org-ascii-list-margin~ |
| ~:ascii-paragraph-spacing~ | ~org-ascii-paragraph-spacing~ |
| ~:ascii-quote-margin~ | ~org-ascii-quote-margin~ |
| ~:ascii-table-keep-all-vertical-lines~ | ~org-ascii-table-keep-all-vertical-lines~ |
| ~:ascii-table-use-ascii-art~ | ~org-ascii-table-use-ascii-art~ |
| ~:ascii-table-widen-columns~ | ~org-ascii-table-widen-columns~ |
| ~:ascii-text-width~ | ~org-ascii-text-width~ |
| ~:ascii-underline~ | ~org-ascii-underline~ |
| ~:ascii-verbatim-format~ | ~org-ascii-verbatim-format~ |
#+begin_src emacs-lisp :exports results :results table :eval yes :noweb yes
(require 'ox-ascii)
(let ((alist (org-export-backend-options (org-export-get-backend 'ascii))))
<<org-manual-get-export-props-customizations>>
)
#+end_src
**** Beamer specific properties
:PROPERTIES:
:UNNUMBERED: notoc
:END:
| ~:beamer-theme~ | ~org-beamer-theme~ |
| ~:beamer-column-view-format~ | ~org-beamer-column-view-format~ |
| ~:beamer-environments-extra~ | ~org-beamer-environments-extra~ |
| ~:beamer-frame-default-options~ | ~org-beamer-frame-default-options~ |
| ~:beamer-outline-frame-options~ | ~org-beamer-outline-frame-options~ |
| ~:beamer-outline-frame-title~ | ~org-beamer-outline-frame-title~ |
| ~:beamer-subtitle-format~ | ~org-beamer-subtitle-format~ |
#+begin_src emacs-lisp :exports results :results table :eval yes :noweb yes
(require 'ox-beamer)
(let ((alist (org-export-backend-options (org-export-get-backend 'beamer))))
<<org-manual-get-export-props-customizations>>
)
#+end_src
**** HTML specific properties
:PROPERTIES:
:UNNUMBERED: notoc
:END:
| ~:html-allow-name-attribute-in-anchors~ | ~org-html-allow-name-attribute-in-anchors~ |
| ~:html-checkbox-type~ | ~org-html-checkbox-type~ |
| ~:html-container~ | ~org-html-container-element~ |
| ~:html-divs~ | ~org-html-divs~ |
| ~:html-doctype~ | ~org-html-doctype~ |
| ~:html-extension~ | ~org-html-extension~ |
| ~:html-footnote-format~ | ~org-html-footnote-format~ |
| ~:html-footnote-separator~ | ~org-html-footnote-separator~ |
| ~:html-footnotes-section~ | ~org-html-footnotes-section~ |
| ~:html-format-drawer-function~ | ~org-html-format-drawer-function~ |
| ~:html-format-headline-function~ | ~org-html-format-headline-function~ |
| ~:html-format-inlinetask-function~ | ~org-html-format-inlinetask-function~ |
| ~:html-head-extra~ | ~org-html-head-extra~ |
| ~:html-head-include-default-style~ | ~org-html-head-include-default-style~ |
| ~:html-head-include-scripts~ | ~org-html-head-include-scripts~ |
| ~:html-head~ | ~org-html-head~ |
| ~:html-home/up-format~ | ~org-html-home/up-format~ |
| ~:html-html5-fancy~ | ~org-html-html5-fancy~ |
| ~:html-indent~ | ~org-html-indent~ |
| ~:html-infojs-options~ | ~org-html-infojs-options~ |
| ~:html-infojs-template~ | ~org-html-infojs-template~ |
| ~:html-inline-image-rules~ | ~org-html-inline-image-rules~ |
| ~:html-inline-images~ | ~org-html-inline-images~ |
| ~:html-link-home~ | ~org-html-link-home~ |
| ~:html-link-org-files-as-html~ | ~org-html-link-org-files-as-html~ |
| ~:html-link-up~ | ~org-html-link-up~ |
| ~:html-link-use-abs-url~ | ~org-html-link-use-abs-url~ |
| ~:html-mathjax-options~ | ~org-html-mathjax-options~ |
| ~:html-mathjax-template~ | ~org-html-mathjax-template~ |
| ~:html-equation-reference-format~ | ~org-html-equation-reference-format~ |
| ~:html-metadata-timestamp-format~ | ~org-html-metadata-timestamp-format~ |
| ~:html-postamble-format~ | ~org-html-postamble-format~ |
| ~:html-postamble~ | ~org-html-postamble~ |
| ~:html-preamble-format~ | ~org-html-preamble-format~ |
| ~:html-preamble~ | ~org-html-preamble~ |
| ~:html-self-link-headlines~ | ~org-html-self-link-headlines~ |
| ~:html-table-align-individual-field~ | ~org-html-table-align-individual-fields~ |
| ~:html-table-attributes~ | ~org-html-table-default-attributes~ |
| ~:html-table-caption-above~ | ~org-html-table-caption-above~ |
| ~:html-table-data-tags~ | ~org-html-table-data-tags~ |
| ~:html-table-header-tags~ | ~org-html-table-header-tags~ |
| ~:html-table-row-tags~ | ~org-html-table-row-tags~ |
| ~:html-table-use-header-tags-for-first-column~ | ~org-html-table-use-header-tags-for-first-column~ |
| ~:html-tag-class-prefix~ | ~org-html-tag-class-prefix~ |
| ~:html-text-markup-alist~ | ~org-html-text-markup-alist~ |
| ~:html-todo-kwd-class-prefix~ | ~org-html-todo-kwd-class-prefix~ |
| ~:html-toplevel-hlevel~ | ~org-html-toplevel-hlevel~ |
| ~:html-use-infojs~ | ~org-html-use-infojs~ |
| ~:html-validation-link~ | ~org-html-validation-link~ |
| ~:html-viewport~ | ~org-html-viewport~ |
| ~:html-wrap-src-lines~ | ~org-html-wrap-src-lines~ |
| ~:html-xml-declaration~ | ~org-html-xml-declaration~ |
#+begin_src emacs-lisp :exports results :results table :eval yes :noweb yes
(require 'ox-html)
(let ((alist (org-export-backend-options (org-export-get-backend 'html))))
<<org-manual-get-export-props-customizations>>
)
#+end_src
**** LaTeX specific properties
:PROPERTIES:
:UNNUMBERED: notoc
:END:
| ~:latex-active-timestamp-format~ | ~org-latex-active-timestamp-format~ |
| ~:latex-caption-above~ | ~org-latex-caption-above~ |
| ~:latex-classes~ | ~org-latex-classes~ |
| ~:latex-class~ | ~org-latex-default-class~ |
| ~:latex-compiler~ | ~org-latex-compiler~ |
| ~:latex-default-figure-position~ | ~org-latex-default-figure-position~ |
| ~:latex-default-table-environment~ | ~org-latex-default-table-environment~ |
| ~:latex-default-table-mode~ | ~org-latex-default-table-mode~ |
| ~:latex-diary-timestamp-format~ | ~org-latex-diary-timestamp-format~ |
| ~:latex-engraved-options~ | ~org-latex-engraved-options~ |
| ~:latex-engraved-preamble~ | ~org-latex-engraved-preamble~ |
| ~:latex-engraved-theme~ | ~org-latex-engraved-theme~ |
| ~:latex-footnote-defined-format~ | ~org-latex-footnote-defined-format~ |
| ~:latex-footnote-separator~ | ~org-latex-footnote-separator~ |
| ~:latex-format-drawer-function~ | ~org-latex-format-drawer-function~ |
| ~:latex-format-headline-function~ | ~org-latex-format-headline-function~ |
| ~:latex-format-inlinetask-function~ | ~org-latex-format-inlinetask-function~ |
| ~:latex-hyperref-template~ | ~org-latex-hyperref-template~ |
| ~:latex-image-default-height~ | ~org-latex-image-default-height~ |
| ~:latex-image-default-option~ | ~org-latex-image-default-option~ |
| ~:latex-image-default-width~ | ~org-latex-image-default-width~ |
| ~:latex-images-centered~ | ~org-latex-images-centered~ |
| ~:latex-inactive-timestamp-format~ | ~org-latex-inactive-timestamp-format~ |
| ~:latex-inline-image-rules~ | ~org-latex-inline-image-rules~ |
| ~:latex-link-with-unknown-path-format~ | ~org-latex-link-with-unknown-path-format~ |
| ~:latex-listings-langs~ | ~org-latex-listings-langs~ |
| ~:latex-listings-options~ | ~org-latex-listings-options~ |
| ~:latex-minted-langs~ | ~org-latex-minted-langs~ |
| ~:latex-minted-options~ | ~org-latex-minted-options~ |
| ~:latex-prefer-user-labels~ | ~org-latex-prefer-user-labels~ |
| ~:latex-subtitle-format~ | ~org-latex-subtitle-format~ |
| ~:latex-subtitle-separate~ | ~org-latex-subtitle-separate~ |
| ~:latex-src-block-backend~ | ~org-latex-src-block-backend~ |
| ~:latex-table-scientific-notation~ | ~org-latex-table-scientific-notation~ |
| ~:latex-tables-booktabs~ | ~org-latex-tables-booktabs~ |
| ~:latex-tables-centered~ | ~org-latex-tables-centered~ |
| ~:latex-text-markup-alist~ | ~org-latex-text-markup-alist~ |
| ~:latex-title-command~ | ~org-latex-title-command~ |
| ~:latex-toc-command~ | ~org-latex-toc-command~ |
#+begin_src emacs-lisp :exports results :results table :eval yes :noweb yes
(require 'ox-latex)
(let ((alist (org-export-backend-options (org-export-get-backend 'latex))))
<<org-manual-get-export-props-customizations>>
)
#+end_src
**** Markdown specific properties
:PROPERTIES:
:UNNUMBERED: notoc
:END:
| ~:md-footnote-format~ | ~org-md-footnote-format~ |
| ~:md-footnotes-section~ | ~org-md-footnotes-section~ |
| ~:md-headline-style~ | ~org-md-headline-style~ |
| ~:md-toplevel-hlevel~ | ~org-md-toplevel-hlevel~ |
#+begin_src emacs-lisp :exports results :results table :eval yes :noweb yes
(require 'ox-md)
(let ((alist (org-export-backend-options (org-export-get-backend 'md))))
<<org-manual-get-export-props-customizations>>
)
#+end_src
**** ODT specific properties
:PROPERTIES:
:UNNUMBERED: notoc
:END:
| ~:odt-content-template-file~ | ~org-odt-content-template-file~ |
| ~:odt-display-outline-level~ | ~org-odt-display-outline-level~ |
| ~:odt-fontify-srcblocks~ | ~org-odt-fontify-srcblocks~ |
| ~:odt-format-drawer-function~ | ~org-odt-format-drawer-function~ |
| ~:odt-format-headline-function~ | ~org-odt-format-headline-function~ |
| ~:odt-format-inlinetask-function~ | ~org-odt-format-inlinetask-function~ |
| ~:odt-inline-formula-rules~ | ~org-odt-inline-formula-rules~ |
| ~:odt-inline-image-rules~ | ~org-odt-inline-image-rules~ |
| ~:odt-pixels-per-inch~ | ~org-odt-pixels-per-inch~ |
| ~:odt-styles-file~ | ~org-odt-styles-file~ |
| ~:odt-table-styles~ | ~org-odt-table-styles~ |
| ~:odt-use-date-fields~ | ~org-odt-use-date-fields~ |
#+begin_src emacs-lisp :exports results :results table :eval yes :noweb yes
(require 'ox-odt)
(let ((alist (org-export-backend-options (org-export-get-backend 'odt))))
<<org-manual-get-export-props-customizations>>
)
#+end_src
**** Texinfo specific properties
:PROPERTIES:
:UNNUMBERED: notoc
:END:
| ~: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~ |
| ~:texinfo-format-drawer-function~ | ~org-texinfo-format-drawer-function~ |
| ~:texinfo-format-headline-function~ | ~org-texinfo-format-headline-function~ |
| ~:texinfo-format-inlinetask-function~ | ~org-texinfo-format-inlinetask-function~ |
| ~:texinfo-inactive-timestamp-format~ | ~org-texinfo-inactive-timestamp-format~ |
| ~:texinfo-link-with-unknown-path-format~ | ~org-texinfo-link-with-unknown-path-format~ |
| ~:texinfo-node-description-column~ | ~org-texinfo-node-description-column~ |
| ~:texinfo-table-scientific-notation~ | ~org-texinfo-table-scientific-notation~ |
| ~:texinfo-tables-verbatim~ | ~org-texinfo-tables-verbatim~ |
| ~:texinfo-text-markup-alist~ | ~org-texinfo-text-markup-alist~ |
#+begin_src emacs-lisp :exports results :results table :eval yes :noweb yes
(require 'ox-texinfo)
(let ((alist (org-export-backend-options (org-export-get-backend 'texinfo))))
<<org-manual-get-export-props-customizations>>
)
#+end_src
*** Publishing links
:PROPERTIES:

View File

@ -30,13 +30,15 @@
"Generate the Texinfo file out of the Org manual."
(require 'ox-texinfo)
(find-file "../doc/org-manual.org")
(org-texinfo-export-to-texinfo))
(let ((org-confirm-babel-evaluate nil))
(org-texinfo-export-to-texinfo)))
(defun org-make-guide ()
"Generate the Texinfo file out of the Org guide."
(require 'ox-texinfo)
(find-file "../doc/org-guide.org")
(org-texinfo-export-to-texinfo))
(let ((org-confirm-babel-evaluate nil))
(org-texinfo-export-to-texinfo)))
(make-obsolete 'org-make-manuals
"use org-make-manual and org-make-guide."
@ -46,7 +48,8 @@
(require 'ox-texinfo)
(dolist (manual '("../doc/org-manual.org" "../doc/org-guide.org"))
(find-file manual)
(org-texinfo-export-to-texinfo)))
(let ((org-confirm-babel-evaluate nil))
(org-texinfo-export-to-texinfo))))
(defun org-make-org-version (org-release org-git-version)
"Make the file org-version.el in the current directory.