You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SAS Kernel环境下默认折叠所有代码单元格的实现方法

我之前用SAS Kernel的时候也碰到过这个问题,那些通用的折叠代码单元格的JS脚本经常失效,主要是因为不同Kernel的单元格DOM结构可能有细微差异。下面给你几个实用的解决方案,都能实现默认折叠所有代码单元格,只显示Markdown、输出内容、图表和表格:

方案1:用CSS快速隐藏代码输入(最简单直接)

直接在Notebook里新建一个Markdown单元格,粘贴下面的代码并运行,立刻就能隐藏所有代码单元格的输入部分:

%%html
<style>
/* 隐藏代码单元格的输入区域 */
.code_cell .input {
    display: none !important;
}
/* 可选:保留折叠按钮,方便你手动展开特定代码 */
.code_cell .input_collapser {
    display: block !important;
    position: absolute;
    top: 10px;
    left: 10px;
}
</style>

这个方法的优点是兼容性极强,不管用什么Kernel,只要Jupyter的基础页面结构没变就会生效,而且不需要复杂的逻辑。

方案2:自定义JavaScript脚本(精准触发折叠交互)

如果你需要保留“折叠/展开”的交互功能,而不是直接隐藏代码,可以试试这个适配SAS Kernel的JS脚本。新建一个Code单元格,用%%javascript魔法命令运行:

%%javascript
// 遍历所有代码单元格,触发折叠操作
document.querySelectorAll('.code_cell').forEach(cell => {
    // 查找折叠按钮(兼容多数Kernel的选择器)
    const foldButton = cell.querySelector('.input_collapser') || cell.querySelector('.fa-caret-down');
    if (foldButton) {
        // 仅当单元格未折叠时点击按钮
        if (!cell.classList.contains('collapsed')) {
            foldButton.click();
        }
    }
});

如果运行后没效果,你可以右键代码单元格选择「检查元素」,查看折叠按钮的具体类名,替换掉上面的选择器即可。

方案3:用Jupyter扩展实现默认折叠(一劳永逸)

如果经常需要做这类演示,推荐安装jupyter_contrib_nbextensions中的Codefolding扩展,它支持配置默认折叠所有代码单元格,完美适配SAS Kernel:

  1. 先安装扩展包:
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
  1. 启用Codefolding扩展:
jupyter nbextension enable codefolding/main
  1. 打开Jupyter Notebook,点击顶部的「Nbextensions」标签,找到「Codefolding」选项,勾选「Collapse all code cells by default」并保存设置。之后每次打开Notebook,所有代码单元格都会自动折叠。

内容的提问来源于stack exchange,提问作者cs0815

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:37:27