介绍

官方开发者文档:CKEditor 4 documentation

技巧总结

1.挑选需要的插件,打包下载

参考:CKEditor 4.4.1 添加代码高亮显示插件功能--使用官方推荐Code Snippet插件_djl的专栏,blog.djl.cx好记-CSDN博客

2.config.js的常用配置

全部配置:Class Config (CKEDITOR.config) - CKEditor 4 API docs

CKEDITOR.editorConfig = function( config ) {
config.toolbar = 'Full';
config.toolbarLocation = 'top';
config.height = 700;
config.toolbar = [
// { name: 'document', items: [ 'Source'] },
// { name: 'clipboard', groups: [ 'clipboard', 'undo' ], items: [ 'Cut', 'Copy', 'Paste', '-', 'Undo', 'Redo' ] },
// { name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ], items: [ 'Find', 'Replace' ] },
//{ name: 'forms', items: [ 'Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton' ] },
// '/',
{ name: 'basicstyles', groups: [ 'basicstyles'], items: [ 'Bold', 'Italic', 'Underline', 'Strike'] },
{ name: 'paragraph', groups: [ 'list', 'blocks' ], items: [ 'NumberedList', 'BulletedList', '-', 'Blockquote' ] },
{ name: 'links', items: [ 'Link' ] },
{ name: 'insert', items: [ 'Image', 'Table', 'HorizontalRule'] },
{ name: 'styles', items: [ 'Styles', 'Format', 'FontSize','CodeSnippet' ] },
{ name: 'colors', items: [ 'TextColor', 'BGColor' ] },
{ name: 'tools', items: [ 'Maximize' ] }
]; config.plugins = 'dialogui,dialog,basicstyles,blockquote,button,toolbar,clipboard,menu,filetools,filebrowser,floatingspace,listblock,font,format,horizontalrule,wysiwygarea,image,menubutton,link,list,liststyle,maximize,pastetext,tab,table,tabletools,tableselection,lineutils,uploadwidget,uploadimage,textwatcher,htmlwriter,undo';
config.skin = 'moono-lisa';
config.resize_enabled = false; //禁止拖拽改变尺寸
config.removePlugins = 'elementspath'; //删除底边栏
config.image_previewText=' '; //清空图片上传预览的内容
config.image_prefillDimensions = false; //禁止图片上传完毕后自动填充图片长和宽
config.imageUploadUrl = '/post/upload'; //图片上传接口
config.filebrowserImageUploadUrl= '/post/upload';
config.extraPlugins = 'wordcount,codesnippet'; //其他插件:字数统计、提示信息、语法高亮
config.wordcount = {
showParagraphs: false, // 是否统计段落数
showWordCount: false, // 是否统计词数
showCharCount: true, // 是否统计字符数
countSpacesAsChars: false, // 是否统计空间字符
countHTML: false, // 是否统计包括HTML字符的字符数
maxWordCount: -1, // 最大允许词数,-1表示无上限
maxCharCount: -1, //最大允许字符数,-1表示无上限
filter: new CKEDITOR.htmlParser.filter({ //添加筛选器添加或删除元素之前计数(CKEDITOR.htmlParser.filter),默认值:null (no filter)
elements: {
div: function( element ) {
if(element.attributes.class == 'mediaembed') {
return false;
}
}
}
})
};
config.codeSnippet_theme = 'github'; //添加中文字体
//config.font_names="宋体/SimSun;新宋体/NSimSun;仿宋_GB2312/FangSong_GB2312;楷体_GB2312/KaiTi_GB2312;黑体/SimHei;微软雅黑/Microsoft YaHei;幼圆/YouYuan;华文彩云/STCaiyun;华文行楷/STXingkai;方正舒体/FZShuTi;方正姚体/FZYaoti;"+ config.font_names;
};

3.配置图片上传接口

参考:ckeditor富文本编辑器的使用和图片上传,复制粘贴图片上传_sayoko06的博客-CSDN博客_ckeditor上传图片

@ResponseBody
@PostMapping("/upload")
public String upload(@RequestParam("upload") MultipartFile file, HttpServletRequest request, HttpServletResponse response){
FileResponse fileResponse = new FileResponse();
String fileName = file.getOriginalFilename();
String suffixName = fileName.substring(fileName.lastIndexOf("."));
String newFileName = IDUtils.getUUID()+suffixName;
Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH) + 1;
int year = cal.get(Calendar.YEAR);
String uploadPath = baseUploadPath+ File.separator+String.valueOf(year)+File.separator+String.valueOf(month);
File uploadPathFile = new File(uploadPath);
if(!uploadPathFile.exists()){
uploadPathFile.mkdirs();
} //System.out.println("上传路径:"+uploadPath); try {
String realPath = uploadPath+File.separator+newFileName;
file.transferTo(new File(baseUploadPath+newFileName));
// return {"uploaded":1, "fileName" : "image.png", "url":"http://localhost:15593/UploadImages/RickEditorFiles/Content/2017-05-23 10_39_54.png" };
return fileResponse.success(1, newFileName, ckeditorAccessImageUrl + newFileName, null);
// return "{\"uploaded\" : 1, \"fileName\" : \"image.png\", \"url\": , \"error\" : { \"message\":\"\" } }";
} catch (IOException e) {
e.printStackTrace();
return fileResponse.error(0,"系统异常!");
} }

4.初始化CKEDITOR

<textarea id="editor" name="editor" rows="80"
style="width: 99.4%; display: none; visibility: hidden;"></textarea>
<script>
// 初始化编辑器
CKEDITOR.replace('editor');
</script>

5.获取编辑器中HTML文本

postContent = CKEDITOR.instances.editor.getData().trim();

6.获取编辑器中纯文本

postTextContent = CKEDITOR.instances.editor.document.getBody().getText();

7.代码高亮显示

参考:CKEditor 4.4.1 添加代码高亮显示插件功能--使用官方推荐Code Snippet插件_djl的专栏,blog.djl.cx好记-CSDN博客

8.显示代码行号?

hljs.initLineNumbersOnLoad();

ckeditor使用技巧总结的更多相关文章

  1. CKEditor使用配置方法

    一.使用方法: 1.在页面<head>中引入ckeditor核心文件ckeditor.js <script type="text/javascript" src= ...

  2. CKEditor的使用方法

    CKEditor的使用方法 2014-03-31 09:44 8649人阅读 评论(1) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. ckeditor 的官方网站是 http:/ ...

  3. ckeditor的详细配置

    CKEditor 3 JavaScript API Documentation : http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.con ...

  4. CKeditor 配置使用

    CKeditor 配置使用 一.使用方法:1.在页面<head>中引入ckeditor核心文件ckeditor.js<script type="text/javascrip ...

  5. 网络编辑器插件ckeditor+ckfinder配置

    原帖地址 另外一个 去掉编辑器的下边栏 在config.js中加入: config.removePlugins = 'elementspath'; config.resize_enabled = fa ...

  6. ckeditor的配置及使用

    一.使用方法:1.在页面<head>中引入ckeditor核心文件ckeditor.js<script type="text/javascript" src=&q ...

  7. ckeditor与ckfinder简单整合使用

    Ckeditor与ckfinder简单整合使用 功能:主要用来发送图文的email,图片上传到本地服务器,但是email的图片地址要写上该服务器的远程地址(图片地址:例如:http://www.bai ...

  8. CKEditor上传视频(java)

    CKEditor上传视频 CKEditor批量上传图片flvplayer.swf播放器CKEditor整合包(v4.6.1) ------------------------------------ ...

  9. 富文本编辑器 CKeditor 配置使用 (带附件)

    Ckeditor下载地址:http://ckeditor.com/download 1.CKeditor的基本配置 var textval=CKEDITOR.instances.TextArea1.g ...

  10. ckeditor使用说明

      2015-08-17 15:42热心网友最快回答 一.使用方法:1.在页面<head>中引入ckeditor核心文件ckeditor.js<script type="t ...

随机推荐

  1. [转帖]各个版本Windows系统中自带的.NET Framework版本

    ① Windows Server : Windows Server版本 自带的.NET Framework 版本 Windows Server 2022 .NET Framework 4.8 Wind ...

  2. [转帖]Percolator分布式事务模型原理与应用

    https://zhuanlan.zhihu.com/p/59115828 Percolator 模型 Percolator[1] 是 Google 发表在 OSDI'2010 上的论文 Large- ...

  3. [转帖]CentOS7上systemctl的使用

    https://www.cnblogs.com/yeyuzhuanjia/p/14676182.html CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系 ...

  4. 申威下单盘SSD与四块盘RAID5的性能测试结果

    申威下单盘SSD与四块盘RAID5的性能测试结果 背景 背景不在说了 申威服务器.. 结论 天坑 做了raid写入性能下降明显. 充分怀疑驱动不行. 四快盘的raid5 跟单盘的读几乎没区别. 感觉这 ...

  5. [转帖]Linux下进程管理知识(详细)总结

    一.简介 本文主要详细介绍进程相关的命令的使用.进程管理及调度策略的知识. 二.常用的命令解析 1.ps命令 命令选项 解析 -a 显示一个终端所有的进程 -u 显示进程的归属用户和内存占用情况 -x ...

  6. [百度贴吧]部分CPU的SPEC2006int 结果

    这些测试成绩基本上是本人自己测试的结果.下表中有来自spec官网的两个成绩,因为测试年份较早,系统环境和编译器都较老,测试成绩本人实测的还差,所以仅作为参考.部分测试启用了自动并行和附加的优化库,是为 ...

  7. [转帖]RFC1180

    [译] RFC 1180:朴素 TCP/IP 教程(1991) 译者序 本文翻译自 1991 年的一份 RFC(1180): A TCP/IP Tutorial. 本文虽距今将近 20 年,但内容并未 ...

  8. 【OpenAI】ChatGPT函数调用(Function Calling)实践

    6月13日OpenAI在Chat Completions API中添加了新的函数调用(Function Calling)能力,帮助开发者通过API方式实现类似于ChatGPT插件的数据交互能力. 本文 ...

  9. 京东金融Android瘦身探索与实践

    作者:京东科技 冯建华 一.背景 随着业务不断迭代更新,App的大小也在快速增加,2019年~2022年期间一度超过了117M,期间我们也做了部分优化如图1红色部分所示,但在做优化的同时面临着新的增量 ...

  10. ILRuntime性能测试

    我们公司有一个Unity原生开发语言C#写的项目,目前已经在安卓测试过多次,上架IOS在考虑热更,所以对ILRuntim进行性能测试,在测试过程中已经按照官方文档进行了CLR绑定和生成Release的 ...