我有一个大文件,分为每个类别名称下面都有下划线的类别。该文件不断变化,有80个类别。这是一个纯文本文件。我想这样做,以便每个类别名称是epub文件中的单独章节。我还想确保每章的名称都是本章的标题。有没有办法用Calibre自动执行此操作?也许一些正则表达式的魔法?例如,我希望以下类别的章节标题为:水果,蔬菜,草药。我希望它能自动解析(一种方法可能涉及识别正则表达式中的下划线)。我怎么能这样做?
Fruit
________
Apples
Bananas
Vegetables
____________
Cucumbers
Zucchini
Herbs
_____
thyme
cayenne
答案 0 :(得分:2)
因此,您的文本文件基本上是一个markdown
文件(read more)。我会使用类似html
(see here的内容将其转换为pandoc
,并注意pandoc支持一些扩展的markdown
功能,并且功能非常强大(甚至可以生成epub,但我还没有测试过))。
这样你的标题(带下划线的行)就会被翻译成<h*>
个标签。
然后您可以使用Calibre的电子书转换CLI工具(或gui)将其转换为mobi
或epub
,并指定分章(感谢开发人员,Calibre {{ 3}})。 (我只是注意到,Calibre / ebook-convert可以直接将markdown转换为epub / mobi!)
像:
ebook-convert input.html output.epub --chapter 'YOUR XPATH TO DETECT CHAPTERS' --chapter-mark pagebreak
答案 1 :(得分:0)
这很容易。你的档案就像降价了;您需要做的就是将扩展名更改为.md
(但您没有 - 请参阅下文)。
所以下划线的第一个标题是第一级,下一个具有相同类型下划线的后续标题也将是第一级。当你第一次开始使用不同的行时,那将是第二级等等。
我个人更喜欢用##等等##2开始标题1。
使用.epub
生成pandoc
需要一秒钟;示例命令如下:
pandoc myTextFile.md --latex-engine=xelatex -o myEpubFile.epub
我使用xelatex引擎是因为文本中需要一些unicode字符,但如果它是普通英语(ASCII) - 你不需要。就像那样,您也可以在几秒钟内生成.PDF
和.docx
格式。
如果您希望保留输入文件扩展名.txt
不是问题;只需在命令行中指定--from markdown
,无论文件扩展名是什么,输入都将被标记为markdown。当然 - 像.docx
这样的二进制格式无法以这种方式读取,但之后哟会收到错误消息。
我喜欢这种方法,它是闪电般快速,可调节的,不需要我打开口径。
Pandoc默认值也会开始每个级别1标题的新章节。您可以通过参数--epub-chapter-level
进行调整。