0
我尝试创建一个自定义乳胶模板来从jupyter笔记本创建PDF输出。我想以特殊方式标记单元格时取消单元格输出。例如,让说我编辑给定单元元数据(从笔记本/“编辑元数据”),并添加该子JSON:从jinja2模板访问单元格元数据
[...]
"tpl": {
"view_in": true,
"view_out": false
},
[...]
于是,我试图通过使用cell
变量导出模板,如http://nbconvert.readthedocs.org/en/latest/customizing.html#Templates-that-use-cell-metadata所示简单:
% ((*- extends 'report.tplx' -*))
% Disable input cells
((* block input_group *))
((* endblock input_group *))
% disable output if required from metadata
((* if cell['metadata'].get('tpl', {}).get('view_out', True) == true *))
((* block output_group *))
((* endblock output_group *))
((* endif *))
但Jinja2的抱怨,当我试图生成我的PDF:
$ jupyter nbconvert --to pdf C4_RevD.ipynb --template=tpl.tpl
[...]
jinja2.exceptions.UndefinedError: 'cell' is undefine
如何从一个Jinja2的细胞metdata一个访问模板?
[编辑]使用版本:
Python: 2.7.6
jupyter: 4.0.6
jupyter notebook: 4.1.0
jinja2: 2.8
'cell'变量只能在'any_cell'块和块内部的块中使用。因此,他们添加的代码已经在里面了 - 您需要检查'output_group'块中的元数据,并决定是否给它内容。 –
@ThomasK:感谢您的提示,它的工作原理。如果你会写出正确的答案,我会将其标记为解决方案。 – Nic