用hexo搭了博客,再用gitbook搭一个在线书。这样就可以方便的分享知识了。
gitbook
gitbook很早就有了,但我一直没用,它开始是开源软件,可以将Markdown文件生成为网站、pdf、epub等格式。但后面转向商业,搞了 专业网站。
搭建
程序员出身,我还是希望自己搭建而不是在它的网站上写和发布。但搭建过程中碰到蛮多问题,说明真的好久没维护了,好多问题都没有修复。
先用npm安装
1 |
|
然后创建一个目录,我是yfbook,用
1 |
|
然后报错,网上搜索照做解决。
说是因为官方js代码有问题,要找到这个js文件,然后把中间3行注释掉。
问题解决,目录下生成了README.md和SUMMARY.md。
然后编辑这两个Markdown文件(我用vs code)。
这里就是书的目录,我先验证gitbook,后续完善目录。
里面每一个.md文件就是一个章节,在里面填充内容。
然后运行’gitbook serve’看效果。
挺方便的,按照md的格式和内容就生成了网页。
然后试下生成pdf文件。用命令:
1 |
|
结果又报错,”Error during ebook generation: ‘ebook-convert’ 加一堆乱码”。
再搜索是没有安装calibre。原来gitbook要调用calibre才能生成pdf和epub。
安装calibre后,再执行命令,成功生成book.pdf。
至此gitbook本地跑通,写Markdown文件,可以生成网页和pdf电子书。
部署
最后就要把生成的网页和hexo一起部署在github上。
我的方法是使用
1 |
|
生成静态页面,然后把这些内容copy到hexo生成的public目录下,然后用
1 |
|
部署到github pages上。
目录结构如下:
等github启动部署后,访问 book
就可以看到在线电子书了。
整合到hexo
如果每次都要手工copy生成的文件到hexo,那也比较麻烦。
而且我想把yfblog和yfbook放到一个github仓库中,方便写文章和书。
有什么好的办法吗?
我就想把yfbook放到yfblog文件夹下,然后生成到pulbic目录下,这样就整合到一起了。目录结构如下:
然后在yfblog目录命令中使用gitbook,通过参数指定运行和生成的output文件夹。
1 |
|
这两个命令参数都一样,第一个是gitbook 的Markdown文件所在,第二个是运行和生成的文件夹。
最后 hexo g -d 部署到github pages上。搞定!
查看电子书: https://iyuanfang.github.io/book/
我是元芳,原支付宝架构师。技术出身的私域顾问,服务过波司登、张裕、冷酸灵、元祖等上百家企业。分享对私域的感悟,最近也关注AI。微信:pesome,一起成长。