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) });