ePubファイルを生成するソフトウェアは幾つかありますが、カスタマイズが容易なものは多くありません。固定されたフォーマットに合わせて記述する必要があったり、すべてが自動化されているので融通が効かなかったりします。
そこで使ってみたいのがepub-genです。自分でコードを書く必要はありますが、柔軟にカスタマイズできるePub生成ソフトウェアです。

epub-genの使い方

サンプルのコードです。

var Epub = require("epub-gen")  
  
var option = {  
 title: "Alice's Adventures in Wonderland", // \*Required, title of the book.  
 author: "Lewis Carroll", // \*Required, name of the author.  
 publisher: "Macmillan & Co.", // optional  
 cover: "http://demo.com/url-to-cover-image.jpg", // Url or File path, both ok.  
 fonts: ['/Users/nakatsugawa/Library/Fonts/ipam-mona.ttf'],  
 content: [  
{  
 title: "日本語", // Optional  
 author: "中津川篤司", // Optional  
 data: "

## Charles Lutwidge Dodgson
"  
 +"
Better known by the pen name Lewis Carroll...
" // pass html string  
},  
{  
 title: "Down the Rabbit Hole",  
 data: "

本文にも日本語

"  
},  
 ]  
 };  
  
new Epub(option, "./path.epub");  

dataの中にHTMLで文書を書いていきます。MarkdownをHTML化してそのまま適用しても良いでしょう。フォントを配列で指定することもできますし、スタイルシートで指定もできるようです。

作られたePubファイルです。

日本語も問題なく扱えます。

epub-genは簡単なコードでePubファイルを生成できます。テンプレートはePub2はもちろん、ePub3にも対応しています。既存のシステムに組み込んで電子書籍を生成できるようにするのも容易ではないでしょうか。

epub-genはnode/JavaScript製のオープンソース・ソフトウェア(MIT License)です。

cyrilis/epub-gen: Generate EPUB books from HTML with simple API in Node.js.