Markdown++ Cheatsheet
This cheatsheet is designed to be a reference for quickly discovering the many ways in which you can use Markdown and Markdown++ to organize your content for easy content creation, reuse, and publishing.
*Since Markdown++ is designed to be fully backward compatible with Markdown, each section is divided into a Markdown part and a Markdown++ part, allowing users to focus on writing and productivity rather than the issues of content architecture, reuse, and publishing.
Titles
Markdown considers Title and Heading 1 paragraphs to be the most significant paragraphs within a file.
*Title paragraphs are one way to attribute the most important heading paragraph in a file, however they are not required.
Markdown Syntax Generated Output ePublisher Style(s) Type(s)
Text for Title
===

Text for Title

Title 1 Paragraph
Text for Title
---

Text for Title

Title 2 Paragraph
Titles with Markdown++
Examples of using Markdown++ to add additional paragraph information to your Markdown title syntax such as a style name, a custom alias that can be linked to, one or more markers, and a hidden comment that passes through to the generated output.
Markdown++ Syntax Generated Output ePublisher Style(s) Type(s)
<!--style:CustomTitle-->
Text for Title
=====

Text for Title

CustomTitle Paragraph
<!--style:CustomTitle; #CustomAlias; pass-through comment-->
Title with linkable custom alias
==========================

Title with linkable custom alias

CustomTitle Paragraph
<!--style:CustomTitle; markers:{"TopicAlias":"TopicID","Keywords":"Word1"}-->
Title with markers
==================

Title with markers

CustomTitle Paragraph
Headings
Heading paragraphs are the traditional way to organize hierarchical paragraphs within a markdown file. If Title paragraphs are not used, then the Heading 1 paragraph would be the most significant in the file.
Markdown Syntax Generated Output ePublisher Style(s) Type(s)
# Heading

Heading

Heading 1 Paragraph
## Heading

Heading

Heading 2 Paragraph
### Heading

Heading

Heading 3 Paragraph
#### Heading

Heading

Heading 4 Paragraph
##### Heading
Heading
Heading 5 Paragraph
###### Heading
Heading
Heading 6 Paragraph
Headings with Markdown++
Examples of using Markdown++ to add additional paragraph information to your markdown heading syntax such as a style name, a custom alias that can be linked to, one or more markers, and a hidden comment that passes through to the generated output.
Markdown++ Syntax Generated Output ePublisher Style(s) Type(s)
<!--style:Procedure Title-->
# Heading

Heading

Procedure Title Paragraph
<!--style:Section Title; markers:{"TopicAlias":"TopicID", "Keywords":"Word1,Word2", "Description":"Summary text"}-->
# Heading

Heading

Section Title Paragraph
Paragraphs and Line Breaks
Naturally create paragraphs using one more more lines of text followed by a blank line. Do not indent paragraphs with spaces or tabs unless you intend to nest them as part of a list structure. This is the most common type of paragraph in a file.
Markdown Syntax Generated Output ePublisher Style(s) Type(s)
One or more lines of text followed by a blank line


One or more lines of text followed by a blank line

Paragraph Paragraph
Force a line break 
using one or more white spaces at the end of the line

Force a line break using one or more white spaces at the end of the line

Paragraph Paragraph
Embed a line break using the HTML<br />
element

Embed a line break using the HTML element

Paragraph Paragraph
Paragraphs with Markdown++
Examples of using Markdown++ to add additional paragraph information to your markdown paragraph syntax such as a style name, a custom alias that can be linked to, one or more markers, and a hidden comment that passes through to the generated output.
Markdown++ Syntax Generated Output ePublisher Style(s) Type(s)
<!--style:Unique-->
Paragraph with unique style name.
Paragraph with unique style name Unique Paragraph
<!--style:Unique; #CustomAlias-->
Paragraph with linkable custom alias
Paragraph with linkable custom alias Unique Paragraph
<!--style:Unique; markers:{"TopicAlias":"TopicID"}-->
Paragraph with marker
Paragraph with marker Unique Paragraph
Lists
Use list structures to organize paragraphs into unordered or ordered lists.
  • To create an unordered list, add dashes (-), asterisks (*), or plus signs (+) in front of line items.
  • To create an ordered list, add line items with numbers followed by a period and then a space. The exact numerical value is not important as it will be calculated when rendered
  • Use indentation to nest paragraphs, other lists, or tables within lists.
Markdown Syntax Generated Output ePublisher Style(s) Type(s)
- First item
- Second item
- Third item
  • First item
  • Second item
  • Third item
UList, UList Item, UList Paragraph Paragraph, Paragraph, Paragraph
* First item
* Second item
  - Indented item
  - Indented item
  • First item
  • Second item
    • Indented item
    • Indented item
UList, UList Item, UList Paragraph Paragraph, Paragraph, Paragraph
+ First item
  * Second item
    - Third item
  * Fourth item
  • First item
    • Second item
      • Third item
    • Fourth item
UList, UList Item, UList Paragraph Paragraph, Paragraph, Paragraph
1. First item
1. Second item
1. Third item
  1. First item
  2. Second item
  3. Third item
OList, OList Item, OList Paragraph Paragraph, Paragraph, Paragraph
1. First item
   1. Second item
   1. Third item
1. Fourth item
  1. First item
    1. Second item
    2. Third item
  2. Fourth item
OList, OList Item, OList Paragraph Paragraph, Paragraph, Paragraph
1. First item
   - Second item
   - Third item
1. Fourth item
  1. First item
    • Second item
    • Third item
  2. Fourth item
OList, OList Item, OList Paragraph, UList, UList Item, UList Paragraph Paragraph, Paragraph, Paragraph, Paragraph, Paragraph, Paragraph
- First item
  Nested paragraph
- Second item
  • First item
  • Nested paragraph

  • Second item
UList, UList Item, UList Paragraph Paragraph Paragraph, Paragraph, Paragraph, Paragraph
Lists with Markdown++
Examples of using Markdown++ to add additional information to your markdown list syntax such as unique style name(s).
Markdown++ Syntax Generated Output ePublisher Style(s) Type(s)
<!--style:UniqueList-->
- First item
- Second item
- Third item
  • First item
  • Second item
  • Third item
UniqueList, UniqueList Item, UniqueList Paragraph Paragraph, Paragraph, Paragraph
- <!--style:Unique-->
  First item
- <!--style:Unique-->
  Second item
- Third item
  • First item
  • Second item
  • Third item
UList, UList Item, UList Unique, UList Paragraph Paragraph, Paragraph, Paragraph, Paragraph
<!--style:UniqueList-->
1. First item
1. Second item
1. Third item
  1. First item
  2. Second item
  3. Third item
UniqueList, UniqueList Item, UniqueList Paragraph Paragraph, Paragraph, Paragraph
<!--style:UniqueList-->
1. <!--style:Unique-->
   First item
1. <!--style:Unique-->
   Second item
  1. First item
  2. Second item
  3. Third item
UniqueList, UniqueList Item, UniqueList Unique Paragraph, Paragraph, Paragraph
Code
There are two ways to create code paragraphs in Markdown.
  1. Code Block: indent every line with at least four white space characters
  2. Code Fence: first and last lines contain three consequtive backtick characters.
*Code paragraphs have the unique characteristic of preserving white space and not requiring an escape sequence to render characters that have special meaning in markdown.
Markdown Syntax Generated Output ePublisher Style(s) Type(s)
    var int x, y, z;
    
    z = 3*x + 4*y
var int x, y, z;

z = 3*x + 4*y
Code Block Paragraph
```
var int x, y, z;

z = 3*x + 4*y
```
var int x, y, z;

z = 3*x + 4*y
Code Fence Paragraph
- List with nested Code Fence
  ```
  var int x, y, z;

  z = 3*x + 4*y
  ```
  • List with nested Code Fence
    var int x, y, z;
    
    z = 3*x + 4*y
UList, UList Item, UList Paragraph, Code Fence Paragraph, Paragraph, Paragraph, Paragraph
Blockquotes
To create a blockquote place a greater-than (>) character followed by a white space at the beginning of one or more consequtive lines.
Markdown Syntax Generated Output ePublisher Style(s) Type(s)
> Abrahim Lincoln said:
> Four score and seven years ago...
Abrahim Lincoln said: Four score and seven years ago...
Blockquote Paragraph
> My original email
>> Your first reply
>>> My reply to your reply
My original email
Your first reply
My reply to your reply
Blockquote Paragraph
- List with blockquote
  > blockquote here
  > second line of blockquote
  • List with blockquote
    blockquote here second line of blockquote
Blockquote Paragraph
Horizontal Rules
To seperate paragraphs with a solid line, you can place three or more hyphens, dashes, or underscores (-, \*, or \_) together on a line by themselves.
Markdown Syntax Generated Output ePublisher Style Name(s) Style Type(s)
---

Horizontal Rule Paragraph
***

Horizontal Rule Paragraph
___

Horizontal Rule Paragraph
HTML
To use HTML code directly within your source content, just start and end the HTML code with matching start and end tags. For example:
<h1>Hello World!</h1>
Markdown Syntax Generated Output ePublisher Style Name(s) Style Type(s)
<iframe 
  width="165"
  height="90"
  src="https://www.youtube.com/embed/D4QoQWboM-U"
  frameborder="0"
  allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
  allowfullscreen>
</iframe>
youtube iframe HTML Paragraph
Tables
Use table structures to organize column information. In markdown, tables are easy to create and can organize paragraphs into one or more columns with a heading row and one or more body rows.
Markdown Syntax Generated Output ePublisher Style Name(s) Style Type(s)
|Cell Head1|Cell Head2|
|----------|----------|
|Cell Body1|Cell Body2|
Cell Head1Cell Head2
Cell Body1Cell Body2
Default, Table Cell Head, Table Cell Body Table, Paragraph, Paragraph
- List item with nested table
  |Cell Head1|Cell Head2|
  |----------|----------|
  |Cell Body1|Cell Body2|
  • List item with nested table
    Cell Head1Cell Head2
    Cell Body1Cell Body2
UList, UList Item, UList Paragraph, Default, Table Cell Head, Table Cell Body Paragraph, Paragraph, Paragraph, Table, Paragraph, Paragraph
|Default Alignment|
|-----------------|
|Body|
Default Alignment
Body
Default, Table Cell Head, Table Cell Body Table, Paragraph, Paragraph
|Left Alignment|
|:-------------|
|Body|
Left Alignment
Body
Default, Table Cell Head, Table Cell Body Table, Paragraph, Paragraph
|Center Alignment|
|:--------------:|
|Body|
Center Alignment
Body
Default, Table Cell Head, Table Cell Body Table, Paragraph, Paragraph
|Right Alignment|
|-------------:|
|Body|
Right Alignment
Body
Default, Table Cell Head, Table Cell Body Table, Paragraph, Paragraph
Tables with Markdown++
Examples of using Markdown++ to assign a unique style name to your tables.
Markdown++ Syntax Generated Output ePublisher Style Name(s) Style Type(s)
<!--style:Unique-->
|Cell Head1|Cell Head2|
|----------|----------|
|Cell Body1|Cell Body2|
Cell Head1Cell Head2
Cell Body1Cell Body2
Unique, Unique Cell Head, Unique Cell Body Table, Paragraph, Paragraph
Inline Text
To add style to one or more characters of text, use the *, _, ~, or ` characters both before and after the text.
Markdown Syntax Generated Output ePublisher Style Name(s) Style Type(s)
**Bold text**
Bold text Bold Character
*Italic text*
Italic text Italic Character
~~Strikethrough text~~
Strikethrough text Strikethrough Character
`Embedded code`
Embedded code Code Character
**Bold *nested italic* text**
Bold nested italic text Bold, Italic Character, Character
__Alternate Bold text__
Alternate bold text Bold Character
_Alternate Italic text_
Alternate italic text Italic Character
Inline Text with Markdown++
Examples of using Markdown++ to assign a unique style name to your inline text.
Markdown++ Syntax Generated Output ePublisher Style Name(s) Style Type(s)
<!--style:CustomBold-->**Bold**
Bold CustomBold Character
Images
To insert an image into your source content use the following pattern to describe the path to your image, its alternate text, and its title text.
![<Alt text>](<Path> "Title text")
Markdown Syntax Generated Output ePublisher Style Name(s) Style Type(s)
![logo](images/logo.png "Logo")
logo Image Graphic
Images with Markdown++
Examples of using Markdown++ to assign a unique style name to your image.
Markdown++ Syntax Generated Output ePublisher Style Name(s) Style Type(s)
<!--style:CustomImage-->![logo](images/logo.png "Logo")
logo CustomImage Graphic
Aliases
There are two kinds of aliases used in Markdown++ for resolving link destinations.
  1. Heading Aliases: created automatically for markdown heading paragraphs using the paragraph text.
    *Automatic generation convention:
    • All text is converted to lowercase
    • All non-word text (such as punctuation or HTML) is removed
    • All spaces are converted to hyphens
    • Two or more hyphens in a row are converted to one
    • If a header with the same ID has already been generated, a unique incrementing number is appended, starting at "1"
  2. Custom Aliases (Markdown++) which are manually inserted into your content as follows:
    <!--#CustomAlias-->
    *Markdown++ Custom Aliases are recommended over Heading Aliases unless your heading text is guaranteed to remain static (unchanged) over time.
Markdown++ Syntax Generated Output ePublisher Style Name(s) Style Type(s)
<!--#CustomAlias-->

N/A N/A
<!--style:Procedure Title; #CustomAlias-->
# Heading

Heading

Procedure Title Paragraph
Links
There are two types of links that can be created in markdown.
  1. Link within the same or to a different markdown file
    [Link text](<Path>#<Optional Fragment> "Title Text")`
  2. Link to a web address
    [Link text](https://www.webworks.com/ "webworks website")
Markdown Syntax Generated Output ePublisher Style Name(s) Style Type(s)
[My Link](#MyAnchor "Title")

My Link

Link Character
[My Link](topics/file.md#MyAnchor "Title")

My Link

Link Character
[My Link](https://www.webworks.com/ "WebWorks")

My Link

Link Character
<https://www.webworks.com/>

https://www.webworks.com/

Link Character
[Reverb Runtime Context Link](#context/<TopicID> "Title")

Reverb Runtime Context Link

Link Character
[Reverb Runtime Search Link](#search/<Words> "Search for Words")

Reverb Runtime Search Link

Link Character
Links with Markdown++
Assigning a custom ePublisher style name to the link text.
Markdown++ Syntax Generated Output ePublisher Style Name(s) Style Type(s)
[<!--style:CustomLink-->*Link text*](topics/file.md#MyAnchor "Title")

My Link

CustomLink Character
Link References
A link reference is a link created using a link key enclosed in brackets: [<Link Key>]. Then somewhere else in the file the link key is used with a : character to supply the actual link path and fragment.
Markdown Syntax Generated Output ePublisher Style Name(s) Style Type(s)
[<Link Text>][<Link Key>]

<Link Text>

Link Character
[<Link Key>]: topics/file.md#fragment "Title"
Link, Paragraph Character, Paragraph
Footnotes
Footnotes use a sequential key enclosed in brackets, such as: [^1]. Then somewhere else in the file the footnote key is used with a : character to define the footnote content.
Markdown Syntax Generated Output ePublisher Style Name(s) Style Type(s)
quick brown fox[^1]

quick brown fox1

Footnote Reference, Paragraph Character, Paragraph
[^1]: Foxes are red.

1Foxes are red.

Paragraph Paragraph
Footnotes with Markdown++
Assigning a custom style name to the footnote definition paragraph.
Markdown++ Syntax Generated Output ePublisher Style Name(s) Style Type(s)
[^1]: <!--style:CustomParagraph-->
      Foxes are red.

1Foxes are red.

CustomParagraph Paragraph
Escape Character (\)
The escape character is the backslash character: \, which allows you to quickly disable special handling of reserve characters such as, *, #, |, <, and \.
Markdown Syntax Generated Output ePublisher Style Name(s) Style Type(s)
\* not a bullet

* not a bullet

N/A N/A
Markers
A markers command allows you to insert one or more meta data name/value pairs at a specific location in your source content files. Then during the publication process, the meta data can be used to enable functionality or characteristics in the generated output.
Markdown Syntax ePublisher Style Name(s) Style Type(s)
<!--markers:{"Keywords": "word1, word2"}-->
Keywords Marker
<!--markers:{"Description": "Topic summary here"}-->
Description Marker
<!--markers:{"TopicAlias": "TopicID"}-->
TopicAlias Marker
Includes
An include command allows you to include the Markdown++ source content from another file into your current source file. If your <Path> is relative, it should be relative to the file that includes it.
Includes Syntax

<!--include:<Path>-->

Conditions
A condition command allows you to delineate a chunk of content so that its inclusion in the final output can be controlled by ePublisher using the names of conditions and setting their value to Hidden or Visible.
Conditions Syntax

  • Single Condition
    <!--condition:<ConditionName>-->
    Conditional content here.
    <!--/condition-->
  • Require Multiple Conditions (Logical AND)
    <!--condition: OnlineOnly Version1-->
    Conditional content that is visible only when both conditions are set to visible in ePublisher.
    <!--/condition-->
  • One of Multiple Conditions (Logical OR)
    <!--condition: OnlineOnly, PrintOnly-->
    Conditional content that is visible when at least one of the conditions is set to visible in ePublisher.
    <!--/condition-->
  • Using Logical Not (!) Character
    <!--condition: !PrintOnly !OnlineOnly-->
    Conditional content that is visible when the PrintOnly and OnlineOnly conditions are set to hidden.
    <!--/condition-->

Variables
A variable can be used as a placeholder in your source content that will be set to a specific value by ePublisher when generating output. Variables are preceeded with the character: $ and ended with the character: ;. You can use them as text in your source content as well as in your markers.
Variables Syntax

Text with variable: $ProductName;
*Variables are for use with chunks of single line text and their values in ePublisher cannot include other variables or Markdown++ commands.

Was this helpful?
Last modified date: 10/28/2021