妙镜

十袭珍藏,但誓传家而永寳

如果博客是一本书

2015-08-22


……那么,我愿把“如果”两字去掉

博客出书,不胜枚举:《暗时间》、《万万没想到》、《说服力》、《正版语文》……
不严格的说,《明朝那些事儿》也算此列吧。

这些人写的文章,明明在网上公开发布过,又印成铅字,出版一遍。稿酬可观,买的人还不少。简直人生赢家。

赘述繁多,都是废话。 本篇讨论的,是另一层意义上的博客成书——也就是某个热心的粉丝读者,把作者的网上文集下来,然后做成电子书的故事。

明确需求

对于一个博客的老读者而言,在线订阅最省心省力1。博客更新频繁,这样读者能确保及时跟上进度。

当然,随意浏览也无妨。博客原本就适用于游览式地看。

寒来暑往,花开花落,世况有变。我遇见了李华治先生的博客。 几篇文章读下来,越发体会到其叙事精彩,抒情悠长,评论痛快,文气充盈,文风对路。
真想一口气全部读下来。

……痴人说梦。普通的大学生哪有条件一口气看完呢……

暗忖:

博客文章一般按日期先后发表,越新的越前。想要找最老的,必须翻到最后。
按从前往后的顺序,还要翻页很麻烦。中断了,又必须 记住进度(万一忘存收藏夹, 只记得读到那一篇,却不记得那一篇在哪页,那就不好了)。
因此我认为更好的阅读顺序,是从老文章读到新文章。沿时间长河顺流而下,好似历经一次作者成长的过程。然而, 那不得从博客分页的最后一页翻到第一页吗……

况且,老夫已不再是当年那个在电脑上看小说的我了。如今早已习惯移动阅读——自己走路时,坐巴士时,拿起手机,都可以看,可谓省时不费事。

手机阅读,虽不拘时空,仍有局限。譬如网络不稳,又如电量不多。联上网后,耗电增加,可谓两弊叠加。

灵光一闪,心生妙计——把博客做成电子书,手机上看
来来来,数一数优点:

  1. 制作时可以自定阅读顺序。从老文章一路看到新文章,很平滑
  2. 同上,自定排版格式
  3. 手机离线显示,省电
  4. 阅读进度不会丢失

制定计划

不要怂,就是干

前方技术细节预警,枯燥无聊,点我跳过,不见不烦

扒文章

扒文章当然得作爬虫。做爬虫当然得用python。用python当然得用miniconda发行版,配spyder。哎呀,扯远了

python库多,任性。
用哪些库?因为要联网,所以要urllib2;要读写文件,用os;还要分析网页结构,这个一会儿再说。哦,可以先透露一下,全部都是用的内置标准库哟。

分析网址: 这个文章地址啊,too simpile ! 结构形如http://lihuazhi.com/123其中123换成随便一个什么正整数。开头简直顺利得……

下载网页: 没想到404等错误直接反馈给了urllib2.urlopen(),枉我分析404页特征一场空。另外得把以图片为主的两个分类排除掉,不下载

分析内容: 见过太多人吐槽美汤这个库又慢又不好使,于是我去看了看lxml和Xpath。虽然很多人推荐,很多人用,但搜到的中文资料不多,我这种渣能看懂的更少。勉强看官方文档,懂了一点,然后放弃了lxml。
到头来,分析网页用的工具还是——re!正则表达式,简单易懂!实乃居家旅行,xxxx 之必备良药,打遍天下都不怕不怕啦。用re分析,关键是懂得.+?gruop(),不要漏了re.S(DOTALL模式),其他请随意。

内容缓存: 大蟒摸了这么久,数据结构却没用过几个。本来想用从前没用过的 dict 来存。但是发现了逼格更高的结构——类。可以可以,哥也是写过面向对象的人了又一个从0到1的突破哈哈哈。既然确定了类为主体,除了用来存标题日期等的属性以外,不在旗下挂几个方法是说不过去的。于是有了 get() ,有了 save()。

内容保存: 这就是刚刚提到的 save() 干的活,并没什么好说的。之前提取到了带标记含元素的html代码块,文件直接存为%category%/yymm%title%.html。别忘了如果目录不存在,还要额外写几行来建个目录。
什么?听说作为html文件标准格式,前后要有DOCTYPE!htmlheadbodyooxx?真麻烦,不管了。没那些玩意的html照样能在哥的浏览器里显示得好好的。谁不服?请咬我!2

到最后一个环节还真被咬了。我今天算是小小地埋了伏笔一下。

转epub

电子书当然要用epub格式的。这种格式,手机、kindle(越狱后)通杀,各种软件支持,排版格式神马丰富全面。

现在,就差怎么把这么多Html转换成一个EPub格式的电子书了。

尝试一 github上找了个名叫"html2epub"的py脚本。详询…居然只会把每一个html都换成一个epub。
辣鸡>_>

尝试二 据说很神奇的pandoc。按照官方介绍的示例,多个文件制epub,依样画瓢。哦,还做了个脚本生成恶心的、折成很多行的命令行。运行……第一行就报错了。连官网的示例都报错。
哼,辣鸡>_>

穷则思变。哥这不是典型的用命令行用傻了吗。一门心思想着命令行工具耍起来威风凛凛,殊不知GUI界另有一番广阔天地。啊,又扯远。低头默讼:“装逼如风,常伴吾身。无形装逼,最为致命。”

尝试三 掌上书苑,国内业界知名站点,出了个制作器,叫epubbuilder。取名有范,看起来挺牛的。试看官方介绍:

书苑开发的ePub电子书制作神器,支持多国界面语言,支持unicode编辑,支持导入Txt、epub、Html、chm、snb等源文件;支持图文混排、音频、视频、多级目录等;方便快捷的界面;无需专业知识也可快速生成一本专业的电子书。

请注意第一句神器两个字。敢这么自称的,一般还真有两把刷子,比如:赘述神器

国货当自强,就决定是您了,epubbuilder!
下载装好打开。居然得登陆才能继续?还好以老司机夫多年经验,眼尖发现了“离线”按钮,成功进入。界面上大大地摆着“未授权”。
呃。没授权好像不影响使用吧。开工,批量导入html……
然后!导入了乱码!

霎时没找到改编码的地方,这不重要。重要的是,“未授权”三个字依然在眼前晃来晃去。
真~辣鸡>_> 卸了。

卸归卸, 装逼大业 可不好半途而废。那么,有没有真正 逼格高 好用的epub制作工具?

扯开话题,到底哪种软件才能算highBger?全是洋文?NONONO!高逼格软件一般具有以下特征:

  1. 免费
  2. 开源
  3. 跨平台
  4. 小众

哦,不好意思,其实标准只有一个,也就是这个那个第四个。

尝试四 朋友,你听说过“sigil”吗?sigil完全符合前三项标准。至于第四项……仁者见智咯

sigil真的超好用,功能完善,支持中文。而且,您瞅这华丽的花体字,逼格满满,让人单看图标也完全猜不到跟书有关 ,比某苑做的某神器不知道高到哪里去了。 sigil

收工

一些收尾细节

目录、排版,随便搞一搞。目录用两级:文章分类一级,标题一级。
封面,作者信息,扉页这种东西就真没必要了。因为反正只给自己看。
……(何不众乐乐?因为版权啊版权。没作者授权,老夫是不会传播的)


俗话说:

现世报,来得快

经上述流程,粗制滥造做出来的电子书,只有多看能正确显示。(还好多看你没有抛弃我TT)
请大家观赏效果图: 如果图片太大,请点击图片以看小图!
上图为:原本设定的排版

anyview 以上是anyview上的显示效果

duokan 多看阅读

moon+ 静读天下 Moon+

接下来有请搞笑组登台:
QD 起点读书

Yi 网易云阅读


  1. Google Reader 挂掉后,还有不少替代方案 ↩︎

  2. 参见后文提到的“现世报” ↩︎