diff --git a/modules/lang/org/contrib/jupyter.el b/modules/lang/org/contrib/jupyter.el index f382060b7..c47494be2 100644 --- a/modules/lang/org/contrib/jupyter.el +++ b/modules/lang/org/contrib/jupyter.el @@ -7,13 +7,21 @@ (after! ob-async (pushnew! ob-async-no-async-languages-alist "jupyter-python" "jupyter-julia")) + (after! org-src + (dolist (lang '(python julia R)) + (cl-pushnew (cons (format "jupyter-%s" lang) lang) + org-src-lang-modes :key #'car))) + (add-hook! '+org-babel-load-functions (defun +org-babel-load-jupyter-h (lang) (when (string-prefix-p "jupyter-" (symbol-name lang)) - (let ((lang (string-remove-prefix "jupyter-" (symbol-name lang)))) - (unless (assoc lang org-src-lang-modes) - (require (intern (format "ob-%s" lang)) - nil t))) + (require 'jupyter) + (let* ((lang-name (symbol-name lang)) + (lang-tail (string-remove-prefix "jupyter-" lang-name))) + (and (not (assoc lang-tail org-src-lang-modes)) + (require (intern (format "ob-%s" lang-tail)) + nil t) + (add-to-list 'org-src-lang-modes (cons lang-name (intern lang-tail))))) (with-demoted-errors "Jupyter: %s" (require lang nil t) (require 'ob-jupyter nil t))))))