This page explains all the things EFM already does, hopefully in such a way that people can understand it.

If you want to see what is planned for the future, you can look at the [plan], but be warned that things which are only planned are more likely to change than things which are already done.

<h2>Encoding</h2>

EFM files must be in UTF-8.

<h2>YAML sections</h2>

An EFM file can have a YAML section, which is kind of like a cover page.  It must start with <code>---</code> on the first line of the file.  It must end with <code>...</code>.  Currently, it is not used for anything by the converter.

It should probably look something like this:

<verbatim>---
title: Awesome Story
...</verbatim>

<h2>Chapter headings</h2>

The heading for a chapter with a title should look like this:

<pre>Our hero goes fishing


It has to have at least five slashes.  More is fine.

For a chapter without a title, just use the slashes with a blank line before them.

<h2>Paragraphs</h2>

Put a blank line between paragraphs to separate them.

A paragraph can be all on one long line, or broken up into shorter lines, as long as it doesn't have any blank lines in the middle.

<h2>Italics</h2>

Start with <code>_</code>.  End with <code>_</code>.

If you don't end italics, they will automatically end at the end of the current paragraph or chapter title or line of verse.

<h2>Curly quotes, dashes, ellipses</h2>

If you are using a program that lets you put in actual curly quotes, dashes, and ellipses, you can do that.  Otherwise, EFM will do some conversion magic for you.

EFM will try to curl your quotes when it converts your file.  It will usually curl them the right way, except for apostrophes at the starts of words.  You can mark those with a forward slash to make them convert right, like this:

<pre>Rock /'n Roll</pre>

For dashes, use <code>--</code> for an endash and <code>---</code> for an emdash.  For ellipses, use three periods in a row.

<h3>Nitty-gritty quote conversion details that you don't have to read unless you want to</h3>

Both single and double straight quotes are converted to curly quotes as follows:

  #  If escaped with <code>\</code>, <code>|</code>, or right before, convert to opening, leave straight, or convert to closing (respectively).
  #  If after whitespace or start of element, and not before whitespace or end of element, opening quote.
  #  If after opening quote and not before whitespace or end of element, opening quote.
  #  Closing quote.

<h2>Scene breaks</h2>

A plain scene break is three or more blank lines.

One or two blank lines is just a regular paragraph break or element
separator.

More blank lines is still just one scene break.

A fancy scene break is a line with three or more <code>#</code> and any
number of spaces, and nothing else.  Any blank lines right before or after it are part of the scene break.

<h2>Verse (poetry)</h2>

A poem should start with a line containing only three or more <code>~</code> and any number of
spaces, and end with another line the same.

Inside a poem, each line is treated as a line of the poem, and blank lines are treated as space between stanzas.

You can indent lines with spaces.

If you want to break a long line in your EFM file, start each of the lines-that-are-continuing-the-current-line with a <code>.</code>.

<h2>Block quotes and epigraphs</h2>

A block quotes should start with a line that contains only <code>"""</code>, and end with another line the same.

An epigraphs should start with a line that contains only <code>:::</code>, and end with another line the same.

Epigraphs can contain block quotes.

Both epigraphs and block quotes can contain paragraphs and poems.