nbconvert:根据元数据将代码单元转换为不同的脚本文件

时间:2018-06-27 18:31:19

标签: jupyter-notebook jinja2 jupyter org-mode nbconvert

我想实现将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笔记本电脑更适合“识字编程”。

0 个答案:

没有答案