大约一年前,Maxim Schepelin 和我规划写我们的第一本书。一本关于有抱负的工程师经理的书。
我们很快意识到了写作是一项比预期要大的多的任务。同时我们也被淹没在了这个行业里面不计其数的工具中。
作为工程师经理,我们非常肯定一件事:我们想要尽可能的优化过程,让其丝滑,这样我们才能把全部精力注入到内容生产之中。
自从投身到了这项巨大的工作中,我们针对最佳工具和流程的最好实践展开了广泛的调查。发现了一些不同的办法,而这些办法正在被有着与我们相同目的的人使用。
在这篇文章中,我们将分享我们旅程并解释我们怎么选择了Asciidoc作为我们的凿子。我们也会讨论那些已有的帮助我们快速高效的把内容转化为成书的工具。
准备工作
如你所想,写书需要你花很多时间在所选的工具上面。你的桌子,椅子,键盘和任何可以提供给你平滑创作体验的软件。
如果你选择的工具有若干缺点——比如不能如你所愿的铺开书籍——那么会有相当一部分时间被浪费在克服这些缺点上面。
软件
我们在开始之前向周围的朋友们做了大量调查,询问写作时使用的工具。
最普遍的答案是:Microsoft Word。
在我们心中,我们选择的方案应该是随处可得,好用,免费并且最好是开源。这样的话,这个方案才是可重复和可分享的。基于此,Microsoft Word 不是一个好答案。
Plain old Google Docs
Google Docs是另一个不错的选择。一部分出版商和很多作者也在使用它。作为文本编辑器,它拥有你期望的功能并且是免费的。
但是它并没有提供一个很好的写作体验,虽然绝对易用,你随时可以打开你的浏览器并且开始输入。
Markdown
作为开发者,我们经常用Markdown 来写README。这无疑让我们对这种语言产生了亲和感。毕竟我们都是工程师嘛。
因此,在使用了Googld Docs之后,我们很快发现写README的工序应该更好。我们使用了我们最喜欢的文本编辑器(Neovim,Visual Studio Code,等)。大部分这些编辑器都免费并且一小部分还是开源的。
Markdown满足了我们最初的所有要求。
不过彼时我们不知道的是,要想出版一本书,可不是只有内容就足够了。书需要排版,需要遵守一些有关结构的惯例,像扉页和补充资料,索引,目录表。所有这些,都是非常难以用Markdown生成的,因为它也不是为了这些任务而生的。
Asciidoc
沮丧于Markdown的功能限制,我们继续寻找更好的解决方案——一种像Markdown一样简单易用但同时又提供了更好的功能以支持出版目的的软件。
最后我们发现了Asciidoc。
Asciidoc提供了丰富的功能,包含写书所需要的一切。不光有基本功能,甚至还包括了索引生成和书封面生成的功能。除此之外,Asciidoctor组成了更强大的发布工具套件。
所有这些从自定义字体(允许使用从Connary Fagen 来的我们最喜欢的字体)到轻松的生成扉页和补充资料,包括封面和索引。
LaTex
我们也考虑过另外一个选择:LaTex。虽然它是提供了所有我们需要的功能(甚至更多),但是代价是并不那么易用。
我们在大学中花了无数的时间在用LaTex写我们的第一份论文上面。这段记忆提醒我们LaTex并不是正确的选择。
硬件
你会花大量的时间打字,所以很快你的退格键就磨损了。这是为什么我们强烈建议投资在正确的装备上面。一个支撑你正确打字姿势的合适的桌子可以帮助你更有效率的工作并且减小受伤风险。
键盘
最重要的组件之一就是你的键盘。Dunya Kirkali喜欢使用ZSA Voyager,这种分离式键盘让他保持了开放的姿势。减少了手指移动的精力并且对腕关节友好。
Desk/Chair
你站立或者坐着的地方跟你的键盘一样重要。Dunya Kirkali比较老派他更喜欢坐着打字。但他选择了一个更加有活力的椅子确保他不会陷下去。这款HÅG Capisco是他的选择。
写作
现在我们的工具齐备了,我们终于可以开始埋头创造了。
结构
大部分的书包含三个部分
- 扉页
- 内容
- 补充资料
扉页
扉页包含了所有类似于出版商,鸣谢和序言。具体的章节取决于书的内容和作者想怎么表达。但不管作者怎么想,一般都会在正式内容前面有一些前言。这些只是一些你可以考虑加在你扉页的内容的例子。
内容
这就是书的实际内容。你可以以你喜欢的方式去组织它。可以保护任意章节。
补充资料
补充资料可以包含一小段作者自传,或者索引出你贯穿本书的重要术语。
一旦你把这些都组合在一起,一般情况下补充资料的结构看起来像
出版
在所有这一切都完成了之后,我们有了想要发布出去的一切。欢迎使用letterpress,我们的开源项目,帮助你更方便的出书。
Letterpress 甚至提供了一个沙盒,可以让你在不安装任何东西的时候使用。
它也提供了你一个大纲和GitHub工作流可以帮助你生成PDF和EPUB,之后你可以提交到喜欢的自出版平台(Gumroad, Leanpub 或者Amazon KDP)。
为什么要写作
生活中最让人满足的体验之一就是贡献自己的力量给人类经年累月积累的、还在不断充实的知识宝库。用你的智慧帮助其他人是满足感的来源。
更进一步,教授别人也是学习的过程。写书也不例外。从一个抽象的想法到一个具体的句子需要付出的努力让人惊讶。在你彻底对这个话题掌握到可以教授别人的程度之前,你将对这个话题进行彻底的调查。这是能想象得到的最好的学习体验。
最终,如果一切顺利,你也可能通过写作收获一些碎银。可以看看这两位成功人士关于写作涉及到的经济问题的讨论。Gregor Hohpe的精彩文章the economics of writing technical books和另一篇来自Martin Kleppman的it is worth publishing a book。
结论
还在等什么呢?如果你感到你有东西分享给这个世界,只需一个笔记本就可以开始了!
[1] 原文地址 https://blog.incrementalforgetting.tech/p/sculpting-a-book-the-chisel 作者Dunya Kirkali
[2] Gregor Hohpe著有 《The Software Architect Elevator: Redefining the Architect’s Role in the Digital Enterprise》
[3] Martin Kleppman 著有 《Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems》