CodeMirror代码编辑器简介

CodeMirror简介:

CodeMirror是一款使用JavaScript实现,面向浏览器的多功能文本编辑器。

它专门用于代码的编辑,并附带了一些语言模式和插件来实现更加高级的编辑功能。

丰富的编程API和一个CSS主题化系统可用于定制CodeMirror以适合您的应用程序,并将其与新的功能扩展。

CodeMirror项目网站:https://codemirror.net/

CodeMirror的特性:

  • 支持超过60种编程语言
  • 强大的、可组合的语言模式系统
  • 自动补全(XML)
  • 代码折叠
  • 可配置的按键绑定
  • Vim与Emacs绑定
  • 搜索和替换接口
  • 括号和标签匹配
  • 支持分割视图
  • Linter集成
  • 混合的字体大小和样式
  • 多种主题
  • 能够调整大小以适应内容
  • 内联和块级部件
  • 可编程的gutters
  • 为一定范围的文本添加样式,设为只读,或者原子的
  • 双向文本支持
  • 许多其它的方法和插件

社区:

CodeMirror是一个使用MIT协议进行共享的开源项目。它被应用在Light Table, Adobe Brackets, Google Apps Script, Bitbucket 等许多其它项目当中。

开发和Bug跟踪使用github。使用pull请求来提交补丁。所有的代码贡献必须在CodeMirror所使用的MIT协议下发布。

项目讨论通过邮件列表来完成。同时也有一个codemirror-announce列表,它只用作发布重要的声明(比如新版本的发布)。如果需要,你可以直接联系维护人员。

未包含在主要发行版中而与CodeMirror相关的软件清单维护在我们的wiki上。你可以随时添加自己的项目

浏览器支持:

以下浏览器的桌面版本,在标准模式下(推荐使用HTML5<!doctype ...

继续阅读

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'之前才能正确加载模板文件