添加内容:笔记本、文件和静态资产#

使用 CLI 添加内容#

安装 CLI 后,运行

jupyter lite build

在以下位置找到的任何内容

  • {lite-dir}/files/

  • 通过以下方式添加的任何内容根目录

    • CLI 标志 --contents

    • jupyter_lite_config.json 中的 #/LiteBuildConfig/contents

  • 复制到 {output-dir}/files/ 下的构建站点

    • 如果提供了 --source-date-epoch,则可能会更改时间戳。

  • 索引以提供 {output-dir}/api/contents/{subdir?}/all.json

注意

如果在构建 JupyterLite 网站时未提供任何内容,则浏览器控制台中可能会记录以下错误消息,可以安全地忽略

Failed to load resource: the server responded with a status of 404 (File not found) :8000/api/contents/all.json:1

服务器内容和本地内容#

当用户更改服务器托管文件时,会复制到浏览器的存储空间中,通常是 IndexedDB。用户本地修改的副本将优先于任何服务器内容,即使服务器内容是新的。

自定义内容存储#

默认情况下,同一域上用户的所有内容都将可用于托管在该域上的所有 JupyterLite 实例。要创建单独的内容存储,请将 jupyter-lite.json#jupyter-config-data/contentsStorageName 从默认的 JupyterLite Storage - <baseUrl> 更改。

默认情况下,将使用最佳可用的持久存储驱动程序。可以使用 jupyter-lite.json#jupyter-config-data/contentsStorageDrivers 强制尝试特定的驱动程序集。有关 本地存储驱动程序 的更多信息。

自定义 MIME 类型#

MIME 类型驱动着 JupyterLab(以及 JupyterLite)的大量功能。作为预索引内容上传时,构建过程通常会正确检测 MIME 类型。

在浏览器中,事情有点棘手:上传时会自动检测许多众所周知的文件类型(包括提供核心 JupyterLite 站点所需的一切),但可能需要一些自定义。

默认文件类型,以及通过 #/LiteBuildConfig/extra_file_types 配置的任何类型,将与默认类型合并到 jupyter-lite.json#jupyter-config-data/fileTypes 中,并使用这些类型。

注意

这些不会影响 JupyterLite UI 实际显示文件的方式:这些由 MIME 渲染器插件 提供,例如 PyPI 上列出的那些

例如,为确保 .fasta 文件格式正确地作为 text/plain 提供服务:jupyter_lite_config.json

{
  "LiteBuildConfig": {
    "extra_file_types": {
      "fasta": {
        "name": "fasta",
        "extensions": [".fasta"],
        "mimeTypes": ["text/plain"],
        "fileFormat": "text"
      }
    }
  }
}

隐藏文件#

. 开头的文件和目录被认为是隐藏文件,默认情况下不会

  • 由处理构建 Jupyter 内容 API 响应的 jupyter_server.ContentsManager 索引

  • 文件浏览器中显示

要完全忽略这些文件不被复制或索引,请提供以下内容,例如 .binder 中的文件。

{
  "LiteBuildConfig": {
    "extra_ignore_contents": ["/\\.binder/"]
  }
}

要将这些文件包含在输出中,请将以下内容添加到 jupyter_lite_config.json

{
  "ContentsManager": {
    "allow_hidden": true
  }
}

注意

如果包含,用户将能够直接打开这些文件

  • 单击非隐藏文件中的文件链接

  • 通过 从路径打开... JupyterLab 命令

  • 从支持统一内容的内核中,例如默认的 python 内核

显示隐藏文件#

要使隐藏文件在文件浏览器中默认可见,请将以下内容添加到 overrides.json

{
  "@jupyterlab/filebrowser-extension:browser": {
    "showHiddenFiles": true
  }
}