edennow 发表于 2023-12-20 13:01

10 秒生成一本网文 EPUB——Sigil+【分章助手】插件使用流程

本帖最后由 edennow 于 2024-2-19 15:33 编辑

目前 EPUB 原创自制区的置顶帖中,有航星大佬分享的多看版 EPUB 制作工具,是用 emeditor 脚本实现的:传送门

不过个人更习惯通过 sigil 的【分章助手】插件来将网文的 txt 文本转换为 epub,因此也分享一下该插件的一些使用流程。

该插件是由百度贴吧 sigil 吧吧主遥遥心航制作,如果之前有用这个插件,可以不需要重新下载。

static/image/hrline/4.gif

先将接下来用到的三个附件列出来,可以先下载好:




sigil 本体推荐使用 sigil 吧主制作的魔改版,效率应该提升了不少。
下载地址:https://gitee.com/ichigo250/sigil-modified/releases

下载解压安装这些就不用说了,安装完成后,打开 sigil,打开插件管理,点击添加插件:

选中上面下载的附件“SplitChapter_v2.8.0_分章助手.zip”压缩包,进行导入(右上角有个“使用捆绑的 python”,应该要勾上,我本地有装 python,就不用勾了)。

分章助手原帖教程:https://tieba.baidu.com/p/8090340277,写得很详细了。

static/image/hrline/4.gif

我以上面下载的“示例模板.zip”附件为例说一下简单使用流程,其他细节可以在原帖细看。

解压“示例模板.zip”,可见如下两个文件:


[*]我是书名.epub
[*]测试用文本.txt
使用 Sigil 打开“我是书名.epub”(左上角“文件”->“打开”或按 ctrl+o 快捷键),应该看到是这样的:

该文件只是一个模板/脚手架,只有最基础的样式表、导入的两个字体和几个示例页面,左上角的 Text 中可以看到是没有文本内容的。

这时点击“插件”->“编辑”->“SplitChapter”,应该会调出如下弹窗(如果调不出来,说明你用的 python 有问题):


点击右边的“打开”,选中“测试用文本.txt”,点击自动分析,可见自动匹配了如下几条正则:

这是因为在“测试用文本.txt”中的内容,是按照本论坛的 txt 校对上传区规范进行了排版的,为了演示稍微复杂一点的结构,里面的章节层次是:“部->卷->章”三级,会和分章助手中的预置正则自动匹配上。

然后点击一下预览,可以看到预计要拆分出来的页面结果:

这个列表有点奇怪吧,为什么没有按照“部->卷->章”的层次进行包含折叠?

这是因为上面点击预览的时候,左边的三个标题都是处于“3级标题”级别,sigil 本身也是推荐使用 h1-h6 的标题标签来区分不同层次的标题,因此需要给“部->卷->章”设置不同的标题级别(点击那些上下箭头进行调整):


“部”在最外层,故选最高级别 h1(1 级标题,当然,因为多看不支持三级目录折叠,你选择和卷相同的 h2 级别也可以,这里选 h1 只是方便演示);“卷”其次,选 h2(2 级标题);“章”选最小的 h3(3级标题),这样会形成“h1>h2>h3”的包含关系,再点击一下预览:

OK,页面层次应该正常了(这个图中的“部”层次好像有点不对……但是实际是没问题的,生成的页面和目录也是正常的)。

注意一下,这里上面有一个“断序检查”的按钮,默认是 OFF 的,可以点击一下把它开启,能非常方便地检查是否有因为漏章,而导致序号不连续的问题,若有出错会标红,这时去 txt 文件中将相应的错误修正后,再回到分章助手插件重新导入一遍即可。

另外说明一下,一般的网文可能不存在三层标题结构,如果只有“卷->章”两级,只需把“卷”设置成 h2 级别,“章”设置为 h3 级别即可,会自动形成“h2>h3”的包含关系,使用分章助手的这一个步骤是关键,一定要保证章节的层次设定是正确的,也可以通过预览,检查有没有错漏章节的情况出现。

点击“执行”后,就会自动将 txt 拆分成不同章节的 html 页面了,然后在顶部菜单的“工具->目录->生成目录”中点击一下确定,就能生成对应的目录了:


static/image/hrline/4.gif

上面已经将分章助手的基本使用流程说完了,核心其实就是
->打开 txt
->点击【自动分析】,调出匹配的标题正则
->设定章节标题层次(如果只有“章”一级标题,甚至不用设定)
->一键执行分章(不要忘记分完章后,点击顶部菜单的“工具->目录->生成目录”,生成相应目录)

下面看一下分章出来的页面效果:
这是 h1 级别的页面(部或者书级别)


这是 h2 级别的页面(卷级别)


这是 h3 级别的页面(章级别)


要想从分章完毕后的光秃秃的<h1>xxx</h1> <h2>xxx</h2> <h3>xxx</h3>,变成上图带有各种 class 类名和头图、分行等等效果的标题结构,推荐通过 Sigil 自带的顶部菜单中的“工具->搜索模板”实现结构替换(考虑了一下,要是用我自己写的 template_config.txt 方式来处理,对普通用户来说还是有些徒增复杂度了,不如直接用搜索模板好了):

在这里右键导入上面第三个附件【标题替换搜索模板】解压之后的【标题替换.ini】,然后选中“标题替换”整个分组,点击右边的“替换所有”,即可整理标题结构,自动套上上面的各种样式效果。

展开这个标题替换的分组看一下,其实也就是三条针对 h1 h2 h3 标题搜索替换的正则:


如果你知道怎么写正则(在这里可以稍微了解一下 正则表达式介绍),还可以在【搜索模板】中写一些用于“引言”“诗歌”“书信”“署名”之类的转换规则,比如论坛里【阳方十月】经常在文本里加的一些标记,后续只需调用搜索模板,就可以自动套上 <div class="quote">xxx</div> 之类的结构。

不过要注意的是,新增条目的时候,需要在第四列的“控制”这里双击一下,按如下配置,主要是要切换成“正则表达式”和勾选“循环匹配”(或者直接复制之前的条目来改也可以):


你也可以制作多个和“我是书名.epub”类似的空模板(或者说脚手架),然后写不同的【搜索模板】,在分章完毕后,调用搜索模板实现各种样式结构的自动调整,达成多次复用的目的。

特别是如果你做的是非完本的 epub,通过写【搜索模板】的配置,可以在更新后续章节文本的时候,调用搜索模板自动生成相应的页面结构,不用每次更新都手动给新页面的标题做重复插头图、写类名等等的操作。

另外,建议养成常常使用右键菜单中的“HTML重新格式化->对 所有HTML 执行纠错并统一代码风格”的习惯,有助于维持代码格式整齐,便于阅读和修改,也能让搜索模板每次执行时,都能尽量达到一致的效果,不会因为某些代码的缩进和换行等差异,导致搜索模板中的正则无法进行匹配和替换。

基本只要你的 txt 文本结构正确(参考 正则表达式介绍 最后部分,进行 txt 排版)、【搜索模板】中的正则规范有效,想要生成带样式和结构的 epub,应该不会超过半分钟。

http://www.1000qm.vip/static/image/hrline/4.gif

和一些其他的 txt 转 epub 方式进行比较:


[*]手动插入分割标记,利用 sigil 统一进行页面分割:每次都要手动插入标记,效率不是很高。
[*]利用 calibre 进行 txt -> epub 的格式转换:实在是太慢了。个人的电脑配置不算很低,但是依然无法接受这个速度,很多时候就是几百章的文本而已,都要转十分钟以上,哪怕自己写脚本处理都比这个速度快得多。
[*]通过 easypub、epubbuilder、emeditor 宏等方式进行一站式转换:其实是很方便的,但个人认为“分章”这个动作在生成 epub 的过程中算是比较敏感的(很有可能出错或者漏转),通过分章助手这个插件来单独进行分章处理,可以比较好地控制这个步骤。利用自带的“断序检查”功能可以方便地进行分章查错,多种分章正则的自定义和自动调用也提供了较强的灵活性。

static/image/hrline/4.gif

顺便说明一下“我是书名.epub”这个空模板的一些文件信息,供想直接套用的人参考,如果你有自己的模板,就不用看下面了。


还有 cover.jpg 是封面(针对全面屏还要自己加 cover~slim.jpg),
v-title.ttf 是给书、卷级标题用的字体,c-title.ttf 是给章级标题用的字体。

这个模板差不多也是符合多看排版规范的,设置了全屏封面、多字体嵌入之类的,你可以在每次生成 epub 的时候自己换一下这些图和字体,把 making.xhtml、preface.xhtml、content.opf 三个文件中的书名作者名换一下,就差不多可以了,如有能力也可自己改 css 样式表定制样式(比如加上半锁字体之类的我基本没采用过的设置)。

另外,最好在收尾阶段做一下字体子集化,可显著减小字体体积:传送门

static/image/hrline/4.gif

就个人来说,找素材和处理图片是最难办的,如果能在转换 epub 的时候稍微省一点工夫,也能减轻一点负担……

封面设计素材网站分享:
https://www.canva.cn/book-cover/
最近发现这个网站暂时来说是挺好用的,建议去注册登录一下账号,里面的免费书籍封面模板(甚至有很多蛮合适的国风模板),基本已经满足我这种用起 ps 来又菜又懒的人的最低需求了。

字体资源网站(免登录):
https://ztxz.org.cn/
https://freefonts.top/

在线图片超分辨率:
https://www.iloveimg.com/zh-cn/upscale-image
https://www.upscale.media/zh/upload
用于把低分辨率的老封面、小图片等等,通过 ai 算法进行质量和分辨率提升(x2 x4 倍),上面两个网站每天大概只能转一两张吧,不频繁转的话也够用了。

在线图片压缩:
https://www.iloveimg.com/zh-cn/compress-image
支持批处理,免费用户一次最多批量处理 20 张,这个不知道它具体是用什么实现的,好像比个人用的一些压缩工具要好,压缩出来的体积经常都能减小一半以上,而且如果要求不高的话,画质的损失应该也在可接受范围内,不是很容易察觉。

雪花纷飞 发表于 2023-12-20 13:31

感谢大佬的热心分享工具和教程

chetiayi 发表于 2023-12-20 13:37

本帖最后由 chetiayi 于 2023-12-20 17:38 编辑

这个可以有,又学到点东西。
sigil里面的搜索模板是不是可以实现类似的功能,稍微麻烦点。

兵河之眼 发表于 2023-12-20 17:20

素材:《浪子修仙》!!!

edennow 发表于 2023-12-20 18:08

chetiayi 发表于 2023-12-20 13:37
这个可以有,又学到点东西。
sigil里面的搜索模板是不是可以实现类似的功能,稍微麻烦点。

看了下用那个模板确实也可以,也就是需要额外自己手动加载一下罢了。

曼陀罗 发表于 2023-12-21 18:22

感谢老哥的教程 。

青衫剑客 发表于 2023-12-28 16:55

本帖最后由 青衫御剑等风来 于 2023-12-28 17:13 编辑

这时点击“插件”->“编辑”->“SplitChapter”,应该会调出如下弹窗(如果调不出来,说明你用的 python 有问题):
大佬,我显示运行失败,需要下载什python才能运行?

edennow 发表于 2023-12-28 18:45

青衫御剑等风来 发表于 2023-12-28 16:55
这时点击“插件”->“编辑”->“SplitChapter”,应该会调出如下弹窗(如果调不出来,说明你用的 python 有 ...



你应该用的是帖子说的“魔改版” Sigil 吧?
如果是的话,插件管理右上角这个使用绑定的 python 要勾选一下。
如果没有用魔改版 sigil,那你估计要另外装 python 了。

青衫剑客 发表于 2023-12-28 19:21

本帖最后由 青衫御剑等风来 于 2023-12-28 19:23 编辑

edennow 发表于 2023-12-28 18:45
你应该用的是帖子说的“魔改版” Sigil 吧?
如果是的话,插件管理右上角这个使用绑定的 python 要 ...
好的,只能下载Python了,谢谢大佬,随便下个python3.4以上版本就行是吧

edennow 发表于 2023-12-28 19:38

青衫御剑等风来 发表于 2023-12-28 19:21
好的,只能下载Python了,谢谢大佬,随便下个python3.4以上版本就行是吧

只要比较新的版本就可以吧,如果你确定自己装,安装的过程中很多 add to path 什么的选项能勾的都应该勾上。

得记得在插件管理那里指定一下 python 的路径,而且要自己装一下 pyQt5(还是它会自动装?忘了……)。

如果它没自动装 pyqt 的话,装完 python 之后,命令行执行一下:
pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/
页: [1] 2 3 4
查看完整版本: 10 秒生成一本网文 EPUB——Sigil+【分章助手】插件使用流程