【问题标题】:Jupyterlab: Is it possible to change cell colors depending on a metadata tags?Jupyterlab:是否可以根据元数据标签更改单元格颜色?
【发布时间】:2020-06-08 15:30:50
【问题描述】:

我使用 Jupyter Lab (2.0.1) 笔记本来创建练习和考试。这些文件包含问题和解决方案。 我用“解决方案”标签标记了解决方案的单元格。使用 nbconvert 导出时,我现在可以选择有或没有解决方案的输出:

nbconvert  --to html --TagRemovePreprocessor.remove_cell_tags=['Solution']

我缺少什么:我会在 inside JupyterLab 中显示所有解决方案单元格,并标有彩色框架(或彩色背景)。 因此,您可以在编辑正常单元格和带有溶液的单元格时轻松区分。见图片。 有谁知道这样的事情是如何工作的?

【问题讨论】:

    标签: jupyter jupyter-lab


    【解决方案1】:

    我至少找到了导出 jupyter 文件的解决方案。 在 nbconvert 的文档中有描述:

    https://nbconvert.readthedocs.io/en/latest/customizing.html#Templates-using-cell-tags

    解决方案:创建一个具有以下结构的模板文件“solution.tpl”:

    %%writefile solution.tpl
    
    {% extends 'full.tpl'%}
    {% block any_cell %}
    {% if 'Internal' in cell['metadata'].get('tags', []) %}
        <div style="border:solid red 3px">
            {{ super() }}
        </div>
    {% elif 'Solution' in cell['metadata'].get('tags', []) %}
    <div style="border:solid green 3px">    
            {{ super() }}
        </div>
    {% else %}
        {{ super() }}
    {% endif %}
    {% endblock any_cell %}
    

    通过调用

    nbconvert --to html Exercises.ipynb --template=solution.tpl
    

    所有带有“解决方案”标签的单元格都用绿框绘制。 (带有“内部”标签的单元格,带有红框)。

    你也可以使用而不是几个完整的帧

    <div style="border-left:solid green 4px">
    

    为一个绿色的左栏。使用多个连续的“解决方案”单元格时,这看起来更整洁。

    【讨论】:

      猜你喜欢
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 2011-07-29
      • 1970-01-01
      相关资源
      最近更新 更多