JupyterLab用户指南2:URL
与经典notebook一样,JupyterLab为用户提供了一种复制方式以此打开特定notebook或文件的url。此外,JupyterLab URL是用户界面的高级部分,允许管理工作区。这两个函数 -- 文件路径和工作区 -- 可以在打开特定工作区中特定文件url-combine
的URL中合并。
/tree
文件导航
JupyterLab的文件导航URLs采用经典notebook的命名原则; 这些URLs是/tree
URLs:
http(s)://<server:port>/<lab-location>/lab/tree/path/to/notebook.ipynb
输入此URL将以单文档模式tabs
打开JupyterLab中的notebook。
默认情况下,文件浏览器将导航到包含请求文件的目录。这一行为可以用可选的file-browser-path
查询参数更改:
http(s)://<server:port>/<lab-location>/lab/tree/path/to/notebook.ipynb?file-browser-path=/
输入上述URL将显示工作区根目录,而不是文件浏览器中的/path/to/
目录。
管理工作区 (UI)
JupyterLab会话始终位于工作区中。工作区包含JupyterLab的状态: 当前打开的文件,应用程序区域和选项卡的分布等。刷新页面时,工作区恢复。
默认工作区没有名称,属于初级/lab
URL:
http(s)://<server:port>/<lab-location>/lab
所有其他工作区的名称都是URL的一部分:
http(s)://<server:port>/<lab-location>/lab/workspaces/foo
工作区将其状态保存在服务器上,并可以在多个用户(或浏览器)之间共享,只要他们访问相同的服务器.
工作区一次只能在单个浏览器选项卡中打开。如果JupyterLab检测到一个工作区同时被多次打开,它将提示输入新的工作区名称。也不支持同时在两个不同的浏览器选项卡中打开同一个文档。
克隆工作区
您可以使用clone
url参数复制一个工作区的内容到另一个工作区。
将foo
工作区的内容复制到bar
工作区
http(s)://<server:port>/<lab-location>/lab/workspaces/bar?clone=foo
将默认工作区的内容复制到foo
工作区中:
http(s)://<server:port>/<lab-location>/lab/workspaces/foo?clone
将foo
工作区的内容复制到默认工作区:
http(s)://<server:port>/<lab-location>/lab?clone=foo
重置工作区
使用reset
url参数清除工作区的内容。
重置foo
工作区的内容:
http(s)://<server:port>/<lab-location>/lab/workspaces/foo?reset
重置默认工作区的内容:
http(s)://<server:port>/<lab-location>/lab/workspaces/lab?reset
组合URL函数
如上所述,这些URL函数可以单独使用,也可以组合使用。
重置foo
工作区并在之后加载特定notebook:
http(s)://<server:port>/<lab-location>/lab/workspaces/foo/tree/path/to/notebook.ipynb?reset
将bar
工作区的内容克隆到foo
工作区中并在之后加载notebook:
http(s)://<server:port>/<lab-location>/lab/workspaces/foo/tree/path/to/notebook.ipynb?clone=bar
重置默认工作区的内容并加载notebook:
http(s)://<server:port>/<lab-location>/lab/tree/path/to/notebook.ipynb?reset
管理工作区 (CLI)
JupyterLab为import
工作区和export
工作区提供命令行界面:
$ # Exports the default JupyterLab workspace
$ jupyter lab workspaces export
{"data": {}, "metadata": {"id": "/lab"}}
$
$ # Exports the workspaces named `foo`
$ jupyter lab workspaces export foo
{"data": {}, "metadata": {"id": "/lab/workspaces/foo"}}
$
$ # Exports the workspace named `foo` into a file called `file_name.json`
$ jupyter lab workspaces export foo > file_name.json
$
$ # Imports the workspace file `file_name.json`.
$ jupyter lab workspaces import file_name.json
Saved workspace: <workspaces-directory>/labworkspacesfoo-54d5.jupyterlab-workspace
export
功能非常友好: 如果工作区不存在,它仍将生成用于导出的一个空工作区。
import
功能验证工作区文件的结构并验证metadata
工作区中的id
字段,以确保其URL与workspaces_url
配置或page_url
配置相兼容,从而验证该工作区名称是否正确或是否为默认工作区。
工作区文件格式
JSON文件中特殊规格的工作区文件。
有两个顶级键需求,数据和元数据。
元数据必须与某id键映射,该id键与工作区ID有相同值。这也应该是访问该工作区的相对URL路径,如/lab/workspace/foo。
数据键映射到IStateDB的初始状态。许多插件在State DB中查找配置。另外,注册到ILayoutRestorer的插件将在State DB中查找所有键,从first :之前的跟踪器命名空间开始。这些键的值应具有可映射的数据属性。
例如,如果您的工作区如下所示:
{
"data": {
"application-mimedocuments:package.json:JSON": {
"data": { "path": "package.json", "factory": "JSON" }
}
}
}
It will run the docmanager:open with the { "path": "package.json", "factory": "JSON" } args, because the application-mimedocuments tracker is registerd with the docmanager:open command, like this:
它将用{ "path": "package.json", "factory": "JSON" }参数运行docmanager:open,因为application-mimedocuments跟踪器已注册到 docmanager:open命令下,如下所示:
const namespace = 'application-mimedocuments';
const tracker = new WidgetTracker<MimeDocument>({ namespace });
void restorer.restore(tracker, {
command: 'docmanager:open',
args: widget => ({
path: widget.context.path,
factory: Private.factoryNameProperty.get(widget)
}),
name: widget =>
`${widget.context.path}:${Private.factoryNameProperty.get(widget)}`
});
并非在first :, package.json:JSON被删除且不相干之后的数据键。