Kindle Book Maker
This Project is aimed at creating a kindle book generator. Fetching data from internet, then combo all data to a mini .mobi
book, what you have to do is just edit profiles and run build commands.
Project structure
Data comes in three way:
- spider fetch a uri content, but you need to config the class the article's title and content
- spider fetch a rss source
- from local file
Here is the structure of project:
After preparing data, The program will filter some dirty data, and transfer remote file link to local file, that means it will download the resources.
Finally, using kindleGen generate book. I had put the kindleGen file to /bin/kindlegen, 28M.
Usage
Try a simple demo:
git clone https://github.com/barretlee/kindleBookMaker.git;cd kindleBookMaker;npm install;node index;open build/*.mobi;
There are lots of function, simplify to three command.
- generate from rss:
node index --rss http://barretlee.com/rss2.xml# node index -r http://barretlee.com/rss2.xml
- generate from a uri,
-u URL titleQuery ContentQuery FilterRegExp
:
node index --uri \ http://www.barretlee.com/blog/2016/04/28/mini-query/ \ .post-title \ .post-content \ /<div class="shit-spider"[\s\S]+?<\/div>/
- generate from local directory:
node index --dirctory ./src/demo/# node index -d ./src/demo/
and three other arguments:
--verbose
,-v
, detail about kindle generation.--help
,-h
, help.-push2kindle
,-p
, push the builded.mobi
file to your kindle.
Configure
var moment = ; moduleexports = // entry: './src/KF8-Demo', entry: base: './src/KF8-Demo' list: bookInfo: title: "Barret Lee's Personal Website" lang: "zh" creator: "Barret Lee" copyright: "Barret Lee" publisher: "" coverImage: 'coverImage.png' /*option*/ output: base: './build' format: '[name]-' + /*option for uri*/ singlePage: title: 'div.title' description: 'div.content' { return data; } /*option*/ push2kindle: email: 'barret.china@gmail.com' password: 'your-email-password' kindle: 'barretlee.com@kindle.cn' ;
entry
, can be a String or an Objectbase
, the entry base, where remote file placed.list
, it impacts the order of book article list.
bookInfo
, be attention to thecoverImage
, you should better set a value.ouput
, optional, default is./build
and[name]
.singlePage
, optional, for uri spiderpush2kindle
, optional, thekindle
param is your device matched email, can be edit at here.
Todo
- generate from markdown file directly.
- fix push2kindle bug, cannot push
.mobi
format file, i don't konw why.
Relative articles
- http://www.idpf.org/epub/30/spec/epub30-publications.html#sec-item-property-values
- http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm
- http://www.aliciaramirez.com/2014/05/how-to-make-a-kindle-ebook-from-scratch/
LICENSE
The MIT License (MIT)
Copyright (c) 2016 小胡子哥