summaryrefslogtreecommitdiff
path: root/src/posts/markdown/2020-03-30/creating-an-ebook-with-markdown/index.gmi
blob: 25fc38a6e09a78cceb17a3591a372ac8ea1a2a5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# Creating an Ebook With Markdown

> Mon 30th March 2020 By David T. Sadler.

Pandoc is a great tool for converting a file in one markup format into another. This means we can use it to convert a file written in Markdown into an EPUB file that is supported by many e-readers.

Lets start by writting a very simple markdown file called example_ebook.md.

```markdown
---
title:
- type: main
  text: Example Ebook
- type: subtitle
  text: An Ebook created from a Markdown file
creator:
- role: author
  text: David Sadler
publisher: Published by myself
---

This is an introduction.

# Chapter 1

This is the first paragraph of chapter 1.

This is the second paragraph of chapter 1.

Below is a list.

- Item One
- Item Two
- Item Three

# Chapter 2

This is the first paragraph of chapter 2.

This is the second paragraph of chapter 2.

# Chapter 3

This is the first paragraph of chapter 3.

This is the second paragraph of chapter 3.
```

Note that the file begins with a YAML metadata block that starts and ends with three hyphens (---). This allows you to specify EPUB metadata such as the title and author.

Converting this to EPUB is done by running pandoc.

```shell
$ pandoc example_ebook.md -t epub3 --toc -o example_ebook.epub
```

There are several options that need to be passed to pandoc.

* example_ebook.md - This argument is the file that you are converting.
* -t epub3 - Set the output format to be EPUB v3 book.
* --toc - Include a table of contents in the output document. This will be derived from the H1 headers in the markdown.
* -o example_ebook.epub - Tell pandoc to output the conversion to the named file instead of stdout.

You can now copy the file example_ebook.epub to any device that supports the format or use one of the many software readers such as Calibre. However, if you wish to read this on a Kindle device you will need to convert it to the Mobi format.

Amazon provides a command line tool called KindleGen that can convert our EPUB file into the Mobi format. After downloading the tool just run it as shown below.

```shell
$ kindlegen example_ebook.epub
```

This will create a file called example_ebook.mobi that you can copy to your Kindle to read.

### Links

=> https://pandoc.org/ Pandoc.
=> https://en.wikipedia.org/wiki/Markdown/ Markdown.
=> https://en.wikipedia.org/wiki/EPUB/ EPUB.
=> https://pandoc.org/MANUAL.html#extension-yaml_metadata_block YAML metadata block.
=> https://pandoc.org/MANUAL.html#epub-metadata EPUB metadata.
=> https://www.w3.org/community/epub3/ EPUB v3 book.
=> https://calibre-ebook.com/ Calibre Application.
=> https://en.wikipedia.org/wiki/Comparison_of_e-book_formats#Mobipocket Mobi Format.
=> https://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211 KindleGen Application.

=> /posts/markdown/ Markdown - Read More Posts.

I don't have comments as I don't want to manage them. You can however contact me at the below address if you want to.

=> mailto:david@davidtsadler.com Email david@davidtsadler.com

=> https://creativecommons.org/licenses/by-sa/4.0/ The contents of this site is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Copyright © 2021 David T. Sadler.

=> / Return to Homepage.