为了便于维护,我在CMS中存储了许多HTML块。它们由<textarea>s表示。

有人知道某种JavaScript小部件可以在文本区域或类似区域为HTML做语法高亮显示,同时仍然是纯文本编辑器(没有所见即所见或高级功能)吗?


当前回答

这是可行的,通过添加一个覆盖的代码块在textarea的前面,并使用它来应用语法高亮提到的一对夫妇。

然而,有一些边缘情况需要注意。 本文将详细介绍它们: https://css-tricks.com/creating-an-editable-textarea-that-supports-syntax-highlighted-code

值得庆幸的是,作者将其创建为自定义元素 https://github.com/WebCoder49/code-input

使用的例子 https://codepen.io/WebCoder49/pen/jOypJOx

其他回答

总之,以下是我们可以选择的:

Highlight.js Prism.js & Microlight.js 谷歌prettyprint Pygments.org Hilite.me Microlight.js 否则,你可以尝试一个轻量级的定制- https://css-tricks.com/creating-an-editable-textarea-that-supports-syntax-highlighted-code/

为了节省您的时间和精力,最好在这些范围内进一步调查。

你可以突出显示<textarea>中的文本,使用一个<div>小心地放在它后面。

检查突出文本在文本区域。

在常规的文本区域中,不可能实现对表示的所需级别的控制。

如果你觉得没问题,试试CodeMirror或Ace或Monaco(在MS VSCode中使用)。

来自重复的线程-一个强制性的维基百科链接:基于javascript的源代码编辑器的比较

CodePress做到了这一点,EditArea也是如此。两者都是开源的。

这是可行的,通过添加一个覆盖的代码块在textarea的前面,并使用它来应用语法高亮提到的一对夫妇。

然而,有一些边缘情况需要注意。 本文将详细介绍它们: https://css-tricks.com/creating-an-editable-textarea-that-supports-syntax-highlighted-code

值得庆幸的是,作者将其创建为自定义元素 https://github.com/WebCoder49/code-input

使用的例子 https://codepen.io/WebCoder49/pen/jOypJOx