I’m trying to use emacs-jupyter’s built-in src-block override feature in my
config.el. The instructions in the README say I should first call
org-babel-do-load-languages, then call e.g.
(org-babel-jupyter-override-src-block "python"). However, this doesn’t work, since Doom uses a custom lazy loading mechanism for Babel.
Is there any other way I can get this override feature to work with Doom? Trying to hook into the lazy loading mechanism is a chicken and egg problem: I want to avoid having to use
#+begin_src jupyter-python, but doing so is the only way to trigger the lazy loading, IIUIC.
Loading data dump...
Turns out it’s pretty simple :) There’s an
+org-babel-load-functions variable, which in my case contains
+org-babel-load-jupyter-h, so that prompted me to try whether I can just run that eagerly, instead of
org-babel-do-load-languages. It works, so it’s just a matter of:
EDIT: I ended up also figuring out a way to keep the lazy loading:
(defadvice! override-src-block-when-loading-jupyter (oldfun lang)
"If lang is in langs-to-override, map it to jupyter-lang instead."
(let* ((langs-to-override '(python))
(jupyter-lang (if (member lang langs-to-override)
(intern (concat "jupyter-" (symbol-name lang)))
(ans (funcall oldfun jupyter-lang)))
(when (member lang langs-to-override)
(org-babel-jupyter-override-src-block (symbol-name lang)))