Overview

E-mail sections are created to offer a convenient way to add complex elements to your novem mails. This document explains the basic concept along with some common features for all sections.

Section format

The novem e-mail sections builds on the section grammar explained under the novem advanced markdown documentation. In particular there are two types of sections:

  • Single statement sections
  • Multi statement sections

Single statement sections

The single statement section consists of a single statement and its parameters.

{{ section_type     # section open and type
  param: one        # parameters
  param: two        #
}}                  # section close

This is mostly used for things that embed other resources into your e-mail.

Multi statement sections

Multi statement sections are a bit more complex, they consists of an opening statements, but must be followed by a closing statement later in the document. The closing statement is the same as the open statement but with a leading slash / and no arguments/parameters.

{{ section_type         # section open and type
  param: one            # parameters
  param: two            #
}}                      # closing the top, but opening the 
                        # the multi section

Other text and markdown # section content
supplied by the user.
* list
* item

{{ /section_type  }}    # closing multi section tag

This is mostly used for including longer form text in your document that has special consideration such as supplying preivew text or formatting entire paragraphs/sections.

Currently there are no support for nesting statements in novem e-mails, but we hope to add support for this in the future.

Simplified sections

In addition to the long form sections shown above, if the user does not wish to add any arguments (and thus using the default paramter values) open and close sections can be written on single lines.

{{ section_type }}
content
{{ /section_type }}

See the preview section for an example of this.

Common parameters

All novem sections supports a few common parameters that can be helpful to format and get the most out of your e-mail.

Spacing controls

Spacing is an important part of any good document, so in addition to a separate padding section we also support generic padding (p) and margin (m) controls on all sections.

The syntax is similar to the plot table padding with a directional indicator and a magnitude number between 0 and 5.

 l  -- add left padding to section
 r  -- add right padding to section
 t  -- add top padding to section
 b  -- add bottom padding to section
 
 x  -- add left and rigth padding to section
 y  -- add top and bottom padding to section
 
 a  -- add paddings to sides of the section

To supply multiple values use yaml array notation.

Examples

Add a magnitude 2 padding around a paragrap.

{{ paragraph
  padding: a2
}}

Paragraph text

{{ /paragraph }}

Add an inner padding of 3 a margin of 2 at the top and bottom along with a 1 wide top border of color gray-500 for a paragraph. Also using short forms where possible.

{{ para
  p: a3
  m: y2
  b: t1 gray-500
}}

Paragraph text

{{ /para }}

Add a padding of 1 to the left and 4 to the right.

{{ para
  p: [l1, r4]
}}

Paragraph text

{{ /para }}

Borders

In addition to spaces, novem mail also supports adding borders to our sections. The border grammar is very similar to the spacing controls above.

The parameters are border, borders or b along with a direction, size and optional color code.

Examples

Add a border all around a paragraph, the inverse color will be used by default.

{{ para
  b: a1
}}

Paragraph text

{{ /para }}

Add a paragraph with red left border and green right border.

{{ para
  b: [l1 red, r1 green]
}}

Paragraph text

{{ /para }}

Colors

We also support adding foreground and background colors to all our sections. The parameters here are foreground, fg, background or bg. Like all our colors you can either specify a named novem color an explicit hexa code.

If you want to specifically set a dark mode variant then two colors can be supplied instead.

Examples

A paragraph with a light background with darker text and a solid outer border.

{{ para
  b: a1 inverse
  bg: gray-300
  fg: gray-800
}}

Paragraph text

{{ /para }}