From: "Cook, Malcolm" <MEC@stowers.org>
To: "'Charles C. Berry'" <ccberry@ucsd.edu>
Cc: "'emacs-orgmode@gnu.org'" <emacs-orgmode@gnu.org>
Subject: Re: seeking good practices for writing about org using org
Date: Thu, 4 Aug 2016 20:56:18 +0000 [thread overview]
Message-ID: <a8c7d9d291ca44948c3280e9ecda8a00@exchsrv2.sgc.loc> (raw)
In-Reply-To: <alpine.OSX.2.20.1608040856300.2055@charles-berrys-macbook.local>
[-- Attachment #1.1: Type: text/plain, Size: 6126 bytes --]
Hi Charles,
> On Wed, 3 Aug 2016, Cook, Malcolm wrote:
>
> > Thanks. Much closer. Still some issues. Mind taking another
> > gander.... (hoping the attached jpeg of the webpage rendered comes
> > through as an attachment)....
> >
> > If my emacs buffer holds...
> > ----------------------------------------------
> > #+BEGIN_SRC org :exports both :results value ascii
>
> ...............................................^^^^^
>
> what is the `ascii' doing?
>
> Can you provide a link to documentation in the manual or a
> docstring describing its function?
I cannot! I learned this from reading the code. In ob-org.el we find provision for this as well as `html' and `latex'
(defun org-babel-execute:org (body params)
"Execute a block of Org code with.
This function is called by `org-babel-execute-src-block'."
(let ((result-params (split-string (or (cdr (assoc :results params)) "")))
(body (org-babel-expand-body:org
(replace-regexp-in-string "^," "" body) params)))
(cond
((member "latex" result-params)
(org-export-string-as (concat "#+Title: \n" body) 'latex t))
((member "html" result-params) (org-export-string-as body 'html t))
((member "ascii" result-params) (org-export-string-as body 'ascii t))
(t body)
)))
This is all undocumented. I think it is a 'nod in the direction' of what I am trying to accomplish, allowing to see as "results" the org markup transcoded into the markup of a backend. See below for my hack extension on this idea.
>
> Why don't you have 'replace' in the :results args?
Oops. Of course. While trying to understand all this, I had done this to similar effect instead:
(setq org-babel-default-header-args:org nil) ; fix bug? NOT silent
> >
> > ,* Acknowledgments
>
> This bit behaves as you might expect in plain text export, markdown, and
> latex export:
>
> > [[mailto:mywife@example.com][my wife]]
>
> but in html it does create `<a href="mailto:...'.
>
> That is because of what `org-babel-exp-code-template' leads
> `org-html-src-block' to do. You might try dropping `%lang' from the
> template, but a better solution is to rewrite `org-html-src-block' and
> create a derived exporter.
>
>
> >
> > ,* Chapter one
> >
> > Fa la la ls
> >
> > ,* Chapter two
> >
> > La di di
> >
> > ,* Finally, here is a table of contents!
> >
> > ,#+TOC:
>
> What does this idiom do?
>
> Precisely, where does the documentation say what
>
> #+TOC:
>
> read as "<hash> <plus> T O C <colon> <newline>"
>
> should create??
I though (apparently incorrectly) it was the same as `#+TOC: headlines 2' which does contrive to relocate a Table of Contents to that location.
> ---
>
> Re your next post, I suggest spending some time reading
>
> (info "(org) results")
>
> to grasp what the various options actually do. It is probably a good idea
> to execute src blocks to see the RESULTS before you try to export them.
>
> Reading
>
> (info "(org) wrap")
>
> might also help and certainly a quick breeze thru
>
> (info "(org) Specific header arguments")
>
> to remind yourself of what all the possibilities are is something I have
> to do from time to time.
Thanks for these suggestions. I have had better results after doing so.
I played with extending org-babel-execute:org to allow including MULTIPLE transcoded markdown results using screwy variant syntax of `:results +ascii +html +latex` with some success.
For example, `:results +ascii +latex' exported html which renders as:
[cid:image001.png@01D1EE68.BBAEA750]
I now think perhaps I want additional options on a source block allowing to be included in the exported RESULTS:
1) transcoded markdown, appropriately escaped for the current backend
1) the source block itself (including the #+BEGIN/END directives) (as distinct from :results code, which omits the directives)
Injecting this kind of logic into org-babel-execute:org as I did is mis-placing the logic and only muddles further my thinking about this.
FWIW - here is the re-definition, if you care to play with or critique it.
(defun org-babel-execute:org (body params)
"Execute a block of Org code with.
This function is called by `org-babel-execute-src-block'."
(let* ((result-params (split-string (or (cdr (assoc :results params)) "")))
(body (org-babel-expand-body:org
(replace-regexp-in-string "^," "" body) params))
(val (cond
((member "latex" result-params)
(org-export-string-as (concat "#+Title: \n" body) 'latex t))
((member "html" result-params) (org-export-string-as body 'html t))
((member "ascii" result-params) (org-export-string-as body 'ascii t))
(t body)
)))
;; HACK: output protected versions of each of latex,html,ascii,md transcoded markup as requested with +{latex,html,ascii,md} in header-args
(when (member "+latex" result-params)
(setq val (format "#+BEGIN_EXAMPLE\n%s\n#+END_EXAMPLE\n%s" (org-export-string-as body 'latex t) val)))
(when (member "+html" result-params)
(setq val (format "#+BEGIN_EXAMPLE\n%s\n#+END_EXAMPLE\n%s" (org-export-string-as body 'html t) val)))
(when (member "+ascii" result-params)
(setq val (format "#+BEGIN_EXAMPLE\n%s\n#+END_EXAMPLE\n%s" (org-export-string-as body 'ascii t) val)))
(when (member "+md" result-params)
(setq val (format "#+BEGIN_EXAMPLE\n%s\n#+END_EXAMPLE\n%s" (org-export-string-as body 'md t) val)))
val)
)
Cheers,
Malcolm
>
> HTH,
>
> Chuck
[-- Attachment #1.2: Type: text/html, Size: 18445 bytes --]
[-- Attachment #2: image001.png --]
[-- Type: image/png, Size: 57004 bytes --]
next prev parent reply other threads:[~2016-08-04 20:56 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-03 23:50 seeking good practices for writing about org using org Cook, Malcolm
2016-08-04 2:15 ` Charles C. Berry
2016-08-04 2:47 ` Cook, Malcolm
2016-08-04 16:24 ` Charles C. Berry
2016-08-04 20:56 ` Cook, Malcolm [this message]
2016-08-05 3:05 ` Charles C. Berry
2016-08-04 2:54 ` Cook, Malcolm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a8c7d9d291ca44948c3280e9ecda8a00@exchsrv2.sgc.loc \
--to=mec@stowers.org \
--cc=ccberry@ucsd.edu \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).