我们需要一个能够保留原始标记的基于 Web 的类似 wiki 的富编辑器。目前,给定的自定义标记正在转换为 html 以进行显示和编辑(允许人们在链接和类似情况下编辑 html),然后在保存时转换回特定标记。这显然容易出错且不理想。
第一个重大决定是在纯javascript基于 html 的解决方案(如TinyMCE)和更面向客户端的解决方案(如 flash 或silverlight )之间做出决定,这将使我们不必担心 html 等。
根据您的经验,目前最好的选择是什么?
这是一个很长的讨论。我的建议是使用具有良好 XHTML 输出的 JavaScript。根本不要使用闪光灯或银光。
对于我的项目,我使用了 YUI 文本编辑器,一切都非常好。在这里试试:http: //developer.yahoo.com/yui/examples/editor/skinning_editor.html
试试这个链接,这是一个非常好的网络编辑器比较,可以得到你需要的东西:
用户的种类和使用数据的环境有很多话要说。HTML 是一种演示格式,因此使用它来编辑内容是次优的。在很多情况下,您需要将内容与表示分离,然后 HTML 会因此而给您带来麻烦。您当然可以尝试将输入限制为 HTML 的子集,但这很难做到正确,并且首先会削弱这个想法,因为输入不再是真正的所见即所得。CMS 多年来一直在努力解决这个问题,所以我想没有简单的解决方案。
如果您的编辑是高级用户(可能是程序员,但我在普通人方面取得了成功),您可以让他们以 markdown 或类似的以内容为中心的格式输入内容,然后在演示时将其转换为 HTML。这种方法的最大障碍似乎是缺乏实时预览(所见即所得)。我已经使用Showdown实时呈现预览,就像这个网站一样 - 我最近为一种混合所见即所得类型的输入制作了一个小部件,你可能会发现它很有用。
在 Mozilla,他们一直在研究这个:
如果您使用Markdown或Textile之类的东西,您可能不需要允许直接 HTML 编辑——用户将始终使用内容的纯文本表示,而按需单向纯文本到 HTML 转换将是可以在 HTML 页面中获得更好的外观。
如果需要,有许多 Ruby Gem 可以帮助您实现 Markdown 和 Textile 纯文本到 html 的转换。还有一些不错的降价编辑器(作为 SO 使用的编辑器)。
在我看来,纯文本编辑(在 Markdown、Textile 或类似中)就足够了,并且在大多数情况下是更好的选择。这绝对是一种用于创建丰富内容的非常轻量级且符合标准的方法,尽管 Markdown、Textile 等不涵盖所有可能的格式选项,但纯文本路径值得认真考虑。
你也可以在 StackOverflow 上看到——它使用 Markdown 来提问和回答——这是一个不错的选择。我强烈支持能够看到“格式化标签”的需要,因为所见即所得几乎总是会导致错误放置/不需要的标签。此外,使用纯文本格式可以让您100% 控制生成的 HTML。
如果您必须使用 WYSIWYG,我对 TinyMCE 的体验足以推荐它。
我们使用Screwturn开发基于内部知识的wiki 页面,供我们的开发人员参考。我会说它是一个不错的免费 wiki 工具。
我个人喜欢 TinyMCE。
使用 TinyMCE 时,我可以推荐查看 BB 代码。我在编辑器中以 BB 代码实时呈现的文本,因此它看起来像粗体或您想要的样式。
将其以 BB 代码格式保存到数据库中,然后在显示文本时使用字符串替换器。
如果您想要标准的 wiki 标记,您可以制作自己的插件来呈现 wiki 代码。
WordPress 附带的 JavaScript 编辑器非常棒。