17.7. SmartContent Syntax
SmartContent allows you to write one email that will look great in both HTML and text email clients. It uses a syntax that has recently become popular called Markdown, developed by John Gruber. Markdown is a way of formatting text that looks good just as text, but can also be converted to HTML. Below is a basic introduction to Markdown, you can read much more about it by visiting John Gruber's page.
TIP: It's also helpful to simply try Markdown out; Dingus is a web application that allows you type your own Markdown-formatted text and translate it to XHTML.
Paragraphs, headers, blockquotes
A paragraph is simply one or more consecutive lines of text, separated by one or more blank lines. (A blank line is any line that looks like a blank line — a line containing nothing but spaces or tabs is considered blank.) Normal paragraphs should not be indented with spaces or tabs.
Markdown offers two styles of headers: Setext and atx. Setext-style headers for <h1> and <h2> are created by "underlining" with equal signs (=) and hyphens (-), respectively. To create an atx-style header, you put 1-6 hash marks (#) at the beginning of the line — the number of hashes equals the resulting HTML header level.
Blockquotes are indicated using email-style '>' angle brackets.
A First Level Header ==================== A Second Level Header --------------------- Now is the time for all good men to come to the aid of their country. This is just a regular paragraph. The quick brown fox jumped over the lazy dog's back. ### Header 3 > This is a blockquote. > > This is the second paragraph in the blockquote. > > ## This is an H2 in a blockquote
A First Level Header
A Second Level Header
Now is the time for all good men to come to the aid of their country. This is just a regular paragraph.
The quick brown fox jumped over the lazy dog's back.
This is a blockquote.
This is the second paragraph in the blockquote.
This is an H2 in a blockquote
Markdown uses asterisks and underscores to indicate spans of emphasis.
Some of these words *are emphasized*. Some of these words _are emphasized also_. Use two asterisks for **strong emphasis**. Or, if you prefer, __use two underscores instead__.
Some of these words are emphasized. Some of these words are emphasized also.
Use two asterisks for strong emphasis. Or, if you prefer, use two underscores instead.
Unordered (bulleted) lists use asterisks, pluses, and hyphens (*, +, and -) as list markers. These three markers are interchangable; this:
* Candy. * Gum. * Booze.
+ Candy. + Gum. + Booze.
- Candy. - Gum. - Booze.
all produce the same output:
Ordered (numbered) lists use regular numbers, followed by periods, as list markers:
1. Red 2. Green 3. Blue
You can create multi-paragraph list items by indenting the paragraphs by 4 spaces or 1 tab:
* A list item. With multiple paragraphs. * Another item in the list.
A list item.
With multiple paragraphs.
Another item in the list.
To create a link, use the inline-style links with parentheses immediately after the link text. For example:
This is an [example link](http://example.com/).
This is an example link.
Image syntax is very much like link syntax.
Both of the above examples produce the same output:
In a regular paragraph, you can create code span by wrapping text in backtick quotes. Any ampersands (&) and angle brackets (< or >) will automatically be translated into HTML entities. This makes it easy to use Markdown to write about HTML example code:
I strongly recommend against using any `<blink>` tags. I wish SmartyPants used named entities like `—` instead of decimal-encoded entites like `—`.
I strongly recommend against using any
I wish SmartyPants used named entities like
—instead of decimal-encoded entites like
To specify an entire block of pre-formatted code, indent every line of the block by 4 spaces or 1 tab. Just like with code spans, &, <, and >characters will be escaped automatically.
If you want your page to validate under XHTML 1.0 Strict, you've got to put paragraph tags in your blockquotes: <blockquote> <p>For example.</p> </blockquote>
If you want your page to validate under XHTML 1.0 Strict, you've got to put paragraph tags in your blockquotes:
<blockquote> <p>For example.</p> </blockquote>