我正在尝试搞清楚如何在自定义Jupyter单元格魔术(%%mymagic
)的单元格中激活CodeMirror语法高亮显示,针对CodeMirror支持的语言(cypher)。该魔术不与特殊内核相关 - 它只运行处理要突出显示的单元格中输入的字符串的Python命令。据我所知,这可以使用类似以下内容的东西来完成:
IPython.CodeCell.options_default.cm_config.lineNumbers = true;
from notebook.services.config.manager import ConfigManager
cm = ConfigManager()
cm.update('notebook', {'CodeCell': {'highlight_modes': {'magic_cypher': {'reg': '^%%mymagic'}}}})
在实现魔法的类中,我似乎无法让它起作用;当我输入以%%mymagic
开头的单元格时,高亮没有任何变化。上述方法准确吗?'magic_cypher'需要特定的格式吗?魔术需要以某种方式指定CodeMirror所关联的期望高亮语言的MIME类型吗?我正在使用notebook 5.0.0,jupyter_core 4.3.0和python 2.7.13。
codecell.CodeCell.options_default.highlight_modes["application/x-cypher-query"] = {'reg':[/^%%cypher/]} ;
添加到 custom.js 中(在 SQL 的类似行之后),似乎可以正常工作。highlight_modes
中的键必须与 Codemirror 模式文件中的defineMIME
行中的 MIME 类型匹配。 - cco~/.jupyter/nbconfig/notebook.json
,它在不考虑~/.jupyter/custom/custom.js
的情况下静默激活了Cypher模式的%%cells。 - lebedov