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

使用 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 更改。

默认情况下,将使用最佳的可用持久存储驱动程序。可以使用 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
  }
}