我们需要的不仅仅是纯文本
所以我希望能输入一些 rich text,比方说一二三级标题区别显示,比方说字体颜色,比方说超链接,比方说图片,比方说图片+超链接,比方说表格,比方说 script..哦,这个不要,有安全隐患。
但是我该选择用何种方式呢?
一开始打算实现一个简单的 WYSIWYG 编辑器。现在有不少现成的这种程序,但是我不打算拿别人的过来用(想想引入别人的一个体积超过 plog 代码若干倍的程序包,多不爽呀。。),但是如果自己实现的话,恐怕我一时半会捣鼓不出来一个像样的。
所以我后来又打算用一些 text-html 标签,参考了一些别的东西。
wordpress 用的是 html 标签,但是为了安全,过滤掉了一些东西,比方说 script。
wiki 标签,这个现在也比较流行了,但是翻了一下 wiki 标签的标准,发现 WikiCreole 似乎是用的比较多的, 也找到了一个 WikiCreole 的 Python 实现,但问题同样是体积比较大。
UBB 标签,这个在国内论坛上用的比较广泛,把常见的 html 标签改成了类似[IMG][/IMG]的这种形式,从而保证了用户只能输入安全的标签。 没有找到 python 的实现,自己实现一个估计也不难,但是问题是这种标签似乎没有官方标准,怕以后给 plog 开发对外接口的时候遇到麻烦。。。
又看了一下 Django 号称支持的几种 filter: Textile, Markdown 和 ReST。 第一个似乎不错,和 wiki 有点类似,而 Markdown 和 ReST 看起来功能有些简单,而且语法看起来也不那么清爽,估计会影响用户的情绪。
试了一下 Textile 的 python 实现,虽然体积也比较大,但是只有一个文件。
不过后来运行时遇到一个问题: google app engine 的开发工具在 Windows 下有个 bug: 某些 C modules 不能 import, unicodedata 模块就是其中一个,这就导致我没办法在自己的机器上运行 plog,只能部署到试验田去运行,影响了开发的情绪。。。
问题是我到底该用哪种方式呢?
我需要的是一种应用比较广泛,并且有一个比较明确的规范的 text-html 转换方案。初步打算继续模仿 wordpress,硬着头皮搞 html 标签过滤; 或许等 google 修复了 sdk 的 bug,用 Textile; 或者干脆用 wiki 标签算了。不过 rich text editing 还不是眼下的目标,尚有几个功能未完成,俺需要继续努力。。。。