我理想中的文档系统:
- 支持多人编辑
- 支持版本化
- 可以生成一个站点
- 可以生成一本书. epub/mobi/pdf格式.
- pdf打印出来要非常漂亮
文档有两种, 一种是一篇文章, 另一种是一本书, 有着清晰的目录结构. 我们这里谈论的是后者.
Gitbook是个不错的工具: 使用Markdown的文法, 用Github进行文档历史管理与协同编辑. 可以生成包括pdf在内的多种格式供下载.
但是你需要自己创建他的索引文件 - SUMMARY.md
于是就有了这个工具mmi
:
- 按照
mmi
预订的格式组织文档的目录,mmi
会维护所有的SUMMARY.md
. 约定替代配置, 所有用mmi写出来的文档, 目录组织风格一致. - 本地开发的时候,
mmi
可以作为webserver启动, 你可以在浏览器里直接所见即所得. mmi
可以生成tex格式, 太阳系里最优雅的排版系统.- 如果你要自己写个程序根据文档生成站点, 可能需要些目录里的**"跳转标识", 比如"上一页/下一页". 比如当前的导航路径**.
mmi
会在每个目录下生成一个index.json
, 供程序读取.
至于为什么选Markdown. 请参照 [为什么作家应该用 Markdown 保存自己的文稿] (http://apple4us.com/2012/02/why-writers-should-use-markdown/).
- 所有的文件都是Markdown格式. 格式为
01.aaa.md
. - 子目录也是同样
02.bbb
, 里面要放置一个02/README.md
, 只有存在README.md
, mmi才会将这个目录作为文档目录看待.
- mmi -summary <workdir> 遍历workdir, 在所有文档子目录生成SUMMARY.md.
- mmi -json <workdir> 遍历workdir, 在所有文档子目录生成index.json文件.
- mmi -tex <workdir> 将workdir目录里的所有文档合并成一个tex文件.
- mmi -server <workdir> 作为Web服务器启动, 监听10080端口, 用浏览器访问 http://127.0.0.1:10080/ 吧.
- 在线阅读:
- Gitbook: https://www.gitbook.com/book/flaboy/prism
- Github: https://github.com/shopex/prism-doc/blob/master/SUMMARY.md
- 源文件: https://github.com/shopex/prism-doc
- 支持中文文件名与目录名, 但建议英文为先.
- 文档用到的图片, 尽量生成一份同名的
pdf
格式.mmi -tex
会自动查找img/a.pdf
来替换img/a.(jpg|png|gif)
. 所有的素材都是矢量, 最终pdf文档才足够精美. - 如果你会写Makefile, 自动化你的文档过程吧, 像这样.
- 已编译版本 http://pan.baidu.com/s/1hqnPpXU
- mac用户(>=10.10.4, Yosemite)
- windows
- 如果你有go的环境, 可以从源码安装.
go install github.com/flaboy/mmi