const fs = require('fs');
const moment = require('moment');
const shell = require('shelljs');
const utils = require('./utils/base');
var $xindaming = require('./xindaming');
utils.uid = moment().format();
utils.time = moment().format('YYYY-MM-DD');
function mkdir(path) {
if (!fs.existsSync(path)) {
fs.mkdirSync(path)
}
}
// shell.exec('rm -rf book && mkdir book');
mkdir('./book/META-INF');
fs.writeFileSync('./book/META-INF/container.xml', `
`)
fs.writeFileSync('./book/mimetype', 'application/epub+zip')
mkdir('./book/OEBPS')
mkdir('./book/OEBPS/Images')
mkdir('./book/OEBPS/Styles')
fs.writeFileSync('./book/OEBPS/Styles/mc-style.css', `@charset "UTF-8";
/*=========================font-face=========================*/
@font-face {
font-family:"zw";
src:
local("宋体"),local("明体"),local("明朝"),
local("微软雅黑"),local("黑体"),
local("Songti"),local("Songti SC"),local("Songti TC"),
local("Song S"),local("Song T"),local("STBShusong"),local("TBMincho"),local("HYMyeongJo"),
local("DK-SONGTI")
local("Heiti"),local("Heiti SC"),local("Heiti TC"),
local("MYing Hei S"),local("MYing Hei T"),local("TBGothic"),
local("DK-HEITI"),
url(../Fonts/fzzy.ttf);
}
/* This defines styles and classes used in sioebook */
/*Global Setting*/
* {
margin: 0;
padding: 0;
}
body {
padding: 3% 2%;
margin-top: 3%;
margin-bottom: 3%;
margin-left: 1%;
margin-right: 1%;
line-height: 1.3em;
text-align: justify;
font-family: "Times New Roman","方正书宋","宋体","明体","zw",sans-serif;
}
/* P 正常段落 */
p {
margin: 0.5em 0em;
line-height: 1.3em;
text-indent: 2em;
}
/* 居中、右、左 */
.center {
text-indent: 0em;
text-align: center;
}
.right {
text-indent: 0em;
text-align: right;
}
.left {
text-indent: 0em;
text-align: left;
}
/*图片*/
img {
border: none;
text-align: center;
/*max-width: 100%;*/
max-height: 100%;
}
/* 表格 */
table {
border-collapse: collapse;
border-spacing: 0;
margin: 0 auto 0;
width: 100%;
font-size: small;
vertical-align:center;
}
tr,th,td {
margin: 0;
padding: 0.25em;
border: none;
font-size: 95%;
font-family: "Times New Roman","方正书宋","宋体","明体","zw",sans-serif;
text-indent: 0!important;
text-align: left;
vertical-align: middle;
color: #666666;
line-height: 1.05em;
}
/* 列表格式 */
ul, ol {
list-style:none;
}
/* 链接 颜色 不加下划线 */
a {
text-decoration:none;
color: #663366;
}
a:hover {
text-decoration:none;
color: #CC99CC;
}
/* 文案 */
.oval {
padding: 5% 5%;
margin: 12% 5% 2%;
border: 0px dotted #993333;
text-indent: 0em;
font-size: 0.9em;
color: #666666;
}
/* 水平线 */
hr {
border:0;
background-color:#BEBEBE;
height:1.5px;
margin-top: 2%;
margin-bottom: 2%;
}
/* 上下标注 */
sup {
font-size:small;
}
sub {
font-size:small;
}
/* 标题1 书名 卷 */
h1 {
font-family: "微软雅黑","黑体","ht","zw",sans-serif;
text-indent: 0em;
text-align:center;
line-height: 2em;
margin-top: 30%;
color: #996699;
text-shadow: 1px 1px 1px gray;
}
h2 {
color: #FFFFFF;
margin-left:25%;
line-height:200%;
border-style: none double solid solid;
border-width: 0px 3px 2px 30px;
font-weight:bold;
font-size:large;
border-color: #FFFFFF;
font-family: "微软雅黑","黑体","ht","zw",sans-serif;
text-shadow: 1px 1px 1px gray;
padding: 2px 10px 2px 10px;
}
h2.epub {
font-family: "微软雅黑","黑体","ht","zw",sans-serif;
text-indent: 0em;
font-size: 1.2em;
text-align: center;
width: 1em;
margin: 0em 5% 1.5em;
line-height: 110%;
color: #EEEEEE;
border-style: none double none none;
border-width: 0px 3px 0px 0px;
border-color: #EEEEEE;
padding: 0.5em 10px 0.5em 2px;
text-shadow: 0px 0px 0px #AAAAAA;
}
h3 {
margin: 1em 0 5em;
color: #663366;
line-height: 120%;
text-align: left;
font-family: "微软雅黑","黑体","ht","zw",sans-serif;
text-shadow: 1px 1px 1px gray;
padding: 15px 12px 1em 5px;
border-style: none none dotted none;
border-color: #CC6699;
border-width: 0px 0px 1px 0px;
text-shadow: 1px 1px 1px #AAAAAA;
}
h3.ebook {
font-family: "微软雅黑","黑体","ht","zw",sans-serif;
text-indent: 0em;
margin: 1em 0 1em;
padding: 2px 12px 2px 2px;
text-align: left;
line-height: 120%;
border-style: none none none none;
text-shadow: 1px 1px 1px #AAAAAA;
}
/* 章节序号 */
.num {
font-family: "微软雅黑","黑体","ht","zw",sans-serif;
background-color: #CC6699;
border-radius: 2px;
padding: 4px 0.5em;
color: #FFF;
font-size: small;
text-shadow: 1px 1px 1px #AAAAAA;
}
h4 {
line-height: 2em;
text-indent: 0em;
color: #FFFFFF;
margin-left:25%;
font-family: "微软雅黑","黑体","ht","zw",sans-serif;
text-shadow: 1px 1px 1px gray;
}
h5 {
line-height: 1.5em;
text-indent: 0em;
color: #FF9900;
font-size: 14px;
}
.vol {
padding: 30% 5% 20%;
margin: 15% -2em 2%;
background-color: #996699;
text-indent: 0em;
}
.volbg {
background-color: #996699;
}
/* 作者译者编者等 */
.author {
margin: 20% 0;
text-indent: 0em;
text-align: center;
font-size: 1em;
line-height: 120%;
font-weight: 600;
color: #;
}
.wt {
text-indent: 0em;
font-style:italic;
font-size: 0.9rem;
line-height: 1.2em;
color: #336699;
}
/* 出版社 */
.copyright {
margin: 35% 0 0;
text-indent: 0em;
text-align: center;
font-size: 1em;
line-height: 120%;
font-weight: 300;
color: #;
}
/* 书票 */
.exL {
margin: 45% 0;
text-align: center;
page-break-before: always;
}
.kh {
text-indent: 0em;
text-align: center;
font-size: 0.80em;
color: #EEEEEE;
}
/* 电子书信息 */
.info {
font-size: 1em;
font-weight: bold;
line-height: 150%;
color: #666666;
margin: 0 0 1em 20%;
}
.info_items {
font-size: 0.8em;
line-height: 120%;
color: #666666;
margin: 0 0 0 20%;
}
/* 多看 图框 */
.duokan-image-single {
margin: 0.5em 0;
bottom: 2%;
text-align: center;
}
/*++*/
.rht {
font-family: "微软雅黑","黑体","ht","zw",sans-serif;
font-size: 115%;
line-height: 120%;
text-indent: 0em;
text-align: right;
color: #CCCCCC;
}
.lt {
font-size: 80%;
text-indent: 0em;
text-align: right;
color: #003366;
}
div.float {
width: 42%;
float: right;
margin: 1em 0 0em 1em;
}`)
mkdir('./book/OEBPS/Text')
fs.writeFileSync('./book/OEBPS/Text/cover.xhtml', `
Cover
`)
// opf toc.ncx ...
utils.opf(utils, $xindaming).then(res => {
fs.writeFileSync('./book/OEBPS/content.opf', res);
return utils.tocNcx(utils, $xindaming)
}).then(res => {
fs.writeFileSync('./book/OEBPS/toc.ncx', res);
return utils.book(utils)
}).then(res => {
fs.writeFileSync('./book/OEBPS/Text/book.xhtml', res)
});