Editor.js 使用指南:从基础操作到快捷键、Holder 与日志配置
Editor.js 使用指南从基础操作到快捷键、Holder 与日志配置【免费下载链接】editor.jsA block-style editor with clean JSON output项目地址: https://gitcode.com/gh_mirrors/ed/editor.jsEditor.js 是一个基于 Block块架构的富文本编辑器输出干净的 JSON 数据。本指南以官方 docs/usage.md 为主线结合仓库源码如 src/components/core.ts、src/components/modules/blockEvents.ts为你系统讲解 Editor.js 的日常使用方式如何创建与管理 Block、如何用快捷键和 Toolbox 高效操作、以及autofocus、holder、placeholder、logLevel等核心配置项的底层行为。读完本文你将能熟练上手 Editor.js并为自己的站点配置出一套顺手、可控的编辑体验。基础操作认识 Block 与编辑流程Editor.js 是 Block-Styled块式编辑器Block 是构成一篇内容Entry的结构化单元。例如Paragraph段落、Heading标题、Image图片、Video视频、List列表都是 Block而每一个 Block 都由一个**插件Plugin / Tool**表示。Editor.js 官方维护了大量开箱即用的 Plugins也提供了简单的 APItools.md 供你创建自己的 Tool。安装完成后参考 installation.md编辑器即可按以下流程使用创建新 Block按Enter键或点击编辑器左侧的Plus Button加号按钮打开 Toolbox工具箱按TAB键或点击 Plus Button即可查看可用 Tool 列表选择 Block 类型再次按TAB在 Toolbox 中翻阅高亮到你需要的 Block 后按Enter确认插入。行内工具栏Inline Toolbar选中一段文本后会弹出行内工具栏可对其应用加粗、斜体等样式或插入链接块设置Block Settings点击块右侧的「三点」按钮···打开 Block Settings可以移动上移/下移、删除Block或应用 Tool 自身提供的设置项——例如设置标题级别H2/H3/H4或列表样式从源码看这三类操作分别由不同的模块承载Toolbox 由 src/components/ui/toolbox.ts 实现并通过 src/components/modules/toolbar/index.ts 对外暴露移动/删除 Block 的 Tune 定义在 src/components/block-tunes/ 下的block-tune-move-up.ts、block-tune-move-down.ts与block-tune-delete.ts。快捷键一览Editor.js 非常重视键盘操作内置了少量预设快捷键| 动作 | 快捷键 | 限制条件 | | -- | -- | -- | |TAB| 显示 / 翻阅 Toolbox | 空 Block 上 | |SHIFTTAB| 回翻 Toolbox | Toolbox 打开时 | |ENTER| 创建 Block | Toolbox 打开且选中了某个 Tool 时 | |CMDB| 加粗样式 | 有选中文本时 | |CMDI| 斜体样式 | 有选中文本时 | |CMDK| 插入链接 | 有选中文本时 |TAB 与 Slash/的底层逻辑在 src/components/modules/blockEvents.ts 的tabPressed()中可以看到TAB按下时若 Inline Toolbar 已打开则直接返回避免与 Flipper 冲突否则尝试Caret.navigateNext(true)SHIFTTAB则为navigatePrevious(true)在 Block 间移动焦点。同一文件中slashPressed()src/components/modules/blockEvents.ts则揭示了当前仓库中另一个实用操作在空 Block 中输入/会直接打开 Toolbox——前提是当前 Block 为空currentBlock.isEmpty并且/会被插入到搜索框中。这是文档之外、源码可验证的隐藏用法。为 Tool 自定义快捷键除了内置快捷键所有类型的 Tool 都支持自定义快捷键在 Tool 的配置中指定shortcut即可。例如var editor new EditorJS({ //... tools: { header: { class: Header, shortcut: CMDSHIFTH }, list: { class: List, shortcut: CMDSHIFTL } } //... });快捷键的注册机制位于 src/components/utils/shortcuts.ts其底层基于codexteam/shortcuts库。Tool 侧的实现见 src/components/tools/base.tsshortcutgetter 优先返回用户配置this.config[UserSettings.Shortcut]否则回退到 Tool 类自身声明的内部快捷键CommonInternalSettings.Shortcut。也就是说用户配置永远可以覆盖 Tool 内部默认快捷键。初始化配置项详解Editor.js 的实例化通常形如new EditorJS(config)。除tools、data外官方使用文档重点讲解了以下几个配置项。Autofocus页面加载后自动聚焦如果希望在页面加载完成后自动聚焦到编辑器可在初始配置中传入autofocus: truevar editor new EditorJS({ //... autofocus: true //... });从 src/components/core.ts 的源码可以看到其实现细节当autofocus true且未开启只读模式readOnly ! true时核心会在渲染完成后把光标Caret设置到第一个 Block 的开头Caret.setToBlock(BlockManager.blocks[0], Caret.positions.START)。换言之autofocus在readOnly: true时不会生效。Holder编辑器挂载点holder属性同时支持元素 id 字符串或DOM 元素引用两种写法var editor new EditorJS({ holder: document.querySelector(.editor), }) var editor2 new EditorJS({ holder: codex-editor // 等价于 document.getElementById(codex-editor) })holder是 Editor.js 唯一必需的配置项至少需要指定一个挂载容器。src/components/core.ts 显示若完全不传holder默认值会是editorjs对应页面中div ideditorjs/div因此也存在零配置用法new EditorJS()。此外src/components/core.ts 的validate()方法会在初始化时校验 holder同时传入holderId与holder会抛出错误holderId是已废弃的旧属性将被移除传入的字符串 id 必须在页面中真实存在$.get(holder)找不到即抛错传入的对象必须是 DOM Element 节点。类型定义见 types/configs/editor-config.d.tsholder类型为string | HTMLElement同时标注了旧属性holderId已废弃。Placeholder空编辑器占位提示默认情况下Editor.js 的 placeholder 是空的。可通过placeholder字段传入自定义占位文案var editor new EditorJS({ //... placeholder: My awesome placeholder //... });需要注意的是如果你使用了自定义的Initial Block即defaultBlock见 types/configs/editor-config.d.tsplaceholder属性会通过config传入该 Tool 的构造函数由 Tool 决定如何使用。占位符的实际渲染依赖data-placeholder等属性配合 CSS见 src/styles/placeholders.css 与 src/components/modules/ui.ts 中关于 contenteditable 占位逻辑的注释。从 src/components/core.ts 还可看到其默认值处理this.config.placeholder this.config.placeholder || false即未配置时等价于false不显示占位提示。类型定义允许string | false意味着你可以用false显式关闭占位提示。Log level控制控制台日志量可以通过配置对象的logLevel属性指定 Editor.js 控制台消息的输出级别var editor new EditorJS({ //... logLevel: WARN //.. })可选值如下值描述VERBOSE显示所有消息INFO显示 info 与 debug 消息WARN仅显示错误与警告ERROR仅显示错误logLevel的取值由 types/configs/log-levels.d.ts 中的LogLevels枚举定义VERBOSE/INFO/WARN/ERROR。其默认值为VERBOSE见 src/components/core.ts未配置时自动设为VERBOSE并调用setLogLevel。实际的过滤逻辑在 src/components/utils.tsERROR级别只放行error类型WARN放行error与warnINFO仅放行常规的info/log类型。生产环境建议设为WARN或ERROR减少控制台噪音。结合初始化与数据保存的完整示例把以上配置组合起来一个完整的 Editor.js 初始化示例大致如下前置条件参见 docs/installation.md更多示例见 example/example.htmldiv ideditorjs/divvar editor new EditorJS({ holder: editorjs, autofocus: true, placeholder: 写点什么…, logLevel: WARN, tools: { header: { class: Header, shortcut: CMDSHIFTH, inlineToolbar: true }, list: { class: List, shortcut: CMDSHIFTL } }, onReady: () { console.log(Editor.js is ready to work!); }, onChange: (api, event) { console.log(Now I know that Editor\s content changed!); } }); // 保存数据 editor.saver.save() .then((savedData) { console.log(savedData); // 干净的 JSON OutputData });其中onReady回调与isReadyPromise 用于感知初始化完成时机saver.save()输出结构化 JSON——这些都属于 docs/installation.md 覆盖的能力与本文的配置项配合使用可构成完整的「初始化 → 编辑 → 保存」闭环。小结Editor.js 的使用体验可以概括为三件事用 Enter / Plus 按钮创建 Block用 Tab 翻阅 Toolbox 并选择类型用 Inline Toolbar 与 Block Settings 做样式与结构调整。在此基础上通过shortcut为常用 Tool 绑定快捷键、用autofocus提升进入页面的效率、用holder灵活挂载到任意 DOM、用placeholder引导用户输入、用logLevel控制日志噪音即可把编辑器深度融入自己的站点。所有配置项的默认值与约束如 holder 默认editorjs、logLevel 默认VERBOSE、autofocus 在只读模式下不生效都能在 src/components/core.ts 的 configuration setter 与validate()中直接验证。【免费下载链接】editor.jsA block-style editor with clean JSON output项目地址: https://gitcode.com/gh_mirrors/ed/editor.js创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

DINOv3权重下载与RKNN部署实战:从ViT自监督到边缘推理

DINOv3权重下载与RKNN部署实战:从ViT自监督到边缘推理

1. 项目概述最近视觉 Transformer 圈子里最热的话题之一,就是 Meta AI 开源的 DINOv3。作为一个常年泡在图像检索、特征匹配和边缘部署一线的算法工程师,我对这套模型家族的关注度一直很高。DINOv2 刚出来的时候,很多人就被它的自监督表征能力…

2026/9/21 0:47:02 阅读更多 →
RocksDB 迭代器与扫描路径深度解析:从 DBIter 栈式架构到 Seek 优化与 MultiScan

RocksDB 迭代器与扫描路径深度解析:从 DBIter 栈式架构到 Seek 优化与 MultiScan

RocksDB 迭代器与扫描路径深度解析:从 DBIter 栈式架构到 Seek 优化与 MultiScan 【免费下载链接】rocksdb A library that provides an embeddable, persistent key-value store for fast storage. 项目地址: https://gitcode.com/gh_mirrors/ro/rocksdb 导…

2026/9/19 21:11:30 阅读更多 →
数字人文作品集 Rubric 评分:TEI、IIIF 与静态站点可复现交付

数字人文作品集 Rubric 评分:TEI、IIIF 与静态站点可复现交付

简介:这份《数字人文作品集 Rubric1》PDF文档,是田纳西大学数字人文研究生证书课程使用的作品集评估标准原文,面向准备提交证书作品集的研究生、课程负责人及数字人文项目指导教师。它解决的是作品集如何组织、展示与评分的问题,涵…

2026/9/19 21:10:29 阅读更多 →

最新新闻

从零开始学Linux WiFi驱动:mac80211、PCIe与固件加载实战解析

从零开始学Linux WiFi驱动:mac80211、PCIe与固件加载实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:06:42 阅读更多 →
Slang 编译器 CLI 选项白盒覆盖测试套件:`coverage/cli-options` 的意图、设计与维护指南

Slang 编译器 CLI 选项白盒覆盖测试套件:`coverage/cli-options` 的意图、设计与维护指南

Slang 编译器 CLI 选项白盒覆盖测试套件:coverage/cli-options 的意图、设计与维护指南 【免费下载链接】slang Making it easier to work with shaders 项目地址: https://gitcode.com/GitHub_Trending/sl/slang 导读 docs/generated/tests/coverage/cli-o…

2026/9/21 3:06:42 阅读更多 →
StatsD 入门与实践:基于 Node.js 的实时指标聚合守护进程完全指南

StatsD 入门与实践:基于 Node.js 的实时指标聚合守护进程完全指南

StatsD 入门与实践:基于 Node.js 的实时指标聚合守护进程完全指南 【免费下载链接】statsd Daemon for easy but powerful stats aggregation 项目地址: https://gitcode.com/gh_mirrors/st/statsd StatsD 是一个运行在 Node.js 平台上的网络守护进程&#x…

2026/9/21 3:06:42 阅读更多 →
基于分层分离树(HST)的可扩展差分隐私聚类:hst_clustering 实现与实战指南

基于分层分离树(HST)的可扩展差分隐私聚类:hst_clustering 实现与实战指南

基于分层分离树(HST)的可扩展差分隐私聚类:hst_clustering 实现与实战指南 【免费下载链接】google-research Google Research 项目地址: https://gitcode.com/gh_mirrors/go/google-research 导读 本文围绕 hst_clustering 模块&…

2026/9/21 3:06:42 阅读更多 →
项目管理软件选型实战:从需求分析到红黑榜避坑指南

项目管理软件选型实战:从需求分析到红黑榜避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:05:41 阅读更多 →
电子电工产品测试标准:安规、EMC与环境可靠性指南

电子电工产品测试标准:安规、EMC与环境可靠性指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:05:41 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →