【发布时间】:2011-07-04 03:53:16
【问题描述】:
我正在为任何健全的框架寻找一个 JS 文本编辑器控件,它允许我在运行时在用户以自定义 markdownesque 格式键入文本时为文本着色或设置样式。
请注意,实际格式与 Markdown 有很大不同,所以我不能简单地重复使用一些现有的 Markdown 编辑器。此外,这些东西的目的是帮助用户进行半结构化数据输入,而不是花哨的文本格式。
除了设置文本样式外,我还希望能够根据用户输入的内容在文本中动态插入 UI 元素(比如按钮)。
我还必须能够以某种或多或少有效的方式在后台将更改发送到服务器端。我认为无论如何我都需要在那里编写一些自定义回调,但如果控件能够为此提供一个舒适的框架(或者至少如果它不会妨碍我),那就太酷了。
当然,必须支持撤消/重做和复制/粘贴等常用功能。
一个愚蠢的综合示例来阐明我希望能够编写哪些规则:
正文:
——福 酒吧{绿色} *巴兹* -- 阿尔法{红色}样式:
- 从
Foo到Alpha之前的行:背景颜色为绿色。 - 与
Alpha对齐:红色背景 - 字词
*Baz*(连同星号)以粗体显示。 - 在文字
Foo和Alpha旁边:带有垃圾桶图像的按钮,如果按下则删除从当前--到下一个文字的整个部分。 - 当用户在
--行按下Return 时,下一行的光标位置会自动缩进。 - 如果用户在(缩进)行的开头键入
--,则开始新的部分并且行不缩进。 (实际的缩进字符 /spaces/ 必须出现在文本中。)
请注意,我希望这些视觉样式在编辑器中作为用户类型应用。如果在示例中,用户将{green} 更改为{blue},则应相应更改背景颜色。
【问题讨论】: