Kindle Book Maker with KindleGen, Make Book from RSS/single URL/directory and so on.
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.
Data comes in three way:
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.
First, run this command:
chmod +x bin/**/kindlegen
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.
node index --rss http://barretlee.com/rss2.xml
# node index -r http://barretlee.com/rss2.xml
-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>/
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.var moment = require('moment');
module.exports = {
// 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]-' + moment().format('YYYYMMDD')
},
/*option for uri*/
singlePage: {
title: 'div.title',
description: 'div.content',
reg: function(data) {
return data.replace(/<div class="shit-spider"[\s\S]+?<\/div>/, '');
}
},
/*option*/
push2kindle: {
email: '[email protected]',
password: 'your-email-password',
kindle: '[email protected]'
}
};
entry
, can be a String or an Object
base
, the entry base, where remote file placed.list
, it impacts the order of book article list.bookInfo
, be attention to the coverImage
, you should better set a value.ouput
, optional, default is ./build
and [name]
.singlePage
, optional, for uri spiderpush2kindle
, optional, the kindle
param is your device matched email, can be edit at here..mobi
format file, i don't konw why.The MIT License (MIT)
Copyright (c) 2016 小胡子哥