Django1.9开发博客(11)- 富文本与代码高亮
TinyMCE是一个轻量级的基于浏览器的所见即所得编辑器,支持目前流行的各种浏览器,由JavaScript写成。 功能配置灵活简单(两行代码就可以将编辑器嵌入网页中),支持AJAX。另一特点是加载速度非常快。
django里引用TinyMCE富文本编辑器,其实很简单,前提是你知道django的静态文件配置。 其实这个我已经在前面文章提到过,可以回去再看看。
TinyMCE的官方网站是:http://www.tinymce.com/
下载地址:http://download.moxiecode.com/tinymce/tinymce_4.1.9.zip
TinyMCE的最新版本是4.1.9,下面是官网截屏:

下载下来后,我们把它解压到工程的static/目录下面,如下图所示:

安装原理
安装的原理很简单,只需要在使用编辑器的页面里引用tinymce.min.js文件并初始化就可以了。 tinymce.min.js文件在tinymce项目里, tinymce.min.js会根据初始配置里的信息找到需要用编辑器的html节点。
例如在post_edit.html页面使用编辑器,只需要在模板文件写下:
1 |
{% load staticfiles %}
|
这段代码的含义是 初始化 tinyMCE编辑器,selector指需要将编辑器显示在html那个标签节点, 这里选了textareas。则表示会变成编辑器所在的位置。
另外,我还自定义一下编辑器的高度、插件、菜单项目等。具体详细配置请参考官方文档,写的都比较清楚。
给TinyMCE增加一个addmore插件
需求很简单,就是每次我写文章的时候需要插入某个<!--more-->标签, 这样可以在列表页面先只显示文章的一部分,然后碰到这个more标签就显示一个”点击阅读更多”的链接。
第一步,在tinymce/plugins文件下新增一个addmore文件夹,然后在里面新建一个plugin.min.js文件, 内容如下:
1 |
tinymce.PluginManager.add("addmore", function (a) {
|
在post_edit.html中修改tinymce.init方法,plugins项目后面添加一个addmore:
...
plugins: [
"advlist autolink lists link image charmap print preview anchor sh4tinymce upload",
"searchreplace visualblocks code fullscreen",
"insertdatetime table contextmenu paste addmore"
],
...
再看看效果,没问题了。
SyntaxHighlighter代码高亮
程序员写博客当然少不了代码高亮,这个功能页很容易实现。有一款插件叫SyntaxHighlighter值的推荐。
项目主页:http://alexgorbatchev.com/SyntaxHighlighter/
下载地址:http://alexgorbatchev.com/SyntaxHighlighter/download/download.php?sh_current
下载下来后直接解压到static/目录下面,这个跟tinymce是一样的原理。
使用方法
只需要修改django页面的基础模板就行了,非常简单。
打开mysite/templates/mysite/base.html页面,引入syntaxhighlighter:
1 |
{% load staticfiles %}
|
由于我们之前已经安装过了TinyMCE,这个跟它结合起来就非常好用了,因为TinyMCE自带有选择代码语言功能。
下面是我创建文章时,插入了一段python代码的示例:

这个是保存后的效果:

最后一件事
别忘了部署到Heroku上面和别人分享你的成果。
OK,到此为止,前台的各种功能已经差不多了,你能一直坚持学到这里很不错了,为你自己鼓掌吧。
后面还有一个重头戏,就是django的后台管理,我选择了更美观更好用的xamdin,敬请期待…
Django1.9开发博客(11)- 富文本与代码高亮的更多相关文章
- Django1.7开发博客
转自: http://www.pycoding.com/articles/category/django 基于最新的django1.7写的,通俗易懂,非常适合新手入门. 感谢博主! 参考教程: htt ...
- HelloDjango 第 09 篇:让博客支持 Markdown 语法和代码高亮
作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 为了让博客文章具有良好的排版,显示更加丰富的格式,我们使用 Markdown 语法来书 ...
- Django1.9开发博客(14)- 集成Xadmin
xadmin是一个django的管理后台实现,使用了更加灵活的架构设计及Bootstrap UI框架, 目的是替换现有的admin,国人开发,有许多新的特性: 兼容 Django Admin 使用 B ...
- Django1.9开发博客(12)- i18n国际化
国际化与本地化的目的为了能为各个不同的用户以他们最熟悉的语言和格式来显示网页. Django能完美支持文本翻译.日期时间和数字的格式化.时区. 另外,Django还有两点优势: 允许开发者和模板作者指 ...
- Django1.9开发博客(8)- 继续完善
到现在为止我们已经完成的差不多了,并且基本的东西都已经学到了,是时候用起来了. 我们的博客还有很多功能需要完善,下面抛砖引玉新增几个功能,还有其他功能等你自己去发现和实现. 草稿箱 之前我们新建文章的 ...
- Django1.9开发博客(7)- 实现功能
到目前为止我们已经完成了一个django应用的所有基础部分. 包括url配置.视图.模型和模板.接下来开始继续完善我们的博客系统了. 首先我们需要一个显示每篇文章的详细页面,对不? 文章详情 对于首页 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 数据访问和代码优先
上一篇文章(https://www.cnblogs.com/meowv/p/12909558.html)完善了项目中的代码,接入了Swagger.本篇主要使用Entity Framework Core ...
- [技术博客]React Native——HTML页面代码高亮&数学公式解析
问题起源 原有博文显示时代码无法高亮,白底黑字的视觉效果不好. 原有博文中无法解析数学公式,导致页面会直接显示数学公式源码. 为了解决这两个问题,尝试了一些方法,最终利用开源类库实现了页面美化. (失 ...
- Django1.9开发博客(13)- redis缓存
Redis 是一个高性能的key-value数据库.redis的出现, 很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用. 它提供了Pyth ...
随机推荐
- HTML5革命即将爆发
近日,关于"HTML5生态重建冷思考"成为了很多人热烈讨论的话题.在网页制作市场上面,HTML5技术成为了颇为关注的焦点,在行业和社会各界引起了广泛的关注.HTML5网页制作也创造 ...
- Unit01-OOP-对象和类(上)
Unit01-OOP-对象和类(上) 1.什么是类?什么是对象? 1)现实生活是由很多很多对象组成的 基于对象抽出了类 2)对象:真实存在的单个的个体 类:类型.类别,代表一类个体 ...
- 以Debug模式启动JBoss
JBoss服务器的启动方法: 假设JBoss的安装目录为$JBOSS_HOME,Windows以及Linux环境下的Debug模式的启动方法分别为:Windows环境:找到Windows下的JBoss ...
- [BS-27] 创建NSURL的几个方法的区别
创建NSURL的几个方法的区别 URL的基本格式 = 协议://主机地址/路径 URL和Path的区别 * URL:统一资源定位符,格式 “协议+主机名称+路径” 例如:[NSURL UR ...
- jq数组,得到遍历生成的id后面的id
//商品选择完成跳转到提交订单页面 function orderDetails(){ var shopCarIds = [];//存放商品的数组 var objs = []; objs = $(&qu ...
- 学习OpenCV——Surf简化版
之前写过一遍关于学习surf算法的blog:http://blog.csdn.net/sangni007/article/details/7482960 但是代码比较麻烦,而且其中还涉及到flann算 ...
- [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- OpenWrt——神奇的路由系统
鉴于最近大家对这个系统比较感兴趣而且疑问很多所以本渣就整理下我对这个系统的理解和最实用的802.1x认证的理解.还望大家多多互相交流. 如果您时间紧张直接看最后的步骤,时间充裕的请仔细阅读,理解. O ...
- HttpClient_001_初步实现项目01的servlet,与项目02的servlet,之间数据访问
HttpClient_001_初步实现项目01的servlet,与项目02的servlet,之间数据访问 代码下载地址: http://download.csdn.net/detail/poiuy19 ...
- paper 99:CV界的明星人物经典介绍
CV人物1:Jianbo Shi史建波毕业于UC Berkeley,导师是Jitendra Malik.其最有影响力的研究成果:图像分割.其于2000年在PAMI上多人合作发表”Nor ...