硬核方法#
这是一个高级章节,在采用硬核方法之前,您应该首先考虑其他指南。
内容,硬核方法#
假设
您有一个正在运行的 JupyterLab 4
您想将当前 JupyterLab 根文件夹中的所有文件添加到您的 JupyterLite。
打开浏览器
查看 Contents API,例如
https://:8888/api/contents
,它应该如下所示
{
"name": "",
"path": "",
"last_modified": "2021-05-15T20:16:17.753908Z",
"created": "2021-05-15T20:16:17.753908Z",
"format": "json",
"mimetype": null,
"size": null,
"writable": true,
"type": "directory",
"content": [
{
"name": "README.md",
"path": "README.md",
"last_modified": "2021-05-15T20:12:22.261076Z",
"created": "2021-05-15T20:12:22.261076Z",
"content": null,
"format": null,
"mimetype": "text/markdown",
"size": 3735,
"writable": true,
"type": "file"
}
]
}
将此 JSON 粘贴到
$YOUR_JUPYTERLITE/api/contents/all.json
中将文件复制到
$YOUR_JUPYTERLITE/files
中为每个子文件夹重复此操作
:(
现在,当应用程序重新加载时,如果浏览器存储中没有同名文件,这些文件将出现在文件浏览器中。如果用户已经创建了这样的文件,并且该文件被删除,则原始的服务器支持文件将变得可见。
扩展,硬核方法#
警告
这是一个非常手动的过程,建议在生产环境中使用其他指南中的方法。
获取扩展资产#
假设您有一个正在运行的 JupyterLab 4 安装,请查看您的 {sys.prefix}/share/jupyter/labextensions
。每个文件夹包含以下其中之一
如果它以
@
开头,则为包的集合否则,为单个预构建扩展
cd $YOUR_JUPYTERLITE
mkdir -p extensions
cd extensions
cp -r $PREFIX/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-manager .
警告
某些扩展需要其他扩展可用。这可以通过查看扩展的 package.json
,特别是 #/jupyterlab/sharedPackages
来确定。如果是这种情况,您还需要将所需的扩展复制到 JupyterLite 目录中。
处理主题资产#
主题管理器期望能够从 {:app}/build/themes/({:org}/){:package}
加载主题 CSS / 字体资产,其中 app
通常是 lab
。
继续上面的例子
cd $YOUR_JUPYTERLITE/extensions
mkdir -p ../build/themes
cp -r @*/*/themes/* ../build/themes/
cp -r @*/themes/* ../build/themes/
填写 federated_extensions
#
同样,假设您有一个正在运行的 JupyterLab,单击 Lab 中的检查元素并检查 <head>
中的 <script id="jupyter-config-data">
。您需要的条目将包含在那里。
更新您的 /app/jupyter-lite.json
,如下所示
{
"federated_extensions": [
{
"extension": "./extension",
"load": "static/remoteEntry.ca1efc27dc965162ca86.js",
"name": "@jupyter-widgets/jupyterlab-manager"
}
]
}
提示
有些扩展还包含 style
键,如果省略可能会看起来不正常。