3

我有一个大文件,它分为多个类别,每个类别名称下方都有一个下划线。该文件不断变化,有80个类别。它是一个纯文本文件。我想让每个类别名称都是 epub 文件中的单独章节。我还想确保每个章节名称都是章节的标题。有没有办法使用 Calibre 自动执行此操作?也许一些正则表达式魔法?例如,我希望以下类别的章节标题为:水果、蔬菜、草药。而且我希望它能够自动解析(一种方法可能涉及识别正则表达式中的下划线)。我怎样才能做到这一点?

Fruit
________
Apples
Bananas

Vegetables
____________
Cucumbers 
Zucchini

Herbs
_____
thyme
cayenne
4

2 回答 2

4

所以你的文本文件基本上是一个几乎markdown文件(阅读更多)。我会将其转换为html类似pandoc请参阅此处,并注意 pandoc 支持一些扩展markdown功能,并且非常有能力(甚至可以生成 epub,但我还没有测试过))。

这样,您的标题(下划线)将被转换为<h*>标签。

然后,您可以使用 Calibre 的 ebook-convert CLI 工具(或 gui)将其转换为mobior epub,并指定分节符(感谢开发人员,Calibre有一个非常好的文档)。(我刚刚注意到,Calibre/ebook-convert 可以直接将 markdown 转换为 epub/mobi!)

喜欢:

ebook-convert input.html output.epub --chapter 'YOUR XPATH TO DETECT CHAPTERS' --chapter-mark pagebreak
于 2012-11-27T09:49:49.280 回答
0

这很简单。您的文件已经像降价了;您需要做的就是将扩展名更改为.md(但您不必 - 见下文)。

因此,第一个带下划线的标题是一级标题,下一个具有相同类型下划线的后续标题也将是一级。当您第一次开始使用不同的线路时,那将是第二级,等等。

我个人更喜欢用#heading 2 和## 等开始标题1。

生成.epub需要一秒钟pandoc;示例命令如下:

pandoc myTextFile.md --latex-engine=xelatex -o myEpubFile.epub

我使用 xelatex 引擎是因为文本中需要一些 unicode 字符,但如果它是纯英文(ASCII) - 你不需要。就像这样,您也可以在几秒钟内制作.PDF.docx格式化。

如果您想保留输入文件扩展名.txt,这不是问题;只需--from markdown在命令行上指定,无论文件扩展名是什么,输入都将被读取为降价。当然 -.docx无法以这种方式读取二进制格式,但随后会收到错误消息。

我喜欢这种方法的地方在于它闪电般快速、可调节且不需要我打开口径。

Pandoc 默认值还会以每个 1 级标题开始新章节。您可以通过参数调整它--epub-chapter-level

于 2017-07-02T09:23:10.010 回答