删除nbconvert - 到' in'和' out'根据单元格元数据提示

时间:2014-11-12 22:21:48

标签: ipython ipython-notebook

我想删除红色和蓝色的' In'和' Out'根据单元格元数据运行nbconvert --to html时提示。使用单元格元数据,例如:

{'cell_tags': {'cutcode_html': true}}

以下成功删除'In'提示:

{% block input_group %}
 {% if cell['metadata'].get('cell_tags',{}).get('cutcode_html','') == True -%}
  <div></div>
 {% else %}
  {{ super() }}
 {% endif %}
{% endblock input_group %}

我想为输出提示做同样的事情。

已经讨论了如何为latex执行此操作,但我无法弄清楚如何为HTML执行此操作。

HTML的output_prompt块似乎无法执行任何操作,每当我尝试对主要模板进行略微修改的版本时,它们都无法正常加载。

1 个答案:

答案 0 :(得分:2)

目前,更改输出提示要求更高一些,因为如果您只是通过扩展 full.tpl 来覆盖block output,则必须包含super()调用包括输出。不幸的是,父块(超级调用包含)将再次添加 Out 提示符并将搞乱html。

为了获得类似于你想要的东西,我做了以下工作。 (注意,我这里没有包含完整的模板,因为由于v4笔记本格式的实现,模板当前正在改变。这里,我使用的是IPython 2.3)

  1. 复制 base.tpl ,例如 noprompt.tpl
  2. 由于无法直接使用此模板,请将 full.tpl 中的代码添加到 noprompt.tpl
  3. 更改显示的block input_group
  4. block output更改为

    {% block output %}
    <div class="output_area">
    {%- if cell['metadata'].get('cell_tags',{}).get('cutcode_html','') != True and output.output_type == 'pyout' -%}
    <div class="prompt output_prompt">
    Out[{{ cell.prompt_number }}]:
    {%- else -%}
    <div class="prompt">
    {%- endif -%}
    </div>
    {{ super() }}
    </div>
    {% endblock output %}
    
  5. 有了这个,我可以转换笔记本,并有条件地删除提示。