1 ;;; ob-smiles.el --- Org-mode Babel support for SMILES.
2 ;;; -*- coding: utf-8 -*-
4 ;; Keywords: org babel SMILES
6 ;; Package-Requires: ((smiles-mode "0.0.1") (org "8"))
11 ;;; http://kitchingroup.cheme.cmu.edu/blog/2016/03/26/A-molecule-link-for-org-mode
13 ;; Author: John Kitchin [jkitchin@andrew.cmu.edu]
14 ;; Maintainer: stardiviner [numbchild@gmail.com]
19 (defun org-babel-execute:smiles
(body params
)
20 "Execute SMILES babel `BODY' with `PARAMS'."
21 (shell-command-to-string
22 (format "obabel -:\"%s\" -osvg 2> /dev/null" body
)))
25 (defun molecule-jump (name)
26 "Jump to molecule `NAME' definition."
28 (org-open-link-from-string (format "[[%s]]" path
)))
30 (defun molecule-export (path desc backend
)
31 "Export molecule to HTML format on `PATH' with `DESC' and `BACKEND'."
32 (let ((name (save-window-excursion
34 (org-element-property :name
(org-element-context)))))
37 (format "<a href=\"#%s\">%s</a>" name name
)))))
45 (org-element-map (org-element-parse-buffer)
48 (when (string= "smiles" (org-element-property :language src
))
49 (org-element-property :name src
))))
54 ;;; ob-smiles.el ends here