I think this is exactly what I want (with just a little moreprocessing). Thank you so much for the idea! I'm having a little bit of trouble getting the same output as you though, and I'm wondering if there might be a setting that I need to change. Here is what I tried, and the result. Do you have an idea of what is going wrong here? Thank you! ------------ #+NAME:essay-rubric - Category - A - B - C - D - F - Writing - great - good - ok - lousy - awful #+begin_src emacs-lisp :var contents=essay-rubric :results table contents #+end_src #+RESULTS: #+begin_src emacs-lisp | (("Category" | #+end_src ------------- On Wed, Jul 7, 2021 at 6:29 AM tbanelwebmin wrote: > Hi Matt > > Le 05/07/2021 à 21:44, Matt Price a écrit : > > I have to write a number of text-heavy documents which need to be > > delivered as tables with wrapped paragraphs in most cells. Working > > directly in table format is pretty arduous and uncomfortable. Has > > anyone ever written a function to accept a list or subtree as input > > and process it into a table? > > > > If anyone has done something similar, I'd love some tips! > > Maybe you could use builtin Babel > Hereafter you have a starting point > - Give a name to your input Org list > - Process it with Emacs-Lisp (or whatever language you are comfortable > with) to output it as a table > > > ____ self contained Org Mode example _____ > > Example of a named list > #+NAME: BBB > - abc > + 123 > + 456 > - def > + red > + blue > - ghi > + big > + small > > Example of converting the named list into a table with Emacs-Lisp > #+begin_src elisp :var bbb=BBB :results table > bbb > #+end_src > > #+RESULTS: > | abc | (unordered (123) (456)) | > | def | (unordered (red) (blue)) | > | ghi | (unordered (big) (small)) | > ___________________________________________ > > >