1
0
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-11-29 07:58:21 +00:00

Add orgtbl-to-table.el' and orgtbl-to-unicode'.

* org-table.el (orgtbl-radio-table-templates): Add a template
for org-mode.
(orgtbl-to-orgtbl): Complete and align the table created with
orgtbl-to-orgtbl, in case the user use the function for radio
tables.
(orgtbl-to-table.el): New function to export a table to
another one using the table.el format.
(orgtbl-to-unicode): New function to export a table using
unicode characters.
This commit is contained in:
Bastien Guerry 2012-07-31 15:40:05 +02:00
parent 64de70e1be
commit e3f30e12d2

View File

@ -85,7 +85,13 @@ this variable requires a restart of Emacs to become effective."
<!--
#+ORGTBL: SEND %n orgtbl-to-html :splice nil :skip 0
| | |
-->\n"))
-->\n")
(org-mode "#+ BEGIN RECEIVE ORGTBL %n
#+ END RECEIVE ORGTBL %n
#+ORGTBL: SEND %n orgtbl-to-orgtbl :splice nil :skip 0
| | |
"))
"Templates for radio tables in different major modes.
All occurrences of %n in a template will be replaced with the name of the
table, obtained by prompting the user."
@ -4526,8 +4532,6 @@ This may be either a string or a function of two arguments:
In addition to this, the parameters :skip and :skipcols are always handled
directly by `orgtbl-send-table'. See manual."
(interactive)
(let* ((splicep (plist-get params :splice))
(hline (plist-get params :hline))
(skipheadrule (plist-get params :skipheadrule))
@ -4726,7 +4730,37 @@ provide ORGTBL directives for the generated table."
:lstart "| "
:lend " |"))
(params (org-combine-plists params2 params)))
(orgtbl-to-generic table params)))
(with-temp-buffer
(insert (orgtbl-to-generic table params))
(goto-char (point-min))
(while (re-search-forward org-table-hline-regexp nil t)
(org-table-align))
(buffer-substring 1 (buffer-size)))))
(defun orgtbl-to-table.el (table params)
"Convert the orgtbl-mode TABLE into a table.el table."
(with-temp-buffer
(insert (orgtbl-to-orgtbl table params))
(org-table-align)
(replace-regexp-in-string
"-|" "-+"
(replace-regexp-in-string "|-" "+-" (buffer-substring 1 (buffer-size))))))
(defun orgtbl-to-unicode (table params)
"Convert the orgtbl-mode TABLE into a table with unicode characters.
You need the ascii-art-to-unicode.el package for this. You can download
it here: http://gnuvola.org/software/j/aa2u/ascii-art-to-unicode.el."
(with-temp-buffer
(insert (orgtbl-to-table.el table params))
(goto-char (point-min))
(if (or (featurep 'ascii-art-to-unicode)
(require 'ascii-art-to-unicode nil t))
(aa2u)
(unless (delq nil (mapcar (lambda (l) (string-match "aa2u" (car l))) org-stored-links))
(push '("http://gnuvola.org/software/j/aa2u/ascii-art-to-unicode.el"
"Link to ascii-art-to-unicode.el") org-stored-links))
(error "Please download ascii-art-to-unicode.el (use C-c C-l to insert the link to it)"))
(buffer-string)))
(defun org-table-get-remote-range (name-or-id form)
"Get a field value or a list of values in a range from table at ID.