为何设计这样的功能
MarkEditor 也同样支持将当前目录转为一本电子书 (PDF 格式)。
如果只是导出单一的 PDF 文档,这不复杂,而将所有的文档导出为一本电子书,却非常麻烦。而 MarkEditor 坚持的一点是,一处书写,多处使用
,导出 PDF 电子书在某些特定场合下,用处非常大。比如一本书的初稿、一个团队内的文档共享、自己多年的文章汇总...
如何导出电子书 (PDF)
MarkEditor 导出的电子书,支持的文章层级最多为两级,每个目录内的index.md
会作为目录本身的文章存在。
在顶部菜单 Export
中选择 导出 PDF 电子书
即可。
- 自动封面: 如果没有封面文档对应,会自动根据标题、二级标题创建一个电子书的封面
- 创建索引: 在正式内容之前,会创建所有文档内容的树状索引
- 根目录文档排序优先: 如果选
是
,则根目录下既有文档,也有文件夹情况下,则文档排在目录之前 - PDF 密码: 打开 PDF 时需要的密码
制作电子书的封面
在文档根目录下放置cover.jpg
或者 cover.png
即可。
优先级更高是的cover.md
,如果它存在,那么文档本身转制成 PDF 时的第一页,会被作为封面。Markdown 是 HTML 的超集,所以,你还可以直接用 HTML 代码直接在cover.md
中绘制代码,需要注意 PDF 的页面尺寸是 A4 (21cm*29.7cm),然后你可以直接使用 CSS 的规则进行绝对位置的布局也会有不错的效果。
当然,如果都没有,根据电子书的标题、二级标题,也可以创建一个自动的封面来。
特殊的 metadata 声明
一个 Markdown 文档内,有几个 metadata 的声明,在最终导出 PDF 电子书的过程中有特殊的意义:
- pdf_book: no 的时候,表示当前文档不会出现在最终的 PDF 中
- pdf_book_title: no 的时候,默认的渲染模板中,不会显示当前文章的标题
- pdf_book_page: no 的时候,表示当前文档对应的最终 PDF 页面中,不会在尾部显示页码
- 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>