写文档是头疼事,没人愿意写文档。在word里写文档,时间长了都怀疑自己是不是搞技术的。我阅历有限,在我的印象里就没有用word格式看过什么有价值的东西。只要一打开word想到的就是连篇累牍的废话、码字。word最重要的功能是什么?保存。其次呢?字数统计。我所写过的word文档绝大多数都是“只写”的,通常作为流程里的一个附件,没有人真正去看。
以上是人身攻击,接下来比较实际的问题,word文档不是符合unix哲学的东西。格式不开放,你就没有办法进行diff操作,把word文档放到svn里,只能使用最基本的版本控制,没法查看changeset,只知道改了,不知道改了什么。
为了改变这种情况,我试过用docbook格式。docbook用xml书写,定义了一套复杂的Schema,详细到作者的email都有定义。docbook还有丰富的工具集,可以通过xsl把docbook转换成所有你知道的文档格式。Maven: the Definitive Guide就是用docbook写成的。不过用docbook也存在一些问题,docbook太复杂了,用纯文本编辑器很难处理,作者的学习曲线也比较高,需要所见即所得的编辑器支持。与docbook相类似的DITA,也存在这样的问题,它们是重量级的格式。
轻量级的Wiki格式不错,但是Wiki格式很让人头疼就是没有统一的规范。举例,dokuwiki里顶级标题是6个=,而moinmoin里顶级标题恰恰相反是一个=,不portable,文档维护起来就非常麻烦。
铺垫了这么多,委屈以上格式了,该markdown出场了。markdown是简单的html原型,用来生成html,它的设计目标就是为了KISS,兼容html。看看一些必要的格式吧:(或者直接看Wikipedia)
标题
# 标题
## 二级标题
…
###### 六级标题
对于一级标题还可以这么写
headline
========
二级标题可以
headline
——–
这个怎么输入呢,我想起来前几天看vim hacks里的一组快捷键
yypoVr=
yypoVr-
谁用谁知道
段落:
一段文本以两个换行结束。
换行:
一行文本行末两个空格。
图片

用markdown,图片的alt你不写都不行。
链接
[Linktext](link “linktitle”)
列表
ul 无序列表
*
*
ol 有序列表
1.
2.
以上就是主要的格式支持。用标题来划分文档层次,没有多余的格式,没有机会让你五颜六色。
在linux上可以安装markdown的处理脚本:
apt-get install markdown
安装vim的语法文件:
http://www.vim.org/scripts/script.php?script_id=1242
这里是一个简单的例子:
http://github.com/sunng87/exaile-doubanfm-plugin/blob/master/README.mkd
The post is brought to you by lekhonee v0.7
markdown好用伐,也一直想尝试
有没有比较过textile,multimarkdown之类的?
好像markdown是这里面最简单的
不过功能也少
textile好像还不错
word文档放SVN里真没啥用
“yypoVr=”我这不work,把o去掉就work了~
o是newline啊,看来还有点兼容性的问题呐
正如你提到的,wiki程序的毛病是wiki语法不兼容。。。正如你所,如果用markdown语法来写dokuwiki,怎么弄?还不是要翻译一道,而且还不见得行,刚才我用PHP Markdown 来翻译,还是会出现TOC不能自动生成等等问题。总之HTML是通用的,markdown类语法都必须要用翻译器来生成HTML,而且还要看相关的程序是否支持。另外,如果要转换为其它格式的文档,仍然要经过markdown=》HTML=》Others的过程。所以,所谓的使用markdown类的东西都是牺牲“通用性”来换取“可读性”。达到的效果仅仅是“可读”,易些的话,HTML本身就很简单,有个好的编辑器根本就很容易写。
Markdown 不适合用来做文档的,只适合写 README,而且是GitHub里语法加强版的Markdown。
最适合做文档的,还是reST。这个有 DocUtils 这样的完整工具链。http://wiki.python.org/moin/DocUtils