msgbartop
Hacking the chemistry world.
msgbarbottom

19 Aug 08 WYSIWYG WYTIWYG

WYSIWYG:所见即所得 Word、Visio、Dreamweaver

WYTIWYG:所想即所得 LaTex、DOT、HTML&CSS

经过Word、Visio、Dreamweaver这一干软件的一番忽悠,WYSIWYG的观念早就到处泛滥了。但是WYTIWYG你听说过吗?Mac OS的拼写检查甚至还建议我改成WYSIWYG。

图片 3.png

所想即所得是个很好的概念,易学,对于小规模的项目处理的得心应手。但是一旦到了多人协作的大规模项目,就显得非常力不从心了,不仅仅是难用,而是根本无法使用。想想两个作者和一个编辑一起用Word工作的情况,一个巨大的Doc文件,缓慢的打开速度,页面上乱七八糟花花绿绿的批注。不但影响工作效率,还非常影响心情,FRG!

再聊聊Visio,画巨型关系图的时候,根本无法两个人一起工作,同一份文件,一个人修改一部分,另一个人修改了另一个部分,两个人的修改却无法合并,这么重要的一个功能竟然缺失了。

一直想把CVS引入到文本工作的团队协作上,但是大家用的往往都是word,这造成了一个很严重的问题,版本控制中的一个重要环节─合并更改根本无法实施。

要想要团队写作顺利进行,文件格式必须是文本的,这样才能是diff等工具有用武之地。文本格式还必须是人能够辨读的文本,这样使用者才能进行合并更改。(把二进制文件用Base64编码一下那也是文本,但是人看得懂吗?)

那么,这样一种文本格式有没有?

当然有,从简单到不能再简单的纯文本,到有基本样式功能的RTF,再到旧的UNIX学院派的LaTex(发明Tex的高德纳是个天才,他发明的数据结构这门课现在还在折腾全世界CS系的童鞋们,嘿嘿)。

纯文本?一般用用问题不大的,但是不支持复杂的样式,在实际应用中意义不大。

那么RTF?和纯文本同样问题,虽然有样式支持,但是文件格式,如果让你手写出来,你写的10行里有6行是指定格式的废话,实用性也不大。

最后再看看LaTex。LaTex这个东西,功能非常强大,易用性也可以说还不错,就是有着*nix类程序的通病,组件多,配置多,学起来很烦。如果不是自然科学类的学术专著的话,有几位敢用LaTex来写,又有几家国内出版社愿意编辑LaTex的稿件。不过LaTex在学术界现在还是在广泛使用的,某些期刊是只接受LaTex格式的稿件的。

OK,那我们还能用什么?就说说挨踢业界的应用。一份开源类库文档?一本in Action书?说个大白话,不管什么需求,都是属于这两类的,网络出版或者印刷出版。现在就说说网络出版,你可以整成PDF甚至也可以像某些小说网站防盗链一样直接就来个JPEG图片,但是从方便读者的角度考虑还是使用HTML方便。大部分的HTML都是在Word里完成再由机器导出的,不够也可以反过来想想,问什么不可以直接手写HTML?

手写HTML,将LaTex式的WYTIWYG思想引入到写作的过程中。你不要像用Word一样想着这里应该加粗,那里应该加个下划线,这边应该右对齐。就用HTML标签来说明,这里是个关键字,那里是个重点段落。写文档的时候只要用HTML标签来标注,关键字应该怎么强调,重点段落应该怎么突出,可以留到后面让CSS来慢慢解决。

HTML是基于文本的,因此有极好的CVS兼容性。另一方面,HTML(XHTML)语法极为简单易懂,而且有极强的扩展性。各位看官不知道有没有听说过CHTML(Chinese How To Make Love?),利用一个特制的DTD把HTML变成了这样的样子。

<段落>这是一句话,这是一个表格<表格><行>这是第一行</行><行>这是第二行</行></表格></段落>

其实CHTML这个东西跟汉语编程一样无聊,这里就举个例子说明一下XHTML的可扩展性。我们在真正拿HTML来写的时候可以这么写。

这里是一段话,有一个<kw>关键字</kw>,还有一句Java代码<code>System.out.println(“Hello World!”);</code>

HTML比LaTex优越的另外一个重要因素是当团队中有人无法接受手写HTML时,可以采用DreamWeaver这样的工具(其实我觉得用DreamWeaver去点按钮还不如用多打几个字母方便)。

那么,印刷出版怎么办?我们也都知道,HTML对于Page的页面是很模糊的,而且在不同的浏览器中还有不同的渲染效果。现在有个思路,定制一个Gecko或者WebKit内核,定制一个DTD,扩展HTML加入所缺失的功能,以此作为渲染标准。不过现在也就是随便说说罢了。

Tags: ,