您现在的位置是:首页 > cms教程 > 帝国CMS教程帝国CMS教程
帝国cms自带ckeditor编辑器代码高亮的方法codesnippet风格
张津广2023-06-11帝国CMS教程已有人查阅
导读无意中看到别人家的博客代码高亮非常漂亮,如下图所示,Mac OS风格,查阅资料为Pure Highlightjs,是WordPress插件。

关于ckeditor安装codesnippet高亮插件网上教程很多,本篇不再赘述,小伙伴们可自行查阅资料安装。
一、对比两个插件生成的高亮html代码
1、codesnippet生成的高亮Html代码
<pre>
<code class="language-java hljs">
xxxxxx
</code>
</pre>
2、**c风格主题Pure Highlightjs生成的高亮Html代码
<pre class="pure-highlightjs line-numbers language-java">
<code class=" language-java">
xxxxxxxx
</code>
</pre>
对比之下发现,Pure Highlightjs生成的高亮代码中,pre标签多了pure-highlightjs line-numbers language-*这三个class。二、动手改造找到e/admin/ecmseditor/infoeditor/plugins/codesnippet目录下plugin.js修改
1、给template加上这三个class
template: '<pre class="pure-highlightjs line-numbers ' + codeClass + '"><code class="' + codeClass + '"></code></pre>'
2、修改 data函数,更新代码时,同时修改pre标签的language-* class
data: function() {
var newData = this.data,
oldData = this.oldData;
if ( newData.code )
this.parts.code.setHtml( CKEDITOR.tools.htmlEncode( newData.code ) );
// Remove old .language-* class.
if ( oldData && newData.lang != oldData.lang ) {
var odl = oldData.lang;
this.parts.code.removeClass( 'language-' + odl );
//修改代码时,更新pre标签的language-* class
this.parts.pre.removeClass( 'language-' + odl );
}
// Lang needs to be specified in order to apply for**tting.
if ( newData.lang ) {
// Apply new .language-* class.
var ndl = newData.lang;
this.parts.code.addClass( 'language-' + ndl );
//修改代码时,更新pre标签的language-* class
this.parts.pre.addClass( 'language-' + ndl );
this.highlight();
}
// Save oldData.
this.oldData = CKEDITOR.tools.copy( newData );
}
3、修改upcast函数,提交代码时,添加pre的language-*
upcast: function( el, data ) {
if ( el.name != 'pre' )
return;
var childrenArray = getNonEmptyChildren( el ),
code;
if ( childrenArray.length != 1 || ( code = childrenArray[ 0 ] ).name != 'code' )
return;
// Upcast <code> with text only: https://dev.ckeditor.com/ticket/11926#comment:4
if ( code.children.length != 1 || code.children[ 0 ].type != CKEDITOR.NODE_TEXT )
return;
// Read language-* from <code> class attribute.
var **tchResult = editor._.codesnippet.langsRegex.exec( code.attributes[ 'class' ] );
if ( **tchResult )
data.lang = **tchResult[ 1 ];
// Use textarea to decode HTML entities (https://dev.ckeditor.com/ticket/11926).
textarea.setHtml( code.getHtml() );
data.code = textarea.getValue();
code.addClass( codeClass );
//pre标签添加codeClass
el.addClass( codeClass );
return el;
}
4、修改downcast函数
downcast: function( el ) {
var code = el.getFirst( 'code' );
// Remove pretty for**tting from <code>...</code>.
code.children.length = 0;
// Remove config#codeSnippet_codeClass.
code.removeClass( codeClass );
//删除pre标签codeClass
el.removeClass( codeClass );
// Set raw text inside <code>...</code>.
code.add( new CKEDITOR.htmlParser.text( CKEDITOR.tools.htmlEncode( this.data.code ) ) );
return el;
}
三、加入Pure Highlightjs的js和样式文件涉及到的js和css文件:pri**.js,**c.css,clipboard.min.js,需要的小伙伴可以直接从本博客代码中获取
►这篇教程可能很多人不是很明白,为了方便大家实现功能,我们又更了详细的步骤教程,查阅>>帝国cms编辑器ckeditor代码高亮前端显示mac风格 (更新时间2025年09月18日)
本文标签:
很赞哦! ()
相关教程
- (PC+手机)帝国cms7.5漫画图片连载网站源码免费下载
- 帝国CMS7.5二次元COS漫展网站模板源码免费下载
- 帝国CMS7.5小说推荐公众号导航带wap手机站+带采集工具
- 帝国CMS7.5漫画网站模板带手机端源码免费下载
- 帝国cms7.5游戏门户H5小游戏网站模板源码免费下载
- 帝国CMS游戏应用APP推广下载站模板免费下载
- 帝国CMS7.5H5小游戏模板游戏攻略下载网整站源码
- 帝国cms7.5手游评测资讯礼包合集游戏专区下载网站模板
- 帝国cms7.5大型游戏资讯门户网站源码免费下载
- 帝国CMS7.5手游资讯下载综合门户免费网站模板
- 帝国cms7.5奇闻异事末解之谜模板免费下载带数据
- 帝国cms7.5模板情感文学名言名句心情文章类源码下载带手机
图文教程
帝国cms信息反馈表单页面总是显示“带*项为必填 ”怎么办
这个问题很奇葩,所以特意发出来给需要的人,不看教程你肯定不会想到解决方法了。在制作信息反馈页面的时候,总是显示“带*项为必填 ,在后台将全部设为非填
帝国CMS邮件测试工具插件附带安装教程
在配置帝国CMS发送邮件设置时就可以先测试下配置是否正确。反馈发送到邮箱,评论发到邮箱,在此之前都要测试邮件是否能正常发送;
帝国CMS实现24小时发布时间为红色的写法
帝国CMS实现24小时发布时间为红色的写法。最近有下伙伴在咨询怎么实现24小时发布时间为红色的语法,下面是完整的写法
帝国cms数据表phome_enewspageclass自定义页面分类表
下方为帝国cms数据表phome_enewspageclass自定义页面分类表的字段类型和解释,方便大家查阅。
相关源码
-
响应式WordPress简约博客主题Alt_BlogAlt_Blog主题该模板为博客内容展示设计,采用简约现代的风格理念,打造清晰的内容呈现平台。响应式布局确保在不同设备上都能获得良好的浏览体验,帮助博主更好地展示和分享内容。查看源码 -
(自适应)工商代理公司注册财务会计pbootcms模板免费下载为工商代理、财务会计服务企业设计的网站模板,基于PbootCMS开发,充分考虑了企业服务行业的展示需求与客户转化路径。设计风格专业严谨,布局清晰合理,呈现企业服务内容与专业优势。查看源码 -
(自适应)摄像头安防电子设备pbootcms源码下载本模板基于PbootCMS系统开发,为安防电子设备企业设计,特别适合监控摄像头、安防系统等产品的展示。采用响应式技术,确保各类设备参数和功能在不同终端上都能清晰呈现。查看源码 -
(自适应)蓝色五金制品配件管件pbootcms网站源码下载基于PbootCMS内核开发的五金行业专用模板,采用响应式设计架构,确保产品展示在各类移动设备上的呈现。通过模块化布局与工业风视觉设计,帮助五金企业高效展示产品规格、应用场景及技术支持,建立专业可靠的行业形象。查看源码 -
(自适应响应式)英文外贸电子产品手机配件网站pbootcms模板专业级外贸网站模板基于PbootCMS内核开发,为电子产品跨境贸易企业设计。采用响应式布局技术,确保电脑、平板、手机等设备访问时自动适配显示效果。数据实时同步管理,一次编辑全平台生效。查看源码 -
(PC+WAP)蓝色智能环保机械设备网站营销型pbootcms模板下载本模板基于PbootCMS系统开发,为环保设备制造企业设计,特别适合展示环保机械、智能装备等产品。采用响应式技术,确保各类设备参数和技术方案在不同终端上都能清晰展示。查看源码
| 分享笔记 (共有 篇笔记) |

