On Wed, 20 Jul 2016, Xebar Saram wrote:
Hi again
Chuck:
is there a way to modify you nice code regex code snippet to simultaneously
change all example blocks to R blocks in a converted rmd>org file?
so when executing the block all example blocks:
#+BEGIN_EXAMPLE
help.search("rnorm")
#+END_EXAMPLE
will turn into R blocks
#+BEGIN_SRC R :session Rorg :results none
help.search("rnorm")
#+END_SRC
The obvious thing is to do this with two additional `replace' operations.
Interactively, you can use `replace-string' to do this, since those are
fixed strings and there are no backreferences to worry about. I think
there is a dired-mode incantation that would allow you to do this on all
files in a directory if you wanted.
But see the docstring for 'replace-string' which shows a better
incantation for programmatically doing the changes.
IMO, you would be better served by doiing this in a scripting language
like bash or python, but even R could do it.
One reason for using a scripting language is that unless you are a wiz at
elisp, it is easier to report back the changes that are made in context;
if you convert something that truly *is* an example block, you want to
know about it so you can back out that change. Also, it is possible that
the R code in the file you are converting will contain characters that
will foil the regexp matching and you really need to catch those.
I'd be tempted to do it in R - at least in part - so I could parse() the
result to check that it is valid code. The ESS suite has some parsing
capabilities, but if you do not already know them using R will be a lot
easier. An example block that does not produce valid code might be
something you should leave as an example block.
Write a script that does all the conversion including the pandoc
bit. Then run that at the command line.
Chuck