整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Ruby on Rails 作者的 WYSIWYG

Ruby on Rails 作者的 WYSIWYG 编辑器 Trix 火了!

家好,很高兴又见面了,我是"高级前端?进阶?",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。

1.什么是 Trix

Trix is a WYSIWYG editor for writing messages, comments, articles, and lists—the simple documents most web apps are made of. It features a sophisticated document model, support for embedded attachments, and outputs terse and consistent HTML.

Trix 是用于日常写作的富文本编辑器,在 Web 应用程序中撰写格式精美的文本。 同时,Trix 是一个所见即所得(即,WYSIWYG)的编辑器,用于编写消息、评论、文章和列表等,而大多数 Web 应用程序都是由这些简单文档组成的。 Trix 具有复杂的文档模型、对嵌入附件的支持以及输出简洁且一致的 HTML。

Trix 是 Ruby on Rails 的创建者 37signals 的开源项目。Ruby on Rails 是一个全栈框架,附带了在前端和后端构建令人惊叹的 Web 应用程序所需的所有工具。

当 Trix 于 2014 年设计时,大多数 WYSIWYG 编辑器都是 HTML 的 contenteditable 和 execCommand API 的包装器,这些 API 由 Microsoft 设计,用于支持 Internet Explorer 5.5 中的网页实时编辑,并最终被其他浏览器进行逆向工程和复制。

<blockquote contenteditable="true">
  <p>Edit this content to add your own quote</p>
</blockquote>
<cite contenteditable="true">-- Write your own name here</cite>

由于这些 API 没有完全确定和标准化,因此每个浏览器的实现都有自己的一组错误和怪癖,JavaScript 开发人员需要解决这些不一致之处。

Trix 通过将 contenteditable 视为 I/O 设备来避免这些不一致,即当用户输入到达编辑器时,Trix 将该输入转换为其内部文档模型上的编辑操作,然后将该文档重新渲染回编辑器。 这使 Trix 可以完全控制每次击键后发生的情况,并且根本不需要使用 execCommand。

bool=document.execCommand(aCommandName, aShowDefaultUI, aValueArgument)
// 注意:该方法也已经废弃

最终,这种方法也成为所有现代所见即所得编辑器的常用方法。

目前 Trix 在 Github 通过 MIT 协议开源,有超过 18.3k 的 star、1.1k 的 fork、11.9k 的项目依赖量、代码贡献者 100+,妥妥的前端优质开源项目。

2.如何使用 Trix

2.1 安装与使用

Trix 以 ESM 和 UMD 格式打包在一起,可与任何资源打包工具配合使用。 开始使用 Trix 的最简单方法是将其从 npm CDN 包含在页面的 <head> 中:

<head>
  …
  <link rel="stylesheet" type="text/css" href="https://unpkg.com/trix@2.0.8/dist/trix.css">
  <script type="text/javascript" src="https://unpkg.com/trix@2.0.8/dist/trix.umd.min.js"></script>
</head>

当然,开发者也可以通过 NPM、yarn 等包管理工具进行下载和使用:

import Trix from "trix"

document.addEventListener("trix-before-initialize", ()=> {
  // 这里可以修改 Trix.config 的配置
})

开发者需要在页面上放置一个空的 <trix-editor></trix-editor> 标记,Trix 会在编辑器之前自动插入一个单独的 <trix-toolbar>。

与 HTML <textarea> 一样,<trix-editor> 接受 autofocus 和 placeholder 属性,但是与 <textarea> 不同 <trix-editor> 自动垂直扩展以适应其内容。

2.2 其他特性

Trix 编辑器支持无限制的撤消和重做,连续的输入和格式更改会以五秒的间隔合并在一起,所有其他输入更改都单独记录在撤消历史记录中。

element.editor.undo()
element.editor.redo()

Trix 还支持使用 JSON.stringify 序列化编辑器的状态,并使用 editor.loadJSON 方法恢复保存的状态。序列化状态包括文档和当前选择,但不包括撤消历史记录。

// 将编辑器状态存储在localStorage中
localStorage["editorState"]=JSON.stringify(element.editor)

// 从localStorage重新获取编辑器状态
element.editor.loadJSON(JSON.parse(localStorage["editorState"]))

Trix 支持将格式设置应用于当前选择,可以使用 editor.activateAttribute 方法:

element.editor.insertString("Hello")
element.editor.setSelectedRange([0, 5])
element.editor.activateAttribute("bold")

更多关于 Trix 的用法可以参考文末资料,本文不再过多展开。

参考资料

https://github.com/basecamp/trix

https://trix-editor.org/

https://www.bypeople.com/trix-rich-text-editor-for-everyday-writing/

https://www.youtube.com/watch?v=ZMcejBBDz4E

文本编辑器,Rich Text Editor, 简称 RTE, 它提供类似于 Microsoft Word 的编辑功能,容易被不会编写 HTML 的用户并需要设置各种文本格式的用户所喜爱。它的应用也越来越广泛。

1、UEditor---百度编辑器

网址:http://ueditor.baidu.com/website/

UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。

UEditor推出后帮助网站开发者在开发富文本编辑器所遇到的难题,节约开发时间,有效降低了开发成本。

2、CKEditor 和 FCKeditor

网址:http://ckeditor.com/

CKEditor是新一代的FCKeditor,是一个重新开发的版本。CKEditor是全球最优秀的网页在线文字编辑器之一,因其惊人的性能与可扩展性而广泛的被运用于各大网站。它志于轻量化,不需要太复杂的安装步骤即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的编程语言相结合。

3、KindEditor

网址:http://kindeditor.net/

KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。 KindEditor 使用 JavaScript 编写,可以无缝地与 Java、.NET、PHP、ASP 等程序集成,比较适合在 CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用。

主要特点:

快速:体积小,加载速度快

开源:开放源代码,高水平,高品质

底层:内置自定义 DOM 类库,精确操作 DOM

扩展:基于插件的设计,所有功能都是插件,可根据需求增减功能

风格:修改编辑器风格非常容易,只需修改一个 CSS 文件

兼容:支持大部分主流浏览器,比如 IE、Firefox、Safari、Chrome、Opera

4、TinyMCE

网址:https://www.tinymce.com/

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

5、Simditor

网址:http://simditor.tower.im/

Simditor 是团队协作工具 Tower 使用的富文本编辑器。Tower 认为,作为一款在线生产力工具,让用户能极其舒畅地生产内容是它的核心品质之一,因此决定自己开发一款编辑器,这就是 Simditor 产生的原因。Simditor的理念是保持简单,避免过度的功能,每一个特性都追求极致的用户体验。同时,Simditor也很容易扩展。

主要特点:

功能精简,加载快速

输出格式化的标准 HTML

每一个功能都有非常优秀的使用体验

兼容的浏览器:IE10+、Chrome、Firefox、Safari

6、eWebEditor

网址:http://www.ewebeditor.net/

eWebEditor是基于浏览器的、所见即所得的在线HTML编辑器。她能够在网页上实现许多桌面编辑软件(如:Word)所具有的强大可视编辑功能。WEB开发人员可以用她把传统的多行文本输入框<TEXTAREA>替换为可视化的富文本输入框,使最终用户可以可视化的发布HTML格式的网页内容。

7、wangEditor

网址:http://www.wangeditor.com/

wangEditor的定位是做最简单、易用、快捷、轻量化的富文本编辑器。基于javascript和css开发的开源免费Web富文本编辑器。它经历了两次代码重构和五次UI升级。配置方便,使用简单。支持 IE10+ 浏览器。

8、xhEditor

网址:http://xheditor.com/

xhEditor是一个基于jQuery开发的简单迷你并且高效的在线可视化HTML编辑器。

xhEditor完全基于Javascript开发,您可以应用在任何的服务端语言环境下。

xhEditor可以在CMS、博客、论坛、商城等互联网平台上完美的嵌入运行,能够非常灵活简单的和您的系统实现完美的无缝衔接。

自2009年4月首个版本发布以来,凭借我们人性化的用户体验和不断持续完善的态度,越来越多的网站选择了使用xhEditor。

主要特点:

精简迷你:初始加载65k。若gzip压缩传输,缩减为24k左右。

使用简单:简单的调用方式,就能将您的textarea立马变成一个可视化编辑器。

无障碍访问:提供WAI-ARIA全面支持,全程语音向导,让残疾人也能使用。

内置Ajax上传:内置强大的Ajax上传,剪切板上传及远程抓取上传。

Word自动清理:实现Word代码自动检测并清理。

UBB可视化编辑:提供完美的UBB可视化编辑解决方案。

9、bootstrap-wysiwyg

网址:http://www.bootcss.com/p/bootstrap-wysiwyg/

为Bootstrap定制的微型所见即所得(What you see is what you get)富文本编辑器。轻量、简洁大方好看、使用方便。

10、QuillEditor

网址:https://quilljs.com/

Quill 是一个开源的富文本编辑器,基于可扩展的架构设计,提供丰富的 API 进行定制。一个可以帮助开发人员解决所见即所得的编辑器工具,该编辑器旨在通过自身的编辑模块提供强大的API来构建自定义式的编辑器,最重要的是它没有规定样式,你可以自定义自己的编辑器以符合自己的使用需求。

HM Editor是一款WYSIWYG编辑器,可以帮助用户进行CHM文件的编辑。通过软件你可以先对所有的HTML文件进行提取液,然后到对应的资源文件夹中进行JAVA导航树的生成,通过生成导航树可以让你更方便的找到自己需要的文件内容,然后对CHM文件进行一个编辑处理,可以进行修改和反编译等等操作,有需要的用户快来下载看看吧。

来源:http://www.3h3.com/soft/275316.html

软件功能

1.CHM Editor最新版以所见即所得的方式编辑CHM文件;

2.在HTML模式编辑CHM文件;

3.几个内置的在线翻译工具;

4.转换器从CHM为HTML格式;

5.字符集转换;

6.图像处理。

使用说明

1、打开在本站下载好的CHM Editor最新版,打开软件后点击软件顶部的【文件】选项,在弹出的下拉中点击【新建】选项。

2、打开CHM Editor新建窗口后,选择您要创建的模板就可了,然后输入方案的名称,文件名就可以了。

3、它的格式是E:+路径+文件名;也就是E:chm_helpchm_使用帮助.chm (+别打上去,E为磁盘盘符)。

4、然后就可以新建一个CHM Editor文件了。

5、点击左侧的您新建的节点,在弹出的选择【重命名】。或者直接左键选中摁F2。

6、如果您想给CHM Editor节点,您可以选择一个Top然后点击鼠标右键在弹出的选项中点击【添加主题】然后选择【添加主题】。

7、在打开的窗口中输入您要创建的主题名称,输入完成后点击【确定】。

8、点击CHM Editor左侧的【属性】选项卡,您就可以给您的节点添加属性了,您可以自行选择。