书中实例需要很多代码来说明,如果是制作电子书的话,可以使用Markdown预处理器自带的功能来高亮。另外如果需要RTF格式,可以使用这些工具: highlight工具 intelij中的插件copy on steriod 这里有一篇博客来说明如何将你的代码,拷贝之后,就可以将这些内容粘贴到Word或者Keynote中了。 jest.dontMock(‘../components/headline.jsx’); describe(‘Headline’, function() { var React = require(‘react/addons’); var Headline = require(‘../components/headline.jsx’); var TestUtils = React.addons.TestUtils; it(‘#render’, function() { var text = “this is a title”; var headline = TestUtils.renderIntoDocument(<Headline title={text} />); var title = TestUtils.findRenderedDOMComponentWithTag(headline, ‘h4’); expect(headline.getDOMNode()).toBeDefined(); expect(headline.getDOMNode().textContent).toEqual(text); }); }); 一些潜在的坑 在写作的过程中,会有一些潜在的坑。这些所谓的坑是新人可能无法想到的。相对于言之无物,不知如何下笔,最痛苦的其实在于平淡。大部分时候,你可能很容易就能写出开头,但是很难坚持到最后。即使好不容易写完了第一版,后续的重读和修改,会让你苦不堪言。 内容写好之后,样式是下一个重要的问题,好的内容需要有与之匹配的排版。在中国,作者不但要负责内容,还要负责一些排版的事情。这一点非常奇葩,但是又是实情。这也是我更推荐电子版的原因(排版更加美观,选择更加多样,而且一旦有问题可以更容易的修改)。 另外一个问题是错别字检查!检查错别字对于作者来说,是一件的实情。而对于读者来说,则是一件很容易的事情。这跟知识的诅咒的道理一样。
发布方式实体书 传统的出版方式有一些明显的问题,这些问题已经和现代的知识传递方式产生了冲突: 时滞性(新技术的更新速度远远超过审批,印刷等流程的时间) 排版(如何低成本做到语法高亮,或者彩图) 更新频率(当技术更新之后,如何更新,是传统纸质书无法解决的问题) 传统的出版方式有点像传统的软件开发,一本书从开始写作到最终出版,要经过很多环节。忽略掉写作过程,从交稿到出版会经历很多次审核和校对,可能会历时4-8个月,着这个过程中,很多东西都可能发生了变化,一个典型的例子是《用AngularJS开发下一代Web应用》,原版为英文版,翻译成中文版再到出版之后,书中的很大一部分内容已经过时。读者拿到书之后,会发现书中的内容已经和当前的版本/文档不匹配了。这种现状随着技术的更新速度和频率还会再加剧。 第二点是排版。我听说国内有些出版社已经开始接受作为稿件的格式,但是大部分还采用Word或者WPS等格式,这样排版就变成了一个大问题。以我自己为例,我的原稿用Markdown写,但是写了几章之后不得不切换到Microsoft word上,而我自己的Mac OSX下的排版到编辑的Windows下就会变样,而且还会涉及字符集,字体,Word版本等等问题的影响,最后导致印刷出来和原始稿件出入很大。 最后一点是更新频率,如果发现了错别字或者错误的地方(即使之前检查过多次,仍然会有漏网之鱼),由于实体书的特殊性,一般需要等到再次印刷才能解决。这意味着先购买的读者会承担一些风险,更新后的版本又如何让读者看到呢?总不能又买一本吧。 但是这些问题都可以通过电子书来很好的解决。首先,电子书可以随时更新,最低限度的降低时滞性。排版上来说,作者可以使用Markdown来编写,而展现则可以应用一些预定义的模板来完成。最后,更新频率完全可以控制,对读者来说风险更低,因为电子版书籍的可以很容易的追踪交易记录,从而得到免费的更新过的版本。 电子书 目前已经有很多的渠道可以发布电子书,比如,。这些应用的出现,大大降低了发布书籍的成本,我的,用了3天就完成了草稿,而发布只需要数秒。 (责任编辑:本港台直播) |