123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- (require 'org-babel)
- (org-babel-add-interpreter "asymptote")
- (add-to-list 'org-babel-tangle-langs '("asymptote" "asymptote"))
- (defvar org-babel-default-header-args:asymptote '((:results . "file") (:exports . "results"))
- "Default arguments to use when evaluating a asymptote source block.")
- (defun org-babel-execute:asymptote (body params)
- "Execute a block of Asymptote code with org-babel. This function is
- called by `org-babel-execute-src-block'."
- (message "executing Asymptote source code block")
- (let* ((result-params (split-string (or (cdr (assoc :results params)) "")))
- (out-file (cdr (assoc :file params)))
- (format (or (and out-file
- (string-match ".+\\.\\(.+\\)" out-file)
- (match-string 1 out-file))
- "pdf"))
- (cmdline (cdr (assoc :cmdline params)))
- (in-file (make-temp-file "org-babel-asymptote"))
- (cmd (concat "asy "
- (if out-file
- (concat "-globalwrite -f " format " -o " out-file)
- "-V")
- " " cmdline " " in-file)))
- (with-temp-file in-file (insert body))
- (message cmd) (shell-command cmd)
- out-file))
- (defun org-babel-prep-session:asymptote (session params)
- (error "Asymptote does not support sessions"))
- (provide 'org-babel-asymptote)
|