为何设计这样的功能

MarkEditor 也同样支持将当前目录转为一本电子书 (PDF 格式)。
如果只是导出单一的 PDF 文档,这不复杂,而将所有的文档导出为一本电子书,却非常麻烦。而 MarkEditor 坚持的一点是,一处书写,多处使用,导出 PDF 电子书在某些特定场合下,用处非常大。比如一本书的初稿、一个团队内的文档共享、自己多年的文章汇总...

如何导出电子书 (PDF)

MarkEditor 导出的电子书,支持的文章层级最多为两级,每个目录内的index.md会作为目录本身的文章存在。
在顶部菜单 Export 中选择 导出 PDF 电子书 即可。

导出界面上相关设置项说明:

  • 自动封面: 如果没有封面文档对应,会自动根据标题、二级标题创建一个电子书的封面
  • 创建索引: 在正式内容之前,会创建所有文档内容的树状索引
  • 根目录文档排序优先: 如果选 ,则根目录下既有文档,也有文件夹情况下,则文档排在目录之前
  • PDF 密码: 打开 PDF 时需要的密码

注意: 导出的时候,建议 MarkEditor 应该处于 day 这个样式主题之下。

制作电子书的封面

在文档根目录下放置cover.jpg 或者 cover.png即可。
优先级更高是的cover.md,如果它存在,那么文档本身转制成 PDF 时的第一页,会被作为封面。Markdown 是 HTML 的超集,所以,你还可以直接用 HTML 代码直接在cover.md中绘制代码,需要注意 PDF 的页面尺寸是 A4 (21cm*29.7cm),然后你可以直接使用 CSS 的规则进行绝对位置的布局也会有不错的效果。

当然,如果都没有,根据电子书的标题、二级标题,也可以创建一个自动的封面来。

特殊的 metadata 声明

一个 Markdown 文档内,有几个 metadata 的声明,在最终导出 PDF 电子书的过程中有特殊的意义:

  1. pdf_book: no 的时候,表示当前文档不会出现在最终的 PDF 中
  2. pdf_book_title: no 的时候,默认的渲染模板中,不会显示当前文章的标题
  3. pdf_book_page: no 的时候,表示当前文档对应的最终 PDF 页面中,不会在尾部显示页码
  4. pdf_book_index: no 的时候,表示当前文档,不会出现在 PDF 电子书的 INDEX 目录中

比如下面这篇 Markdown 的原文的示例,可以用作章节之间的封面、分割页:

---
pdf_book_title: no
pdf_book_page: no
pdf_book_index: no
---

<div style="margin-left:0" >
<div style="text-align:center; color:#188FE1; padding-top:9.5cm;font-size:3.5em;line-height:0.8" >
Hello World
</div>
</div>