用途:当任务需要搜索或修改 Jupyter Notebook,但直接操作 .ipynb 原始 JSON 不现实时使用。该技能是一个搜索与编辑的桥梁,不用于长期维护成对笔记本。
主要能力:一是通过 scripts/rg_ipynb_preprocessor.py 配合 rg 搜索笔记本内容,避免匹配到 base64 等序列化输出噪声;二是通过临时 Jupytext 文本表示编辑内容,再同步回 .ipynb。
使用方式:编辑前先运行 bash scripts/check_jupytext.sh 确认 jupytext 可用。导出文本:tmp_py="${TMPDIR:-/tmp}/notebook.edit.py",然后 bash scripts/export_text_notebook.sh notebook.ipynb "$tmp_py"。搜索用 rg --pre ./scripts/rg_ipynb_preprocessor.py --pre-glob '*.ipynb' 'pattern' .,也可通过临时 RIPGREP_CONFIG_PATH 配置让普通 rg 自动预处理。编辑文本后同步:bash scripts/update_ipynb_from_text.sh "$tmp_py" notebook.ipynb。
适用场景:定位笔记本中的单元格或文本、在编辑前搜索笔记本内容、以文本方式修改笔记本。默认文本格式为 py:percent。
限制:仅需 jupytext,不需要 jupyter;若缺少 jupytext 应告知用户并提供安装指引,不要猜测其他转换路径。更新已有笔记本时使用 jupytext --update --to notebook 以尽量保留输出和元数据;目标 .ipynb 不存在时会新建无输出笔记本。临时 .py 文件通常应放在 TMPDIR 并在用后删除。