* getting directory of org installation in elisp @ 2014-05-23 8:15 Rainer M Krug 2014-05-23 13:28 ` Bastien 0 siblings, 1 reply; 6+ messages in thread From: Rainer M Krug @ 2014-05-23 8:15 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 838 bytes --] Hi I want to load some R code into org when using R with org (i.e. in ob-R.el) which would be part of org mode. Therefore I have two questions: 1) Where can I put the R code? My idea would be to put it in ORGDIR/etc/R/ - would this be OK with the general philosophy of directory structures? 2) How can I get the ORGDIR under elisp, so that I can use it to load From ORGDIR/R/*.R ? Thanks, Rainer -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Stellenbosch University South Africa Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 59 98 Fax : +33 - (0)9 58 10 27 44 Fax (D): +49 - (0)3 21 21 25 22 44 email: Rainer@krugs.de Skype: RMkrug PGP: 0x0F52F982 [-- Attachment #2: Type: application/pgp-signature, Size: 494 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: getting directory of org installation in elisp 2014-05-23 8:15 getting directory of org installation in elisp Rainer M Krug @ 2014-05-23 13:28 ` Bastien 2014-05-23 14:01 ` Rainer M Krug 0 siblings, 1 reply; 6+ messages in thread From: Bastien @ 2014-05-23 13:28 UTC (permalink / raw) To: Rainer M Krug; +Cc: emacs-orgmode Hi Rainer, Rainer M Krug <Rainer@krugs.de> writes: > I want to load some R code into org when using R with org (i.e. in > ob-R.el) which would be part of org mode. Therefore I have two > questions: I'm not sure I understand: why do you need to put R code in an external file? For testing purpose? > 1) Where can I put the R code? My idea would be to put it in > ORGDIR/etc/R/ - would this be OK with the general philosophy of directory > structures? > > 2) How can I get the ORGDIR under elisp, so that I can use it to load > From ORGDIR/R/*.R ? I can't parse this too :) If that helps, please send a patch with what you would do, and we'll discuss from the patch. Thanks, -- Bastien ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: getting directory of org installation in elisp 2014-05-23 13:28 ` Bastien @ 2014-05-23 14:01 ` Rainer M Krug 2014-05-23 20:11 ` Aaron Ecay 2014-05-30 12:17 ` Bastien 0 siblings, 2 replies; 6+ messages in thread From: Rainer M Krug @ 2014-05-23 14:01 UTC (permalink / raw) To: Bastien; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 3277 bytes --] Bastien <bzg@gnu.org> writes: > Hi Rainer, > > Rainer M Krug <Rainer@krugs.de> writes: > >> I want to load some R code into org when using R with org (i.e. in >> ob-R.el) which would be part of org mode. Therefore I have two >> questions: > > I'm not sure I understand: why do you need to put R code in an > external file? For testing purpose? No - there is quite a bit of R code in ob-R.el which gives quite abit of options for customization. As R users are usually more comfortable with using R then elisp, I am moving the R code into external .R files which are loaded and the code in these is used for variable transfer and (planned) the wrapping when creating graphs. Fallbacks, i.e. default code stored in ob-R.el when the file can not be loaded, id=s in the process of being implemented. You can see how it looks in [1] where my changes are sitting. And I want to load this R code into R, controlled from org. Here is the relevant code: ,---- | (defun org-babel-expand-body:R (body params &optional graphics-file) | "Expand BODY according to PARAMS, return the expanded body." | (mapconcat 'identity | (append | (when (cdr (assoc :prologue params)) | (list (cdr (assoc :prologue params)))) | (list | " while ('org:functions' %in% search()) { detach(pos=grep('org:functions', search())) } | attach( what = NULL, name = 'org:functions' ) ") | (list | (format " userdir <- '%s' | for( f in dir(userdir, pattern='.R', full.names=TRUE) ){ try(source(f, keep.source = FALSE)) } " org-babel-R-directory-in-org)) | (list (format " .org.createEnvironment('%s')" org-babel-R-variable-environment-name )) | (org-babel-variable-assignments:R params) | (list body) | (when (cdr (assoc :epilogue params)) | (list (cdr (assoc :epilogue params))))) | "\n")) `---- > >> 1) Where can I put the R code? My idea would be to put it in >> ORGDIR/etc/R/ - would this be OK with the general philosophy of directory >> structures? >> >> 2) How can I get the ORGDIR under elisp, so that I can use it to load >> From ORGDIR/R/*.R ? > > I can't parse this too :) If that helps, please send a patch with > what you would do, and we'll discuss from the patch. I am using at the moment the following construct to get the directory I want: ,---- | (defvar org-babel-R-directory-in-org | (mapconcat 'identity | (append (butlast (split-string (locate-library "org") "/") 2) | '("etc" "R" "")) | "/") | "Original org directory from which the *.R files will be loaded. | This value should *not* be changed and is determined by the | installation location of org.") `---- > > Thanks, Thanks, Rainer Footnotes: [1] https://github.com/rkrug/orgmode-dev -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Stellenbosch University South Africa Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 59 98 Fax : +33 - (0)9 58 10 27 44 Fax (D): +49 - (0)3 21 21 25 22 44 email: Rainer@krugs.de Skype: RMkrug PGP: 0x0F52F982 [-- Attachment #2: Type: application/pgp-signature, Size: 494 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: getting directory of org installation in elisp 2014-05-23 14:01 ` Rainer M Krug @ 2014-05-23 20:11 ` Aaron Ecay 2014-05-30 12:17 ` Bastien 1 sibling, 0 replies; 6+ messages in thread From: Aaron Ecay @ 2014-05-23 20:11 UTC (permalink / raw) To: Rainer M Krug, Bastien; +Cc: emacs-orgmode Hi Rainer, You might want to look at how ESS handles a similar situation, via the variables ess-etc-directory and ess-lisp-directory in the ess-site.el file. -- Aaron Ecay ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: getting directory of org installation in elisp 2014-05-23 14:01 ` Rainer M Krug 2014-05-23 20:11 ` Aaron Ecay @ 2014-05-30 12:17 ` Bastien 2014-05-30 15:47 ` Rainer M Krug 1 sibling, 1 reply; 6+ messages in thread From: Bastien @ 2014-05-30 12:17 UTC (permalink / raw) To: Rainer M Krug; +Cc: emacs-orgmode Hi Rainer, Rainer M Krug <Rainer@krugs.de> writes: > And I want to load this R code into R, controlled from org. Ok, I understand now -- then yes, you can use the etc/ directory for R code that will be loaded. But please anticipate that this new etc/ content needs to be added to Emacs when people install Org -- see how ox-odt.el is dealing with the issue of adding the data in etc/schemas and etc/styles. HTH, -- Bastien ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: getting directory of org installation in elisp 2014-05-30 12:17 ` Bastien @ 2014-05-30 15:47 ` Rainer M Krug 0 siblings, 0 replies; 6+ messages in thread From: Rainer M Krug @ 2014-05-30 15:47 UTC (permalink / raw) To: Bastien; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1101 bytes --] Bastien <bzg@gnu.org> writes: > Hi Rainer, Hi Bastien, > > Rainer M Krug <Rainer@krugs.de> writes: > >> And I want to load this R code into R, controlled from org. > > Ok, I understand now -- then yes, you can use the etc/ directory > for R code that will be loaded. But please anticipate that this > new etc/ content needs to be added to Emacs when people install > Org -- see how ox-odt.el is dealing with the issue of adding > the data in etc/schemas and etc/styles. Thanks for the hint to look at ox-odt.el ant their file in etc/ - I was thinking about the installation issue but didn't look at it in detail yet. > > HTH, Definitely, Rainer -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Stellenbosch University South Africa Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 59 98 Fax : +33 - (0)9 58 10 27 44 Fax (D): +49 - (0)3 21 21 25 22 44 email: Rainer@krugs.de Skype: RMkrug PGP: 0x0F52F982 [-- Attachment #2: Type: application/pgp-signature, Size: 494 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-05-30 15:48 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-05-23 8:15 getting directory of org installation in elisp Rainer M Krug 2014-05-23 13:28 ` Bastien 2014-05-23 14:01 ` Rainer M Krug 2014-05-23 20:11 ` Aaron Ecay 2014-05-30 12:17 ` Bastien 2014-05-30 15:47 ` Rainer M Krug
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).