ob-clojure.el should use separate cider functions for value and output
results, in order to avoid expressing standard output as some kind of
programming-language string with embedded \n notation. I experimentally
adjusted my copy of ob-clojure (obtained from git clone -b master today)
like this:
(1) In the cider block, access the result-params.
(2) Put either 'cider-get-value or 'cider-get-raw-value into a variable,
depending on the result-params.
(3) funcall the variable instead of using cider-get-raw-value directly.
(0) Up at the top, add a declare-function for cider-get-value, next to the
declare-function for cider-get-raw-value.
(defun org-babel-execute:clojure (body params)
"Execute a block of Clojure code with Babel."
(let ((expanded (org-babel-expand-body:clojure body params))
result)
(case org-babel-clojure-backend
(cider
(require 'cider)
(let* ((result-params (cdr (assoc :result-params params)))
(cider-call-fn (cond ((member "output" result-params)
'cider-get-value)
((member "value" result-params)
'cider-get-raw-value)
(t 'cider-get-raw-value))))
(setq result
(or (funcall cider-call-fn [...]
Together with :wrap example as suggested by Thomas S. Dye, the results are
exemplary.