用标记文件构建电子书(epub或pdf)

md2ebook的Python项目详细描述


要求

请注意,您需要calibrepandoc(或两者)来生成 epub文件,但需要calibre(及其cli工具)来检查epub 一致性。

安装

一旦安装了非python需求,就可以在系统范围内安装,或者 在虚拟机中:

pip install -e ./

用法

要开始一本新书,只需使用以下命令创建一个新项目:

md2ebook start

或者:

md2ebook start directory-name

完成后,可以移动到此目录并使用build命令:

md2ebook build

这将构建一个html和一个epub版本的书,如 book.json文件。

额外命令

您可以使用以下方法检查ePub的完整性:

md2ebook check

选项

有关md2ebook命令的更多帮助,只需键入:

md2ebook --help

您将获得关于命令及其选项的大量文档。

封面

您可以使用以下三个选项之一为您的电子书指定封面:

  • 在命令行中添加--cover参数,
  • cover密钥添加到配置文件中,
  • 在项目的根目录中留下一个cover.(png|jpg|jpeg|svg)文件,这个 其中一个将用作封面。

如果没有一个导致现有文件,将使用丑陋的默认覆盖。

请注意,配置选项或可选参数可以是 url(是的,类似于http://example.com/beautiful-cover.jpg)。

配置文件

在图书目录的根目录中,有一个book.json文件 包含您的书本配置。此文件是必需的。

下面是它的强制选项,作为一个完整的示例:

{
    "files": ["chapter1.md", "chapter2.md", "chapter3.md"],
    "author": "Joe A. Nonymous",
    "title": "What a beautiful title",
    "fileroot": "what-a-beautiful-title",
    "generator": "calibre"
}
  • files是位于您的图书根目录中的标记文件列表。 它们将按照特定的顺序进行处理并编译成一本电子书。
  • author是这本书的作者的名字。
  • title是这本书的书名,它充满了荣耀。
  • fileroot此字符串将用作不同输出的root。 在下面的示例中,您将生成what-a-beautiful-title.htmlwhat-a-beautiful-title.epub在您的图书根目录中。
  • generator可以是“calibre”或“pandoc”。选一个你喜欢的(或 您系统中可用的那个)。

额外配置

  • pdf:使用build时触发pdf生成。设置为truefalse。如果未设置,则不会生成PDF。使用--with-pdf 替代此设置的选项。
  • cover:将设置封面的路径。这必须导致现有文件 如果可能的话,一个图像(png,jpg,jpeg,甚至svg)。
  • extensions:此字符串列表定义 Markdown Extensions 可以添加以分析标记文件。请参考降价 扩展以使用支持的扩展。

有关降价扩展的注释

以下是有关可用扩展名的列表:

  • 额外(“额外”)
    • 缩写:(“abbr”)
    • 属性列表:(“属性列表”)
    • 定义列表:(“def_list”)
    • 围栏代码块:(“围栏代码”)
    • 脚注:(“脚注”)
    • 表格:(“表格”)
    • 智能强:(“智能强”)
  • 警告:(“警告”)
  • codehilite:(“codehilite”)
  • headerid:(“headerid”)
  • 元数据:(“meta”)
  • 要打断的新行:(“nl2br”)
  • 理智列表:(“理智列表”)
  • 目录:(“TOC”)
  • 维基链接:(“维基链接”)

下面是使用扩展名的config.json示例:

{
"files": [
    "book.md"
],
"title": "Les 3 Mousquetaires",
"fileroot": "les-3-mousquetaires",
"author": "Alexandre Dumas",
"extensions": ["admonitions", "toc", "footnotes"],
"generator": "pandoc"
}

设置扩展参数as described in the docs

"extensions": ["headerid(level=3)"]

学分

这一款软件是Copyleft 2013-Bruno Bord。

它是根据麻省理工学院的许可条款发布的,更多信息请参见许可文件 细节。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Log4j:运行服务器日志时发出警告   ssl与Java通信到TLSEncypted CUPS打印服务器   Guice Java提供的方法没有已知的依赖关系?   java Android:EditText的默认文本大小是多少?   更正错误字符串的Java异常   string Java如何从来自多个源的数据推断类型   从路径错误创建java文件   java获取不同类安卓中切换按钮的状态   java扩展AnyVal和AnyRef的对象的内存分配有什么不同   java如何从callable(即runnable)获取类名   java Hornetq大量消息填满了磁盘空间   用java从excel中读取一行的多列?   java不使用JAXB将映射转换为XML   java将多个图像与一个图像进行比较   当X扩展Y时,javax不适用于参数Y   运行时jar文件中未显示java Python输出   JavaSpringMVC3:定义自己的DatatypeBinding   java从fragment类调用activity函数给出了NPE   java在时区、日历和SimpleDataFormat方面存在奇怪的问题