VS Code导出.NET Interactive Notebooks为HTML时如何隐藏代码单元格
VS Code导出.NET Interactive Notebooks为HTML时隐藏代码单元格的实现方法
Jupyter生态下隐藏代码导出的方案无法在VS Code .NET Interactive环境生效,核心原因是两者导出的HTML DOM结构、依赖的前端脚本完全不同,直接套用会完全失效,以下是两个可直接落地的方案,不需要手动逐个删除代码元素:
方案一:导出前注入样式(最推荐,零后续修改)
这个方案利用.NET Interactive导出HTML时会完整保留单元格输出静态资源的特性,一次配置导出的文件直接符合要求:
- 打开目标Notebook,在最顶部新建一个C#代码单元格
- 粘贴以下代码并运行:
#!html <style> /* 隐藏所有代码单元格输入区域 */ div.cell.code_cell div.input { display: none !important; } /* 移除代码隐藏后输出区域的左侧留白 */ div.cell.code_cell div.output { margin-left: 0 !important; padding-left: 0 !important; } /* 可选:隐藏单元格左侧的运行序号标记,不需要可以删除这段 */ div.cell.code_cell .prompt { display: none !important; } </style>
- 运行后当前编辑区的所有代码单元格会立刻隐藏,仅保留LaTeX、图表、文本等所有输出内容
- 直接走官方导出流程:点击Notebook右上角导出按钮,选择HTML格式即可,导出的文件默认就不包含任何代码单元格内容。
如果后续需要恢复代码编辑,只需要删除顶部注入样式的单元格,重新加载Notebook即可恢复正常显示。
方案二:导出后批量修改(不需要改动原Notebook文件)
如果不想在原Notebook里加额外单元格,可以导出后一次性修改,效率远高于手动删除DOM元素:
- 正常将完整Notebook导出为HTML文件
- 用VS Code或任意文本编辑器打开导出的HTML文件,找到
<head>标签的闭合位置,在</head>前粘贴方案一中的完整<style>代码块 - 保存文件后打开,所有代码单元格就会被自动隐藏,输出内容完整保留。
注意:不要尝试套用Jupyter的JS控制隐藏代码的方案,.NET Interactive导出的HTML没有内置Jupyter的前端交互依赖,这类JS脚本不会执行,完全无法生效。
内容的提问来源于stack exchange,提问作者Marlon Dumal-is
相关产品推荐
相关产品推荐

