【发布时间】:2025-11-25 09:25:02
【问题描述】:
(有一个类似的问题here,但它是关于使用python代码读取markdown单元格的。我想使用JavaScript(例如在Jupyter Notebook前端扩展中)读取代码单元格中的源代码。 )
我想对代码进行分析。但是,如果我只是简单地检查 Jupyter Notebook 的 DOM,就会发现这是嵌套 divs 的真正 DOM 噩梦(可能有一半是多余的):
正如我们在这里看到的,源代码的每个字符都在它自己的元素中。自然地,我不太热衷于将所有这些东西从其标签中提取出来并再次连接它以获取代码单元的代码。有没有一些简单的方法可以获取单元格的源代码?
也许是一些 Jupyter JS API 函数? (notebook 本身实际上是如何获取它发送给内核的代码的?应该已经有一些东西在做这项工作。)或者一些小 jQuery 代码,它非常聪明地获取所有内容?
我能想到的另一种选择是在内核在后端对其进行评估之前以某种方式拦截代码单元内容,但我也不知道如何做到这一点,它需要输出 HTML,其中包含带有 JS 的运行时在代码单元的输出中立即执行的函数。如果我想要实际代码的输出和代码单元输出中的代码分析输出,这也可能会变得复杂。也许它没有我想象的那么复杂,但到目前为止,如果有一些简单的方法可以获取它,那么在 JS 端获取代码似乎更好......
【问题讨论】:
标签: javascript jquery dom jupyter-notebook jupyter