ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Milkdown 嵌套列表缩进配置指南:indent 插件使用与 indentConfig 参数详解

Milkdown 嵌套列表缩进配置指南:indent 插件使用与 indentConfig 参数详解 Milkdown 嵌套列表缩进配置指南indent 插件使用与 indentConfig 参数详解【免费下载链接】milkdown Plugin driven WYSIWYG markdown editor framework.项目地址: https://gitcode.com/GitHub_Trending/mi/milkdown写 Markdown 时经常要处理嵌套列表、任务清单这类有层级的内容缩进处理不好排出来的层级就容易乱。Milkdown 里的缩进能力由milkdown/plugin-indent提供一个 Tab 键就能在光标处插入缩进字符配合indentConfig配置项还能把缩进单位换成团队规范里要求的空格数或制表符。两步接入在编辑器里启用 indent 插件如果你只想快速跑起来只需要做这两步导入插件、挂载到编辑器。import { Editor } from milkdown/core import { indent, indentConfig } from milkdown/plugin-indent Editor .make() .use(indent) // 挂上后 Tab 键即可插入缩进 .create()默认配置通常够用type为space、size为2也就是每次按 Tab 插入两个空格。这里的关键是配置项而不是插件本身——indent只是一个把 Tab 键接到缩进逻辑上的快捷键真正决定插入什么、插入多少的是indentConfig。indentConfig 参数说明type 与 size 怎么填想改缩进行为在初始化时通过.config()写入即可.config(ctx { ctx.set(indentConfig.key, { type: space, // 用空格做缩进填 tab 则每次插入一个制表符 size: 4, // 每次按 Tab 插入的空格数 }) })参数取值默认作用typespace/tabspace缩进字符类型size正整数2一次插入的空格数一个容易踩的点type设为tab时插入的固定是一个制表符size对制表符不生效。如果你的团队规范要求 4 空格就保持type: space并把size调到 4。顺带一提Milkdown 官方的高层封装 Crepe 内置了 indent 插件并把size覆盖成了 4见 packages/crepe/src/core/builder.ts。用 Crepe 时你不需要手动挂载但想知道它的缩进行为可以顺着这份源码确认。什么时候会触发什么时候不会Tab 触发的缩进有明确前提理解这两条能少查很多错光标必须停在可编辑文本里。选中状态是普通文本选区TextSelection或全选AllSelection时才会插入选在别的节点上比如图片、表格则什么都不发生。插入位置就是光标所在位置它把字符串直接写进文档序列化出的 Markdown 就是带缩进的前导空格。所以想给一组任务清单做层级常见做法是把光标放到子项行首按 Tab 让前导空格对齐再录入内容。层级建议控制在 3 级以内再深的内容用标题或表格组织更清晰。和列表自动重排的区别这是新手最常被误导的地方indent插件是插入缩进字符不是给列表项做层级升降的自动缩进命令。列表项的嵌套结构主要由你在 ProseMirror 文档里的节点层级决定而不是这个快捷键直接改出来的。如果你希望选中列表项按 Tab 就整体下沉一级这类行为需要借助 keymap 或 slash 命令另行实现而代码块里的 Tab 缩进则是另一套机制——Crepe 的代码块基于 CodeMirror用的是indentWithTab配置入口在 packages/crepe/src/feature/code-mirror/index.ts和正文的 indent 插件互不干扰。Tab 没有反应的排查思路现象按 Tab 完全没变化→ 通常没挂载插件。确认Editor.make()链上执行过.use(indent)或用 Crepe 时检查features是否被禁用。现象每次插入的字符数不对→ 大概率是indentConfig没写进去或在插件之前被其他配置覆盖。可以用ctx.get(indentConfig.key)打印当前值核对。现象光标在表格或图片上按 Tab 无效→ 这是预期行为选区类型不满足触发条件把光标移回文本行再试。参数定义和默认值都在 packages/plugins/plugin-indent/src/index.ts接口文档在 docs/api/plugin-indent.md不确定某个行为时直接对照这两处最快。下一步先把size和团队文档规范对齐比如统一 4 空格再验证一次 Tab 的实际输出。如果后续需要列表项整体升降级或代码块内的自定义缩进键位再去找 keymap 相关的扩展点不必动 indent 插件本身。【免费下载链接】milkdown Plugin driven WYSIWYG markdown editor framework.项目地址: https://gitcode.com/GitHub_Trending/mi/milkdown创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表