这是我的场景:我有一个输入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...
但我想删除{{}}字符。然后我读到了小部件,在我看来,它可以用来处理我的场景。
说实话,我对如何处理我的问题感到困惑。有什么帮助吗?
答案 0 :(得分:0)
markText
方法可能就是你想要的。找到宏文本,并将replacedBy
选项设置为仅包含您要显示的文本的样式span
进行标记。