@datalayer/jupyter-lexical

中文文档
2.0.21发布于 2026/10/22MITTypeScriptCommonJS构建来源已验证近 30 天下载 8147

Lexical 的 Jupyter 用户界面

中文使用文档
文档目录3 节
  1. 扩展
  2. 视频、地板和甲板块
  3. 格式

Datalayer

Become a Sponsor

朱比特语法

识字的Jupyter,用于可获取和可再生的数据分析.

Jupyter UI Slate

扩展

编辑器与 语法扩展数字 : 此软件包的每个行为都是在 src/extensions,以及 JupyterLexicalExtension 把他们都捆起来 主机取决于捆绑从 名称空间、主题、初始 状态, 将焦点放在挂载上—— 并使内容可以编辑到它想要的地方 :

import { AutoFocusExtension } from '@lexical/extension';
import { LexicalExtensionComposer } from '@lexical/react/LexicalExtensionComposer';
import { ContentEditable } from '@lexical/react/LexicalContentEditable';
import {
  JupyterLexicalExtension,
  commentTheme,
} from '@datalayer/jupyter-lexical';
import { defineExtension } from 'lexical';

// Module scope: the composer rebuilds the editor whenever this reference changes.
const extension = defineExtension({
  name: 'my-app/Document',
  namespace: 'my-document',
  theme: commentTheme,
  dependencies: [JupyterLexicalExtension, AutoFocusExtension],
});

export const Document = () => (
  <LexicalExtensionComposer extension={extension} contentEditable={null}>
    <ContentEditable className="editor-input" />
  </LexicalExtensionComposer>
);

从根部将捆绑的行为重新配置为 configExtension,用于 实例 configExtension(HistoryExtension, { disabled: true }) (单位:千美元) 协作文档,或 configExtension(ListMaxIndentLevelExtension, { maxDepth: 3 })。 。 。 . 其中一些暴露了输出中的信号 这样一个活编辑器就可以了 未重建而重新配置——列表天花板,或 lexicalId 财务报告和审定财务报表 serviceManager 联 合 国 LexicalStateExtension 将编辑器注册到 用于代理工具的共享存储 .

两种行为需要主机:只有主机有的(内核, 完成提供者)和挂出主机DOM(浮动菜单)的东西. 第一个是产出组成部分—— JupyterInputOutputExtension, (中文(简体) ), ComponentPickerMenuExtension 财务报告和审定财务报表 InlineCompletionExtension 设置在 useExtensionComponent 或者说 <ExtensionComponent lexical:extension={…} />· ; 作曲家儿女的第二站 执行插头 工具栏、注释面板和协作提供者.

每个扩展保留一个同名的回声插件 src/plugins 用于 编辑器仍然使用 LexicalComposer; 插件是一个薄薄的包件结束 扩展名 register… 函数,因此两个路径共享一个执行.

视频、地板和甲板块

3个街区类型与捆绑 / 在编辑器中:

  • 视频 (单位:千美元)VideoExtension, (中文(简体) ), VideoNode: 记录屏幕或相机 与浏览器自己的 MediaRecorder ——没有帐户,没有钥匙,没有上传. 这个 文件留在页面内存中 : 重装页面时丢失,以及 没有人会看到该文件。 下载保存副本 。 之后a 重新装入该块 说它的视频已经消失 而不是假装它从来没有.
  • Loom 视频 (单位:千美元)LoomExtension, (中文(简体) ), LoomNode: 记录 a 闲置 作者在Loom上签名 账号,保存录像的地方,或取一个地址,然后 显示它。 粘贴一个Loom地址 提议嵌入它.
  • 底片幻灯片 (单位:千美元)DeckExtension, (中文(简体) ), DeckNode: 由 @datalayer/decks 从其 DeckSpec,首先使用一个标题幻灯片. 双击以编辑规格为JSON; 用它保存检查 validateDeckSpec 并且只在没有错误的时候保留它.

用 Loom 录音需要一个 Loom 公共应用代码。本软件包不保留;主机 从自己的配置中给出 :

configExtension(LoomExtension, { publicAppId: process.env.LOOM_PUBLIC_APP_ID });

(单位:千美元)<Editor extensions={[…]} /> 拿着那张名单,和 <LoomPlugin publicAppId={…} /> 对搭建在 LexicalComposer.) 无一出,禄姆 块仍然显示并嵌入了视频;只关闭了记录。 实例如下: LOOM_PUBLIC_APP_ID 从外壳,或从 .env.local 在这个包, 被忽略的 .env 它不——不让那一个id:

npm run install:react18                           # once, see below
echo 'LOOM_PUBLIC_APP_ID=…' >> .env.local         # once
npm run start:vite                                # or start:webpack

记录者, @loomhq/record-sdk, (中文(简体) ), 运行于 React 18: 它导入反应 从页面起起并挂起 ReactDOM.render,该反应19删除。 下 JupyterLab,它分享回放18,不需要什么。 反应 19 页必须给出 记录器本身的回放 18 —— SDK 只有在有人时才会被导入 按下记录, 所以没有记录, 只有记录失败, 和块 这么说的 此软件包的 Dev 服务器以双向显示 npm run install:react18 装入 vendor/react18数字 :

  • 网络软件包 (单位:千美元)webpack.config.js: SDK 及其导入的全部加入一个模块 层, loom18时 react 财务报告和审定财务报表 react-dom 下定决心;
  • 维特 (单位:千美元)vite.config.ts:一个插件将SDK与Esbuild捆绑在一起, 每个 react 导入指向该对,并服务于任何结果 源导入 SDK.

格式

文档通过其他格式进出 src/convert数字 :

  • 标记 —— 说 $convertToMarkdownString 编号 : $convertFromMarkdownString 与包件的变压器(表、图像、等式、规则和 作为可执行的Jupyter输入的栅栏码).

  • 无格式 —— 说 lexicalToNbformat(nodes) 每个Jupyter写一个代码单元格 输入其产出和每跑一跑一马克倒数单元格; nbformatToLexical(notebook, editor) 将笔记本读回 输入/输出插件必须安装在代码单元格上.

  • 拉特克语Name —— 说 $convertToLatexString(transformers?, { document, documentClass, classOptions, title, author, date }) 财务报告和审定财务报表 $convertFromLatexString(latex, transformers?),建在以后形状的变压器上 @lexical/markdown是因为 (单位:千美元)LATEX_TRANSFORMERS: 标题块 (\title, (中文(简体) ), \author, (中文(简体) ), \date, (中文(简体) ), \maketitle页:1 \part 改为 \subparagraph,段落和 文本格式、引文和摘要、定理环境和证明, 清单、核对清单和说明清单、清单lstlisting, (中文(简体) ), minted, (中文(简体) ), verbatim),算法,表格(tabular 朋友们, \multicolumn 、数字、规则、内线和显示 数学(包括AMS环境),链接,YouTube嵌入,脚注, 引用和 thebibliography,TeX破折出并引用. \newcommand 序言中的宏有所扩展。 列被读入布局 节点 : multicols (单位:千美元) \columnbreak或均匀地) columns, (中文(简体) ), 并肩作战 minipages,以及 twocolumn 类选项; 它们是 回写为 multicols。光标框变成区域及其 blocka. 可折叠箱; moderncv 条目和 letter 类 (单位:千美元)\opening, (中文(简体) ), \closing, (中文(简体) ), \signature, (中文(简体) ), \ps)读作道. 一个主机添加 增加变压器的节点. $importLatex 还返回什么 序言说(LatexDocumentInfo) (中文(简体) ).

  • LaTeX 模板 —— 说 LATEX_TEMPLATES 每页各保存一个文件 模板类别(期刊文章、书目、书籍、日历、简历、, 信件、任务、通讯、海报、演讲、论文) 类最出名模板的idiom.

  • 专题报告 - 4个路线,每个一个扩展,全部在浏览器和所有 类型脚本( T)PdfExportExtension 捆绑它们; 命令和函数在 src/extensions/PdfExportExtension.ts:

    1. PdfPrintExtension 编号 : PRINT_PDF_COMMAND - 提供的文件, 复制到隐藏的 iframe 中, 包含页面样式表和打印 样式表,由浏览器打印(JupyterLab的工作)。 最高 忠诚; 阅读器从对话框中保存为 PDF .
    2. PdfDocumentExtension 编号 : EXPORT_PDF_DOCUMENT_COMMAND ——向量 PDF 从文件模式中列出的src/convert/pdf: 一个 PDF 小作家 超过标准 14 字体,用于标题、段落的布局引擎, 列表、代码、表格、列、引文、框。 文本保留文本; 图片 通过 KaTeX 绘制的等式、图像、图画、丰富的产出——由 浏览器并定位为 JPEG 。 无头运行 pictures: false。 。 。 .
    3. PdfSnapshotExtension 编号 : EXPORT_PDF_SNAPSHOT_COMMAND - 编辑 绘制到有 html2 canvas 的画布上, 并切入页面图像 每个切口附近最白的一行. 一切如来,无所可选.
    4. PdfTypesetExtension 编号 : EXPORT_PDF_TYPESET_COMMAND - 文件为: Typst 标记( $src/convert/typst),由 Typst 引擎编译于 Web Assembly, 首次使用时从 CDN 获取(loadTypstEngine; 两者 URLs可配置). 真正的类型设置; LaTeX 数学通过 mitex typst 注册的软件包.

这个 LexicalFormats 示例在一个文档上显示全部: Markdown 和 LaTeX 源, 您可以编辑和应用程序, 一个活的笔记本, nbformat JSON,和LaTeX通过将它读回只读编辑器而得到. 这个 LexicalLatex 示例(“LaTeX模板”)将每个模板读入一个 可编辑编辑器的源头旁边, 各自在离开时写给对方 . 这个 LexicalPdf 示例 (“ PDF 导出 ”) 运行 文档样本并存, 并预览每个结果; 两者 示例带有“Export PDF”菜单.

版本与发布记录

@datalayer/jupyter-lexical 共发布 39 个版本,首次发布于 2024/01/09;过去 12 个月发布了 24 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.0.21latest2026/10/2220 天前
2.0.202026/10/061 个月前
2.0.192026/10/061 个月前
2.0.182026/09/261 个月前
2.0.172026/09/251 个月前
1.0.252026/09/251 个月前

关于 @datalayer/jupyter-lexical 的常见问题

@datalayer/jupyter-lexical 是什么?

Lexical 的 Jupyter 用户界面

如何安装 @datalayer/jupyter-lexical?

在项目目录运行 npm install @datalayer/jupyter-lexical,或使用 pnpm add / yarn add / bun add。

@datalayer/jupyter-lexical 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@datalayer/jupyter-lexical 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@datalayer/jupyter-lexical 可以商用吗?

@datalayer/jupyter-lexical 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@datalayer/jupyter-lexical 的下载量有多少?

根据 npm 官方下载统计,@datalayer/jupyter-lexical 在 2026/10/12 – 2026/11/10 这 30 天内被下载 8,147 次,日均约 272 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@datalayer/jupyter-lexical 还在维护吗?

最新版本 2.0.21 发布于 2026/10/22(20 天前);至今共发布 39 个版本,其中过去 12 个月发布了 24 个;首次发布于 2024/01/09。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。