求ckeditor在线编辑器代码高亮显示方案。

发布于 2022-08-28 01:11:10 字数 28 浏览 11 评论 0

如题,方案或者插件都可以,好看点就行!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

摘星┃星的人 2022-09-04 01:11:10

通过

CKEDITOR.instances.xxx.getData()\\xxx为textarea的name属性

可以获得ckeditor编辑好的html代码,然后可以通过highlight.js等前端代码高亮工具进行着色,不过生成的html通过CKEDITOR.instances.xxx(textarea的name属性).setData(data)写回到ckeditor里面还是显示不了,所以可以像很多markdown编辑器一样弄一个预览框来显示高亮后的整篇文章的预览效果,比如sf的评论框和马克飞象一样,对代码高亮的highlight的核心代码如下:

<link rel="stylesheet" href="styles/default.css">
<script src="highlight.pack.js"></script>
$("#ckeditor").keyup(function(event){
    var $doc = $(CKEDITOR.instances.ckeditorName.getData());
    $('code', $doc).each(function(i, e) {
        hljs.highlightBlock(e);
    });
    $output.innerHTML = $doc[0].outerHTML;
});

大致上是这么个意思,至于楼上说的codemirror,刚才我试验了一下,可能是我太笨了,结果没有高亮显示,只是高亮了ckeditor的查看源码部分的html,o(╯□╰)o

除此之外,ckeditor还有一个插件叫syntaxhighlighter也是用来生成代码高亮的,不过貌似需要后台支持,如果可以在后台支持中添加也是一个不错的选择。

如果有好的解决方法,也希望你能告诉我

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文