logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

GLightbox is a pure javascript lightbox (Colorbox alternative without jQuery)❗

It can display images, iframes, inline content and videos with optional autoplay for YouTube, Vimeo and even self-hosted videos.

Demo GLightbox Download GLightbox

滚动

适用于 Drupal 的 CKEditor TextSelection:切换到 Source 模式时保持光标与选区不丢失

12/05/2026, by Ivan

如果你在 Drupal 里编辑内容足够久,很可能遇到过这个小但恼人的工作流断点:你选中一个词或把光标放到某处,切换到 Source 来调整标记(markup),然后……位置就丢了。我做了一个小模块,专门解决这个问题。

这个模块做什么

CKEditor TextSelection 是一个 Drupal 模块,它将 CKEditor 5 的 “Text Selection” 插件集成到 Drupal 的 CKEditor 5 编辑器中。它的核心目标很简单:在 WYSIWYGSource 模式之间切换时,保留光标位置与文本选区 ——并通过滚动把选区带到可视区域,确保你始终看得到选中的内容。

  • 在 WYSIWYG ↔ Source 切换时保留光标位置。
  • 保留真实的文本选区(不只是插入点/光标)。
  • 在两种模式下都会滚动视口以显示选区。
  • 可与 CKEditor CodeMirror Source Editing 很好地搭配使用,从而获得更舒适的 Source 编辑体验。
  • 灵感来自经典的 CKEditor 4 插件行为:CKEditor 4 TextSelection

为什么这很重要(一个真正能省时间的 UX 细节)

编辑者切换到 Source 模式往往有充分理由:清理粘贴进来的标记、调整链接属性、修复列表结构、核对标题层级,或确认 HTML 完全符合预期。每次切换都丢失选区/光标会带来摩擦——尤其是在长文章中。这个模块的目标很简单:让你保持在工作流状态里

它如何工作(高层概述)

从 WYSIWYG 切换到 Source 模式时,插件会将你当前的光标位置或选区从编辑器模型映射到 HTML 源码中的对应位置;切换回来时,它会读取 Source 模式中的光标/选区并在富文本编辑器中恢复。如果某些情况无法做到完美映射(边界情况难免),它会优雅地失败,而不会破坏编辑器。

试试看(演示)

想看看底层的 CKEditor 5 插件如何工作吗?打开演示,选中一段文字,切换到 Source,然后观察选区是否仍然保持原位:CKEditor 5 Text Selection Plugin Demo

Drupal 项目链接

安装

1) 通过 Composer 安装

使用 Composer 安装该模块(推荐)。如果你需要特定版本,请从 Releases 页面 选择。

composer require drupal/ckeditor_textselection

2) 启用模块

像启用其他贡献模块一样启用 CKEditor TextSelection(通过 UI 或 Drush)。

3) 在你的文本格式中启用

  1. 进入 Administration → Configuration → Content authoring → Text formats and editors
  2. 打开使用 CKEditor 5 的那个格式。
  3. 在 CKEditor 5 设置中,启用 Text Selection 插件。
  4. 确保工具栏里有 Source editing 按钮(切换需要 Source 模式)。
  5. 保存该文本格式配置。

4) 完成

无需额外设置。启用后,每次切换模式都会自动保留选区。

与 CodeMirror Source Editing 搭配使用

如果你的编辑团队更喜欢在 Source 模式下使用语法高亮,可以将本模块与 CKEditor CodeMirror Source Editing 搭配使用。这样可提升可读性,同时保持选区保留功能不受影响。

深入了解:上游项目

这个 Drupal 模块基于上游的 CKEditor 5 插件构建。如果你想查看或参与贡献:

欢迎反馈与贡献

我非常期待来自 Drupal 编辑、站点构建者与开发者的反馈——尤其是那些在 WYSIWYG 与 HTML 之间映射选区可能产生歧义的棘手边界情况。欢迎分享你的发现、提交 issue 或参与贡献:Drupal.org 上的 CKEditor TextSelection