我的网站搭建: (第十天) Ueditor后台编辑器

news/2024/5/20 13:00:32/文章来源:https://blog.csdn.net/weixin_33724570/article/details/89664144

    之前说过,我的网站编辑器一开始是tinymce,然后才用的ckeditor。可是最近我发现,ckeditor的小图标不是很美观,看久了有点low的样子。我是不是应该换一个编辑器呢,一想到这里,马上打开谷歌搜索有没有更加美观的富文本编辑器。翻了几页发现,才发现百度Ueditor编辑器就很不错,其实之前我就了解过,但是并没有学习去怎么使用,这回好了,换个富文本编辑器顺便把Ueditor给学会了

安装及使用

1.Ueditor其实对python2和python3有一定的区别,在写程序时想通过Django的form表单顺便把评论框也改成Ueditor,但是没有将其实现却发现了错误提示为:

from widgets import UEditorWidget,AdminUEditorWidget 
ImportError: No module named ‘widgets’

    经查发现,DjangoUeditor是基于Python 2.7的,对Python3的支持有问题。导致widgets.py文件出错,不能import,解决方法可以修改widgets.py或者采用网上修改好的版本DjangoUeditor3,github就有很多Ueditor的代码,有些不能直接使用,可能太久没更新了吧,然后才找到了:https://github.com/twz915/DjangoUeditor3

2.使用git下载后,输入如下命令将源码安装到Python路径中

python3 setup.py install

3.将DjangooUeditor添加到Django的INSTALLED_APPS中

4.在blog下的models.py文件导入

from DjangoUeditor.models import UEditorField# 将之前ckeditor
body = RichTextUploadingField()# 改为
body =  UEditorField(u'内容',width=1100, height=300, toolbars="full", imagePath="images/", filePath="files/", upload_settings={"imageMaxSize":1204000},)

5.进入admin后台管理页面,可以看到这时编辑器已经换了个装

6.去掉百度编辑器 ueditor 元素路径、字数统计等

    在百度编辑器 ueditor 根目录下: ueditor.config.js 文件中

    搜索并将参数elementPathEnabled设置成false即可

    常用功能开关如下:

  • ,elementPathEnabled : false  //是否启用元素路径,默认是true显示

  • ,wordCount:false          //是否开启字数统计

  • ,autoHeightEnabled:false  // 编辑器内容,是否自动长高,默认true

  • ,fullscreen : false //是否开启初始化时即全屏,默认关闭

7.图标对比

    ckeditor是这样的

2018-08-06 20-50-49屏幕截图.png

    ueditor是这样的

2018-08-07 09-40-01屏幕截图.png

代码高亮

1.为了这个代码高亮可是浪费了我不少时间,一开始是发现在DjangoUeditor/staticueditor/thirdd-party/SyntaxHighlighter文件夹中有shCoreDefault.css和shCore.js这两个文件的,网上也有很多文章说了可以在详情页添加下面三个标签

    运行完后,发现的确有些效果,可是伴随着还有另外三个问题

    一个是代码之间的行距和字体太小,不便于代码的阅读,通过对网页元素进行分析,我找到了shCoreDefault.css文件中的两个属性,通过文件搜索找出来将它们注释就可以解决了

line-height: 1.1em!important;
font-size: 13px!important;

    如果说上面的问题还能接收,第二个问题就完全不适应了,那就是行号与代码不匹配,经常在代码的两头空出多行是没有注明行号的,看着很不习惯

    还有第三个问题,代码过长的情况下,不能自动换行,就导致代码块容易超出父容器宽度。网上的解决办法都是在shCoreDefault.css文件中通过ctrl+F查找:.syntaxhighlighter{,然后在括弧中加入样式:word-break:break-all,这个有效果,已经测试过了,但是第二个问题实在能力有限,无法解决,被迫放弃使用DjangoUeditor中的css样式

2.放弃DjangoUeditor的自带样式后,又找到了第二条路,那就是使用Hlightjs,我想要的是类似github上的那种白色背景的代码高亮显示,幸运的是Hlightjs插件提供了太多太多的代码样式。我参考的文章地址:https://blog.csdn.net/msllws/article/details/81048390

3.在官网https://highlightjs.org/download/下载好Hlightjs插件后,与之前使用SyntaxHighlighter类似,添加下面三个标签

<!-- foundation.css文件就是我选择的代码样式 -->
<link rel="stylesheet" type="text/css" href="{% static 'blog/css/foundation.css' %}">
<script type="text/javascript" src="{% static 'blog/js/highlight.pack.js' %}"></script>
<script>hljs.initHighlightingOnLoad();</script>

    这个时候,还无法正常显示,因为代码高亮遵循的格式是:<pre><code>代码</code></pre>而百度编辑器默认的代码块显示格式为:<pre>代码</pre>,所以还需要再写上一个script,添加在body下面

<script type="text/javascript">var allpre = document.getElementsByTagName("pre");for(i = 0; i < allpre.length; i++){var onepre = document.getElementsByTagName("pre")[i];var mycode = document.getElementsByTagName("pre")[i].innerHTML;onepre.innerHTML = '<code id="mycode">'+mycode+'</code>';}
</script>

    这个时候已经能看出代码样式发生改变了,但是没有行号,所以还要给代码加上行号,先创建一个code.css文件,里面包含了code代码块行号的样式效果

pre {position: relative;padding: 0;/*margin-bottom: 24px;*/border-radius: 3px;border: 1px solid #C3CCD0;background: #FFF;overflow: hidden;font-size: 14px;
}
code {display: block;padding: 18px 24px;overflow-y: auto;font-weight: 300;font-family: Menlo, monospace;font-size: 14px;
}code.has-numbering {margin-left: 30px;
}.pre-numbering {position: absolute;top: 0;left: 0;width: 30px;padding: 8px 5px 5px 0;border-right: 1px solid #C3CCD0;border-radius: 3px 0 0 3px;background-color: #f5f5f5;text-align: right;font-family: Menlo, monospace;font-size: 14px;color: #8c8c8c;
}
    将上面的行号样式通过javascript绑定到每个li元素上
<script type="text/javascript">$(function(){$('pre code').each(function(){var lines = $(this).text().split('\n').length - 1;var $numbering = $('<ul/>').addClass('pre-numbering');$(this).addClass('has-numbering').parent().append($numbering);for(i=1;i<=lines+100;i++){$numbering.append($('<li/>').text(i));}});});
</script>

    完成后,就已经实现Ueditor+Hightjs的代码高亮了

4.代码高亮对比

    Ckeditor是这样的

2018-08-06 20-47-16屏幕截图.png

     Ueditor是这样的

2018-08-07 15-21-17屏幕截图.png

其他常见问题

 

1.此时可能还会出现编辑框内图片无法正常缩放,是因为页面上引入了Bootstrap,而Bootstrap默认将box-sizing样式统一设成border-box了,在ueditor.min.css中加入如下代码,就算是填坑成功

.edui-container *{-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}
.edui-container *:before,.edui-container *:after {-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}

2.在css中可能出现长串字母或者数字不会自动换行的问题,在对应css中加:

word-break: break-all;

3.因为在编辑文章的时候,上传图片的宽度是用px来表示的,这就有可能导致图片宽度超出父容器宽度,所以需要重新对img元素进行宽度重定义

#post-body img{max-width: 100%;
}

4.在编辑超链接内容时可以发现,在移动端或者宽度很窄的显示屏上,a标签元素也常常超出容器宽度之外,这是因为ueditor对长字母或者长数字不会自动换行导致的,所以需要设置自动换行

#post-body a{word-break: break-all;
}

5.用过ueditor的人都知道,还有一个常见问题就是在编辑器下使用的表格可以被预览,但是内容发布之后,在网页显示中是看不见边框的。网上很多人大都提议取修改ueditor.all.js或者ueditor.all.min.js,但是我按照那个方法行不通,不知道是哪里还出了错,所以我就直接用最粗暴的方式,在详情页中的样式加上

#post-body table, #post-body tr, #post-body td{border: 1px solid #000;max-width: 100%;
}

    最后,实在没想到换个富文本编辑器会弄出这么多问题,学习之路,最难也是最让人愉悦的,也只有学习才是生活

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_803601.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java Web性能测试 - 动态网站测试脚本录制

Java Web性能测试 - 动态网站测试脚本录制 本章讲解使用Badboy对网站的请求进行录制&#xff0c;录制完成的脚本文件可以直接用JMeter使用&#xff0c;免去在JMater中进行配置的时间。 使用Badboy录制基本的目的就是减少我们在使用JMeter测试WEB项目时&#xff0c;一个一个Url…

Java Web项目性能测试 - JMeter测试网站吞吐量、反应时间百分比、流量

Java Web项目性能测试 - JMeter测试网站吞吐量、反应时间百分比、流量 为了衡量、调整、完成Java Web项目的性能指标&#xff0c;满足客户、用户对性能的要求&#xff0c;保证项目上线后能正常运行&#xff0c;以及了解项目的性能指标&#xff0c;为项目性能监控做参考&#x…

Java图片水印生成器代码 - 批量给自己的网站图片加水印

Java图片水印生成器代码 - 批量给自己的网站图片加水印 最近在做一款APP&#xff0c;App中的图片是自己一个个的画出来的&#xff0c;为了保证图片不被盗用和处理&#xff0c;所以就需要加上水印防盗。这跟CSDN一样。 注意事项&#xff1a;1. 我是在window7 eclipse 下完成的…

阿里云云虚拟主机上个人网站的Https访问配置

本文基于阿里云云虚拟主机,我个人网站是基于Hexo博客系统搭建的静态网站,所以搭建Https相对方便 一、获取HTTPS安全证书 在操作之前&#xff0c;请将你的域名的隐私保护去掉&#xff0c;让证书服务商能通过域名解析查看到域名管理者的邮箱&#xff0c;否则验证证书时会无法进行…

阿里云服务提供商分享视频直播网站服务器解决方案

大家应该都听过抖音、西瓜视频这类的视频网站&#xff0c;而且这些视频网站深受大家喜爱。直播模式也如雨后春笋一般快速出现&#xff0c;电商直播也逐渐火热。因此很多视频类公司纷纷搭建视频直播平台&#xff0c;那么这类网站的服务器该如何选择呢&#xff1f;下面就由阿里云…

使用Charles代理工具导致电脑无法正常访问网站(您的连接不是私密连接)

很多开发者都需要使用代理工具来调试接口&#xff0c;查看数据等等&#xff0c;但是有时候发现打开代理工具之后&#xff0c;代理工具同时也拦截了电脑的所有网络请求&#xff0c;导致电脑访问网站时提示&#xff08;您的连接不是私密连接&#xff09;。。。 造成这种问题的原因…

大型网站技术架构(七)网站的可扩展性架构

2019独角兽企业重金招聘Python工程师标准>>> 扩展性是指对现有系统影响最小的情况下&#xff0c;系统功能可持续扩展或提升的能力。 设计网站可扩展架构的核心思想是模块化&#xff0c;并在此基础上&#xff0c;降低模块间的耦合性&#xff0c;提供模块的复用性。模…

新书推荐:网站交互设计模式

新书推荐&#xff1a;网站交互设计模式【作  者】(美)Douglas K.Van Dugne;James A.Landay;Jason I.Hong [同作者作品] [作译者介绍] 【译  者】 孙昕;焦洪[同译者作品] 【出 版 社】 电子工业出版社 【书 号】 9787121092046 【上架时间】 2009-7-24 【出版日期】…

html5游戏网站欣赏,70多个HTML5网站设计欣赏

70多个HTML5网站设计欣赏7月 6, 2011评论SponsorHTML5网站确实很不错&#xff0c;能帮助设计师解决很多美化问题外&#xff0c;还能提高更好的用户体验&#xff0c;制作出高效的网站&#xff0c;所以我们应该开始学习CSS3和HTML5这些技术了&#xff0c;不要老是被国外超越我们&…

高并发、高可用、大数据量网站系统演化

一、初始阶段的网站架构 应用程序、数据库、文件等所有资源都在一台服务器上 二、应用服务和数据库服务分离 整个网站使用三台服务器&#xff1a;应用服务器、文件服务器、数据库服务器 应用服务器需要更强大的CPU 文件服务器需要更大的磁盘空间 数据库服务器需要更快的硬盘和更…

WordPress网站漏洞利用及漏洞修复解决方案

2019年正月刚开始&#xff0c;WordPress最新版本存在远程代码注入获取SHELL漏洞&#xff0c;该网站漏洞影响的版本是wordpress5.0.0&#xff0c;漏洞的产生是因为image模块导致的&#xff0c;因为代码里可以进行获取目录权限&#xff0c;以及文件包含功能&#xff0c;导致远程代…

docker容器源码部署httpd,用存储卷部署网站

docker容器源码部署httpd&#xff0c;用存储卷部署网站 创建一个httpd镜像 // 创建一个httpd容器 [rootlocalhost ~]# docker run -tid --name httpd centos 2d693e16f4f3734b127cbae90d189c1b4e78619a54ceec912a82d96cf4f1c345 [rootlocalhost ~]# docker ps CONTAINER ID …

java jsoup爬取动态网站_java笔记|爬取华软mysise所有课程信息

本次内容&#xff1a;使用java爬取网页数据&#xff0c;并进行数据清洗&#xff0c;熟悉爬取操作&#xff1b;爬取华软课程信息&#xff1a;http://class.sise.com.cn:7001/sise/index.jsp//源码package com.sise.studentInfoSystem.demo;import com.sise.studentInfoSystem.be…

win7关于无线连接的服务器,win7怎样解除无线连接限制_网站服务器运行维护,win7,无线连接...

win10系统如何重置密码_网站服务器运行维护win10系统重置密码的方法是&#xff1a;1、右键点击开始图标&#xff1b;2、在弹出的选项列表中&#xff0c;点击选项【Windows PowerShell(管理员)】&#xff1b;3、执行命令【net user 用户名 新密码】即可。win7解除无线连接限制的…

网站服务器和seo,网站所在服务器与网站SEO排名之间的关系

想让你的网站在搜索引擎中获得好的排名&#xff0c;得到更多的客户认可。作为一个合格的SEOer&#xff0c;你就得把网站服务器作为一个重要事项来做。大家都知道网站是由域名、服务器及页面文件组成的&#xff0c;从这个你也就可以看出服务器的重要性。SEO优化包含的面非常广&a…

java 热点词排名_利用seo技术排名热点新闻词引流(日IP增加2万+)

一个很普通的热点&#xff0c;很容易被各大媒体平台炒到高流量&#xff0c;所以很多人希望能够通过新闻热点来蹭到一部分流量&#xff0c;但大多数的情况下&#xff0c;百度上的新闻热点内容都被大平台拿走了&#xff0c;咱们今天也来教教大家&#xff0c;如何拿到一部分热点流…

调试-Chrome删除某个特定网站的Cookie

方法1 设置 → 高级 → 隐私设置和安全性 → 网站设置 → Cookie和网站数据 → 查看所有Cookie和网站数据 方法2 设置 → 搜索框中输入“Cookie”→ 根据提示一个个点开选项卡找即可

一个可以动态创建响应动画GIF的网站,AjaxLoad

呵呵&#xff0c;使用Ajax做Web开发的必备品看看样式&#xff1a;呵呵&#xff0c;还有许多样式&#xff0c;如果你想要&#xff0c;可以到这个网站自己生成喔http://www.ajaxload.info/ 转载于:https://www.cnblogs.com/fengmk2/archive/2006/10/21/535988.html

服务器搭建个人网站(阿里云服务器)

服务器搭建个人网站 一丶购买服务器 这里我选的是阿里云服务器&#xff0c;进入阿里云官网阿里云-上云就上阿里云 阿里云提供了几种服务器&#xff0c;云服务器ESC、轻量应用服务器&#xff0c;ESC更好一点儿&#xff0c;我选了轻量级应用服务器。购买好了之后&#xff0c;在…

每天第一个登录sharepoint 网站的人

在IIS里面设置下&#xff1a; 1.找到你的sharepoint站点对应的应用程序池&#xff1b; 2.设置这个应用程序池的回收时间。 不想每天早上速度慢&#xff0c;就取消回收啦。呵呵&#xff01; 远程桌面连接-148.71-666666-开始程序-IIS管理器-Internet信息服务-应用程序池-ShareP…