我想实现将Jupyter笔记本中的代码单元纠结(导出)为不同的脚本文件(如org-mode / babel中支持的脚本文件)的功能。这是笔记本的一个例子
to_different_scripts.ipynb。
在笔记本中,我为每个单元格"tangle"
定义了元数据,其中包含了将单元格中的代码纠缠(导出)到的路径值。
现在,我需要具有根据元数据"tangle"
这是用于将代码单元导出到单个目标的jinia模板:
{%- extends 'null.tpl' -%}
{% block input %}
{{ cell.source }}
{% endblock input %}
与此类似,这是伪代码中所需的逻辑:
{%- extends 'null.tpl' -%}
{% block input %}
{% let file_name = cell['metadata'].get('tangle', '') %}
{% if file_name != '' %}
{% append_to_file(file_name, cell.source %}
{% endif %}
{% endblock input %}
这将需要Jinja模板具有在模板化生产中产生副作用的机制(append_to_file
)。我不确定它是否设计得如此。
您能否给我一些有关如何实现所需功能的指示?我确实尝试通过Google搜索,但尚未找到任何线索。
我的目的是使Jupyter笔记本电脑更适合“识字编程”。