作者归档:在线疯狂

RSS feed of 在线疯狂

Highlightjs 8.0新特性

Highlightjs(下载地址:http://highlightjs.org/download/)是一款简单易用的语法高亮插件

它具有如下特征:

  • 支持71种语言和44种样式
  • 自动化语言侦测判别
  • 多语言代码高亮
  • node.js可用
  • 可以与markup一同使用
  • 兼容所有的js框架

Highlightjs于2014-01-08发布了8.0版。这个发行版提供了一些崭新特性的同时,将不再向后兼容某些旧版本中存在的特征。
不过,大多数用户应当不会受到这些向后不兼容特性的影响:自述文件中描述的基本使用场景依旧保持不变。

不再向后兼容的特性:

现在默认对CSS类引用中的所有类加上了hjls前缀,因为其中的一些类名可能会与其它的样式表发生冲突。
如果你使用的是highlightjs的老版本,也许想要升级highlight的同时依旧保留其原来的行为。
为了抑制这些新的特性,你可能需要这样进行初始化:

<script type="text/javascript">
  hljs.configure({classPrefix: ''});
  hljs.initHighlightingOnLoad();
</script>

曾经在不同位置使用的TabReplace与useBR现在统一放在了global options对象中,使用configure(options)方法进行配置,这个函数已在API文档中列出。
同时需要注意的是,这些参数从highlightBlock与fixMarkup中移除,现在也依赖于configure进行配置。

我们移除了public-facing对象(尽管没有在文档中列出)hljs.LANGUAGES,它曾经被用来注册语言,取而代之的是两个新方法:registerLanguage和getLanguage。
它们都已经在API文档中列出。

从highlight和highlightAuto返回的结果不在包含两个单独的属性relevance和keyword_count来计算相关性评分,它们现在统一被relevance所取代。

一个技术上兼容的变更可能也值得注意一下:

NPM包的结构已经被重构,因此如果你已经在本地安装了这个包,你将不得不更新你的路径。require(‘highlight.js’)像以前一样工作。这归功于Dmitry Smolin。

新特性:

编程语言现在可以通过同种名称进行识别,如”js”代表Javascript,”html”代表HTML(早些时候坚持称其为”xml”)。这些别名既可以在HTML代码容器的类属性指定,也可以使用各类API调用进行指定。虽然现在只有一些非常通用的别名,但是我们会在将来对它们进行扩展。这些别名均在[class reference][]中列出。

语言定义语法精简为variants和beginKeywords。

新的语言和样式:

继续阅读

tinymce4.0添加自定义表情

tinymce 4.0自带了16个表情

我们可以使用一种Hack的方式为tinymce添加自定义gif格式的表情

步骤如下:

1. 在tinymce/plugins/emoticons/img目录下添加格式为gif的表情图片

2. 在tinymce.js(tinymce.min.js)中找到包含["cool","cry","embarassed","foot-in-mouth"]的list变量

3. 将新添加的自定义表情图片的文件名以列表的形式插入步骤2找到的list中

效果如下图所示:

截图如下:(在默认表情列表前添加了4个新表情)

自定义表情

Django Zinnia文本编辑器简介

Django Zinnia(v0.13)提供了对3款文本编辑器的支持,分别是wymeditor,tinymce以及markitup,其中wymeditor是缺省编辑器。

WYMeditor 是一个基于Web浏览器的可视化HTML编辑器,界面如下图所示:

WYMeditor

markItUp! 并不是全功能的编辑器,它是一个非常轻量级、可定制的灵活引擎,适合 CMS、博客、论坛等网站。makrItUp 并不是所见即所得的,以后也不会是。

markItUp

TinyMCE是一个轻量级的基于浏览器的所见即所得编辑器,支持目前流行的各种浏览器,由JavaScript写成。功能配置灵活简单(两行代码就可以将编辑器嵌入网页中),支持AJAX。另一特点是加载速度非常快,如果你的服务器采用的脚本语言是 PHP,那还可以进一步优化。最重要的是,TinyMCE是一个根据LGPL license发布的自由软件,你可以把它用于商业应用。OSChina采用的就是TinyMCE编辑器,下图是此编辑器最新版本(v4.0)的界面:

TinyMCE4

遗憾的是,Zinnia v0.13默认通过django-tinymce进行集成,而django-tinymce当前的主干版本使用的是tinymce3.0(django tinymce4.0尚在开发过程中),如下图所示

TinyMCE3

Django Zinnia博客更换Bootstrap主题

Bootstrap是Twitter推出的一个开源的前端开发工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,由动态CSS语言Less写成,在业界享有很高的知名度。

Django Zinnia博客提供了一套基于Bootstrap 3的模板主题zinnia-theme-bootstrap,可以很方便地集成Bootstrap的主题风格。

zinnia-theme-bootstrap主题安装的前置依赖条件见下表:

前置依赖 URL
six https://pypi.python.org/pypi/six
django-app-namespace-template-loader https://github.com/Fantomas42/django-app-namespace-template-loader

1. 下载上述源码包,分别将zinnia_bootstrap目录six.py以及app_namespace目录拷贝至django web工程根目录下

2. 修改settings.py,在TEMPLATE_LOADERS列表中添加'app_namespace.Loader'

3. 修改settings.py,在INSTALLED_APPS列表中添加'zinnia_bootstrap'

注:此项一定要添加在'zinnia'之前才能正确加载模板文件

书影博客搭建历程

2014/2/4

在Github上找到Zinnia项目,完成本地调试

2014/2/5

Zinnia v0.13成功部署至SAE,使用默认编辑器转载了数篇日志,但默认编辑器易用性不太理想 %>_<%

2014/2/6

1. 修改了书影博客的编辑器,从默认编辑器变更为django-tinymce

2. 修改了书影博客的主题,从默认主题变更为zinnia-theme-bootstrap

2014/2/8

1. 更新了tinymce的版本(从3.0到4.0),集成了codemirror代码高亮插件

2. 使用highlight.js做代码高亮显示

2014/2/9

添加了fancybox插件

2014/2/25

使用zinnia-threaded-comments为comment添加reply功能,并修改了template使之适应bootstrap的风格

2014/3/26

首次备案申请被驳回

2014/4/11

二次备案申请通过

2014/6/4

集成了多说评论框

2015/09/03

将Zinnia版本更新为0.15.2,Django版本更新为1.8.4