Develop the Yaml File
Each layout needs a special configuration file. The configuration file is a simple yaml-file. It is similar to the yaml-definitions for themes and plugins.
Basic Information
The yaml-file starts with some basic information. The information will be displayed next to the preview image of the layout:
Name: Typemill
Copyright: Sebastian Schürmanns, trendschau
Licence: Creative Commons BY 3.0
Link: https://trendschau.net
Sizes: A5 (148mm 210mm)
Photo: Photo by Markus Winkler on Unsplash
Nothing complicated here. Only the Name is mandatory. You can add as many information as you want, but keep in mind that it is displayed in the layout selection and too extensive information might destroy the layout.
Define Everything with Forms
In the next section of the yaml-file you can define the forms that will appear in the settings-tab of the eBook. You can use all fields from the typemill form-builder there. The definitions start with the keyword customforms
. Yes, you are right, this is flexible as hell, it means that you can define everything you need for you eBook-layout. Your eBook-cover has 3 images, 10 colors and 5 subtitles? No problem, just define it here!
These are the form-definitions for the eBook layout called "typemill":
customforms:
fields:
fieldsettitlepage:
type: fieldset
legend: Covertext and Fly Title
fields:
title:
type: text
label: Title of your eBook
description: Appears in the white box
subtitle:
type: text
label: Subtitle of your eBook
author:
type: text
label: Author
edition:
type: text
label: Edition
flytitle:
type: checkbox
label: Fly title
checkboxlabel: Add a fly title after the cover.
fieldsetcoverimage:
type: fieldset
legend: Cover Image
fields:
coverimage:
type: image
label: Upload a cover image
description: only jpg or png accepted.
coverimageonly:
type: checkbox
checkboxlabel: Use only the coverimage without background-colors and text.
fieldsetcovercolors:
type: fieldset
legend: Cover Colors
fields:
primarycolor:
type: text
label: Primary Background Color (top area)
placeholder: cadetblue
description: Use color name like 'black' or hex code like '#000000'.
primaryfontcolor:
type: text
label: Primary Font Color (in white box)
placeholder: black
description: Use color name like 'black' or hex code like '#000000'.
secondarycolor:
type: text
label: Secondary Background Color (bottom area)
placeholder: cadetblue
description: Use color name like 'black' or hex code like '#000000'.
secondaryfontcolor:
type: text
label: Secondary Font Color (bottom area)
placeholder: white
description: Use color name like 'black' or hex code like '#000000'.
fieldsetimprint:
type: fieldset
legend: Imprint
fields:
imprint:
type: textarea
label: Text for imprint (use markdown)
description: Keep empty to skip the imprint.
fieldsetdedication:
type: fieldset
legend: Dedication
fields:
dedication:
type: textarea
label: Text for dedication (use markdown)
description: Keep empty to skip the dedication.
fieldsettoc:
type: fieldset
legend: Table of Contents
fields:
toc:
type: checkbox
label: Table of contents
checkboxlabel: Add an automatically generated table of contents.
toctitle:
type: text
label: Title for the table of contents page
toclevel:
type: number
label: How many headline-levels (1-6) should be included?
toccounter:
type: checkbox
label: ToC Counter
checkboxlabel: Add a counter before the headlines.
fieldsetendnotes:
type: fieldset
legend: Endnotes
fields:
endnotes:
type: checkbox
checkboxlabel: Transform footnotes into endnotes
endnotestitle:
type: text
label: Title for the endnotes page
fieldsetblurb:
type: fieldset
legend: Blurb
fields:
blurb:
type: textarea
label: Text for the blurb (use markdown)
description: Keep empty to skip the blurb.
fieldsetimagequality:
type: fieldset
legend: Image Quality
fields:
originalimages:
type: checkbox
checkboxlabel: Use original images and do not resize them (use this for print only).
All standardforms will be rendered automatically as soon as the user selects your layout.
You can add, delete or change forms like you want and create stunning ebooks with it. However, the input fields originalimages
and endnotes
are connected to backend functionalities. Don't change them, if you want to use these functionalities:
fieldsetendnotes:
type: fieldset
legend: Endnotes
fields:
endnotes:
type: checkbox
checkboxlabel: Transform footnotes into endnotes
endnotestitle:
type: text
label: Title for the endnotes page
fieldsetimagequality:
type: fieldset
legend: Image Quality
fields:
originalimages:
type: checkbox
checkboxlabel: Use original images and do not resize them (use this for print only).
You can use the input of all forms in the twig template later.