Project metadata

The most important file in your project is meta.yml, which is in the _data folder. The meta.yml file contains all kinds of information about your project and the books in it – that is, project metadata.

Before you can output your books you must make sure the meta.yml file contains the necessary information about them. For instance, you can’t output a PDF unless you’ve defined which files should be included in the PDF.

The Electric Book template uses the data in meta.yml to populate and build navigation, tables of content, the parts of each book, translations, ISBNs and more.

Tip: You can see the metadata generated for any given page by using the page-info include on it. Simply add this tag to any page to include an output a summary of its metadata: {% include page-info %}.

YAML syntax

The meta.yml file is written in a syntax called YAML. At its simplest, YAML is just a list of values like this:

title: "Great Expectations"
creator: "Charles Dickens"

Importantly, you can nest information in YAML, so that information can be grouped. For example:

title: "Great Expectations"

In YAML, indentation must be accurate and must be created with spaces, not tabs. If a YAML file contains errors in indentation (or other syntax), your project will not output anything at all.

There are many subtle rules for structuring YAML, but if you just follow the existing structure in meta.yml carefully, you’ll be fine. Here is a good tutorial on YAML, if you want to know more.

There is more detail on editing meta.yml in Navigation and TOCs.