Function: org-table--to-generic-row
org-table--to-generic-row is a byte-compiled function defined in
org-table.el.gz.
Signature
(org-table--to-generic-row PARAMS)
Documentation
Return custom table row transcoder according to PARAMS.
PARAMS is a plist. See orgtbl-to-generic for more
information.
Source Code
;; Defined in /usr/src/emacs/lisp/org/org-table.el.gz
(defun org-table--to-generic-row (params)
"Return custom table row transcoder according to PARAMS.
PARAMS is a plist. See `orgtbl-to-generic' for more
information."
(let* ((backend (plist-get params :backend))
(lstart (plist-get params :lstart))
(llstart (plist-get params :llstart))
(hlstart (plist-get params :hlstart))
(hllstart (plist-get params :hllstart))
(lend (plist-get params :lend))
(llend (plist-get params :llend))
(hlend (plist-get params :hlend))
(hllend (plist-get params :hllend))
(lfmt (plist-get params :lfmt))
(llfmt (plist-get params :llfmt))
(hlfmt (plist-get params :hlfmt))
(hllfmt (plist-get params :hllfmt)))
`(lambda (row contents info)
(if (eq (org-element-property :type row) 'rule)
,(cond
((plist-member params :hline)
(org-table--generic-apply (plist-get params :hline) ":hline"))
(backend `(org-export-with-backend ',backend row nil info)))
(let ((headerp ,(and (or hlfmt hlstart hlend)
'(org-export-table-row-in-header-p row info)))
(last-header-p
,(and (or hllfmt hllstart hllend)
'(org-export-table-row-ends-header-p row info)))
(lastp (not (org-export-get-next-element row info))))
(when contents
;; Check if we can apply `:lfmt', `:llfmt', `:hlfmt', or
;; `:hllfmt' to CONTENTS. Otherwise, fallback on
;; `:lstart', `:lend' and their relatives.
,(let ((cells
'(org-element-map row 'table-cell
(lambda (cell)
;; Export all cells, without separators.
;;
;; Use `org-export-data-with-backend'
;; instead of `org-export-data' to eschew
;; cached values, which
;; ignore :orgtbl-ignore-sep parameter.
(org-export-data-with-backend
cell
(plist-get info :back-end)
(org-combine-plists info '(:orgtbl-ignore-sep t))))
info)))
`(cond
,(and hllfmt
`(last-header-p ,(org-table--generic-apply
hllfmt ":hllfmt" nil cells)))
,(and hlfmt
`(headerp ,(org-table--generic-apply
hlfmt ":hlfmt" nil cells)))
,(and llfmt
`(lastp ,(org-table--generic-apply
llfmt ":llfmt" nil cells)))
(t
,(if lfmt (org-table--generic-apply lfmt ":lfmt" nil cells)
`(concat
(cond
,(and
(or hllstart hllend)
`(last-header-p
(concat
,(org-table--generic-apply hllstart ":hllstart")
contents
,(org-table--generic-apply hllend ":hllend"))))
,(and
(or hlstart hlend)
`(headerp
(concat
,(org-table--generic-apply hlstart ":hlstart")
contents
,(org-table--generic-apply hlend ":hlend"))))
,(and
(or llstart llend)
`(lastp
(concat
,(org-table--generic-apply llstart ":llstart")
contents
,(org-table--generic-apply llend ":llend"))))
(t
,(cond
((or lstart lend)
`(concat
,(org-table--generic-apply lstart ":lstart")
contents
,(org-table--generic-apply lend ":lend")))
(backend
`(org-export-with-backend
',backend row contents info))
(t 'contents)))))))))))))))