如何使用CodeMirror将某些样式应用于编辑器中的特殊标记

时间:2013-09-21 00:20:57

标签: codemirror

这是我的场景:我有一个输入textarea,用户可以在其中介绍一些文本。文本是纯文本,但用户可以使用某些已定义的宏,例如{{username}}。

这是一个例子

<textarea>The user {{Username}} loggedin at {{now}}</textarea>

我不希望用户必须知道语法,所以我会有一些按钮,单击时会在textarea中自动插入宏。我想对这个宏应用一些基本样式。例如,上面的内容应该在

中进行转换
The user <span class="cm-mystyle">Username</span> logged in at <span class="cm-mystyle">Now</span>

使用编辑器时,用户应将'span'作为一个块处理,这意味着用户无法更改span的内容(只需删除)。

我不知道CodeMirror是否是处理此方案的正确工具。

阅读完文档后,我的第一个方法是定义一个模式来处理我的标记{{Username}}。但似乎我只能返回要应用于令牌的样式。所以我可以拥有这个

The user <span class="cm-mystyle">{{Username}}</span> logged in...

但我想删除{{}}字符。然后我读到了小部件,在我看来,它可以用来处理我的场景。

说实话,我对如何处理我的问题感到困惑。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

markText方法可能就是你想要的。找到宏文本,并将replacedBy选项设置为仅包含您要显示的文本的样式span进行标记。

http://codemirror.net/doc/manual.html#markText