pandoc epub
Pandoc是用于将文件从一种标记语言转换为另一种标记语言的命令行工具。 在我对Pandoc的介绍中 ,我解释了如何将用Markdown编写的文本转换为网站,幻灯片和PDF。
在后续文章中,我将更深入地研究Pandoc ,展示如何从相同的Markdown源文件生成网站和ePub图书。 我将以我即将使用该过程创建的电子书GRASP Principles for Or-Oriented Mind作为示例。
首先,我将解释用于本书的文件结构,然后介绍如何使用Pandoc生成网站并将其部署在GitHub中。 最后,我演示了如何生成其配套的ePub书。
您可以在我的Programming Fight Club GitHub存储库中找到代码。
设置写作结构
我用Markdown语法编写所有文章。 您也可以使用HTML,但是当Pandoc将Markdown转换为ePub文档时,引入HTML越多,出现问题的风险就越大。 我的书遵循每文件一章的模式。 使用Markdown标题H1( # )声明章节。 您可以在每个文件中放置多个章节,但是将它们放在单独的文件中可以更轻松地查找内容并稍后进行更新。
元信息遵循类似的模式:每种输出格式都有其自己的元信息文件。 元信息文件定义有关文档的信息,例如要添加到HTML的文本或ePub的许可证。 我将所有Markdown文档存储在一个名为parts的文件夹中(这对于生成网站和ePub的Makefile很重要)。 例如,让我们看一下目录,序言和about章节(分为toc.md,preface.md和about.md文件),为清楚起见,我们将省略其余章节。
我的About文件可能像这样开始:
# About this book {-}
## Who should read this book {-}
Before creating a complex software system one needs to create a solid foundation.
General Responsibility Assignment Software Principles (GRASP) are guidelines to assign
responsibilities to software classes in object-oriented programming.
完成各章后,下一步是添加元信息以设置网站和ePub的格式。
生成网站
创建HTML元信息文件
我网站的元信息文件(web-metadata.yaml)是一个简单的YAML文件,其中包含有关作者,标题,权利, <head>标记的内容以及HTML文件的开头和结尾的内容的信息。
我建议(至少)在web-metadata.yaml文件中包括以下字段: