kobo吧 关注:10,702贴子:92,610
  • 15回复贴,共1

如何给无缩进的 epub 书籍添加首行缩进

只看楼主收藏回复



书籍情况:在网上找的被人修改过的 epub 书籍,这本书的样式文件被删,所有html文件里无导入样式的代码,样式被嵌入在标签里,html文件很多;
解决思路:添加样式文件或是直接插代码到html文件里,由于这本书的采用了最糟糕的样式形式,纠正太费劲,只好选择插入代码到html文件。又因文件众多,所以手动插入并不可取,效率低下,遂选择使用 sed 命令结合正则和通配符来完成;
方法:见图;
macOS命令:sed -i'' -e 's!\(<body>\)!\1<style type="text/css">p{text-indent: 2em;}</style>\n!' text[0-9]*.html
Linux命令:sed -i 's!\(<body>\)!\1<style type="text/css">p{text-indent: 2em;}</style>\n!' text[0-9]*.html
命令解读:
's!\(<body>\)!\1<style type="text/css">p{text-indent: 2em;}</style>\n!':使用正则添加样式,不用改,不解释;
text[0-9]*.html:匹配以text开头,以.html结尾,中间夹着任意长度的数字的文本,按需更改。图省事可直接使用text*.html,能适用于很多情况;
通配符解释:
[0-9]:匹配一个0到9的数字;
[A-Za-z]:匹配不区分大小写的字母组合;
*:匹配任意长度的字符;
[A-Za-z0-9]*:匹配任意长度的字母加数字的组合;
关于zip、epub格式:epub书籍采用zip格式压缩,所以像通常那般将文件压缩为zip文件后更名即可。


IP属地:江西1楼2024-08-20 10:30回复
    关于第3步,做一个补充说明,见图:


    IP属地:江西2楼2024-08-20 10:37
    回复
      广告
      立即查看
      我对calibre不熟,不知道能否用正则跨文件修改?希望对此熟悉的朋友能帮忙解答一下,谢谢


      IP属地:江西3楼2024-08-20 11:09
      回复
        牛的教程,不过我只会在每段落前面加两个全角空格😂


        IP属地:上海来自iPhone客户端4楼2024-08-20 14:44
        收起回复
          calibre 或者 sigil 就是干这个的啊,正则批量改结构,加个样式表就可以了


          IP属地:广东来自Android客户端5楼2024-08-20 17:58
          收起回复
            经吧友@triplerush的提醒,我在calibre里找到了相关功能,并测试了一遍,简单好用。



            IP属地:江西6楼2024-08-20 22:23
            回复
              太大意了,这么显眼的地方在当时竟然没注意到,流汗😥


              IP属地:江西7楼2024-08-30 16:35
              回复
                用sigil方便,直接加类型文本里加
                p {
                text-indent: 2em; /*首行缩进2个汉字空间*/
                }


                IP属地:上海8楼2024-09-11 14:23
                收起回复
                  广告
                  立即查看
                  我修改为以下之后为什么还是不行?
                  body {
                  background-color: #FFFFFF;
                  margin-bottom: 0px;
                  margin-left: 0px;
                  margin-right: 0px;
                  margin-top: 0px;
                  text-align: center;
                  }
                  p {
                  text-indent: 2em; /*首行缩进2个汉字空间*/
                  }
                  img {
                  max-height: 100%;
                  max-width: 100%


                  IP属地:广东来自iPhone客户端9楼2025-02-25 20:21
                  收起回复
                    好像可以用在koreader里面?


                    IP属地:四川来自手机贴吧10楼2025-02-25 21:31
                    收起回复