|
|
|
================
|
|
|
|
Markdown: Basics
|
|
|
|
================
|
|
|
|
|
|
|
|
* _[Markdown Basics]( "Markdown Basics")_
|
|
|
|
* [Syntax][]
|
|
|
|
* [License][]
|
|
|
|
|
|
|
|
- - - - -
|
|
|
|
|
|
|
|
------------------------------------------------
|
|
|
|
Getting the Gist of Markdown's Formatting Syntax
|
|
|
|
------------------------------------------------
|
|
|
|
|
|
|
|
This page offers a brief overview of what it's like to use Markdown.
|
|
|
|
The [syntax page] [s] provides complete, detailed documentation for
|
|
|
|
every feature, but Markdown should be very easy to pick up simply by
|
|
|
|
looking at a few examples of it in action. The examples on this page
|
|
|
|
are written in a before/after style, showing example syntax and the
|
|
|
|
HTML output produced by Markdown.
|
|
|
|
|
|
|
|
It's also helpful to simply try Markdown out; the [Dingus] [d] is a
|
|
|
|
web application that allows you type your own Markdown-formatted text
|
|
|
|
and translate it to XHTML.
|
|
|
|
|
|
|
|
**Note:** This document is itself written using Markdown; you
|
|
|
|
can [see the source for it by adding `.md` to the URL] [src].
|
|
|
|
|
|
|
|
[syntax]: syntax.html "Markdown Syntax"
|
|
|
|
[license]: license.html "License Information"
|
|
|
|
[src]: basics.md
|
|
|
|
|
|
|
|
|
|
|
|
--------------------------------
|
|
|
|
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. Note that Markdown expands all tabs to spaces before
|
|
|
|
doing anything else.
|
|
|
|
|
|
|
|
Markdown offers two styles of headers: *Setext* and *atx*.
|
|
|
|
Setext-style headers for `<h1>`, `<h2>` and `<h3>` are created by
|
|
|
|
"underlining" with equal signs (`=`), hyphens (`-`) and tildes (`~`)
|
|
|
|
respectively. An optional matching "overline" may precede the header.
|
|
|
|
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.
|
|
|
|
|
|
|
|
Markdown:
|
|
|
|
|
|
|
|
====================
|
|
|
|
A First Level Header
|
|
|
|
====================
|
|
|
|
|
|
|
|
A Second Level Header
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
A Third 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 4
|
|
|
|
|
|
|
|
> This is a blockquote.
|
|
|
|
>
|
|
|
|
> This is the second paragraph in the blockquote.
|
|
|
|
>
|
|
|
|
> ## This is an H2 in a blockquote
|
|
|
|
|
|
|
|
|
|
|
|
Output:
|
|
|
|
|
|
|
|
<h1>A First Level Header</h1>
|
|
|
|
|
|
|
|
<h2>A Second Level Header</h2>
|
|
|
|
|
|
|
|
<h3>A Third Level Header</h3>
|
|
|
|
|
|
|
|
<p>Now is the time for all good men to come to
|
|
|
|
the aid of their country. This is just a
|
|
|
|
regular paragraph.</p>
|
|
|
|
|
|
|
|
<p>The quick brown fox jumped over the lazy
|
|
|
|
dog's back.</p>
|
|
|
|
|
|
|
|
<h4>Header 3</h4>
|
|
|
|
|
|
|
|
<blockquote>
|
|
|
|
<p>This is a blockquote.</p>
|
|
|
|
|
|
|
|
<p>This is the second paragraph in the blockquote.</p>
|
|
|
|
|
|
|
|
<h2>This is an H2 in a blockquote</h2>
|
|
|
|
</blockquote>
|
|
|
|
|
|
|
|
|
|
|
|
~~~~~~~~~~~~~~~
|
|
|
|
Phrase Emphasis
|
|
|
|
~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Markdown uses asterisks and underscores to indicate spans of emphasis.
|
|
|
|
|
|
|
|
Markdown:
|
|
|
|
|
|
|
|
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__.
|
|
|
|
Or, even, ~~strike through instead~~.
|
|
|
|
|
|
|
|
Output:
|
|
|
|
|
|
|
|
<p>Some of these words <em>are emphasized</em>.
|
|
|
|
Some of these words <em>are emphasized also</em>.</p>
|
|
|
|
|
|
|
|
<p>Use two asterisks for <strong>strong emphasis</strong>.
|
|
|
|
Or, if you prefer, <strong>use two underscores instead</strong>.
|
|
|
|
Or, even, <strke>strike through instead</strike>.</p>
|
|
|
|
|
|
|
|
|
|
|
|
-----
|
|
|
|
Lists
|
|
|
|
-----
|
|
|
|
|
|
|
|
Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,
|
|
|
|
`+`, and `-`) as list markers. These three markers are
|
|
|
|
interchangable; this:
|
|
|
|
|
|
|
|
* Candy.
|
|
|
|
* Gum.
|
|
|
|
* Booze.
|
|
|
|
|
|
|
|
this:
|
|
|
|
|
|
|
|
+ Candy.
|
|
|
|
+ Gum.
|
|
|
|
+ Booze.
|
|
|
|
|
|
|
|
and this:
|
|
|
|
|
|
|
|
- Candy.
|
|
|
|
- Gum.
|
|
|
|
- Booze.
|
|
|
|
|
|
|
|
all produce the same output:
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li>Candy.</li>
|
|
|
|
<li>Gum.</li>
|
|
|
|
<li>Booze.</li>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
Ordered (numbered or lettered) lists use regular numbers (or letters or
|
|
|
|
roman numerals), followed by periods (or right parentheses), as list
|
|
|
|
markers:
|
|
|
|
|
|
|
|
1. Red
|
|
|
|
2. Green
|
|
|
|
3. Blue
|
|
|
|
|
|
|
|
Output:
|
|
|
|
|
|
|
|
<ol>
|
|
|
|
<li>Red</li>
|
|
|
|
<li>Green</li>
|
|
|
|
<li>Blue</li>
|
|
|
|
</ol>
|
|
|
|
|
|
|
|
If you put blank lines between items, you'll get `<p>` tags for the
|
|
|
|
list item text. You can create multi-paragraph list items by indenting
|
|
|
|
the paragraphs by 4 spaces:
|
|
|
|
|
|
|
|
* A list item.
|
|
|
|
|
|
|
|
With multiple paragraphs.
|
|
|
|
|
|
|
|
* Another item in the list.
|
|
|
|
|
|
|
|
Output:
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li><p>A list item.</p>
|
|
|
|
<p>With multiple paragraphs.</p></li>
|
|
|
|
<li><p>Another item in the list.</p></li>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
~~~~~
|
|
|
|
Links
|
|
|
|
~~~~~
|
|
|
|
|
|
|
|
Markdown supports two styles for creating links: *inline* and
|
|
|
|
*reference*. With both styles, you use square brackets to delimit the
|
|
|
|
text you want to turn into a link.
|
|
|
|
|
|
|
|
Inline-style links use parentheses immediately after the link text.
|
|
|
|
For example:
|
|
|
|
|
|
|
|
This is an [example link](http://example.com/).
|
|
|
|
|
|
|
|
Output:
|
|
|
|
|
|
|
|
<p>This is an <a href="http://example.com/">
|
|
|
|
example link</a>.</p>
|
|
|
|
|
|
|
|
Optionally, you may include a title attribute in the parentheses:
|
|
|
|
|
|
|
|
This is an [example link](http://example.com/ "With a Title").
|
|
|
|
|
|
|
|
Output:
|
|
|
|
|
|
|
|
<p>This is an <a href="http://example.com/" title="With a Title">
|
|
|
|
example link</a>.</p>
|
|
|
|
|
|
|
|
Reference-style links allow you to refer to your links by names, which
|
|
|
|
you define elsewhere in your document:
|
|
|
|
|
|
|
|
I get 10 times more traffic from [Google][1] than from
|
|
|
|
[Yahoo][2] or [MSN][3].
|
|
|
|
|
|
|
|
[1]: http://google.com/ "Google"
|
|
|
|
[2]: http://search.yahoo.com/ "Yahoo Search"
|
|
|
|
[3]: http://search.msn.com/ "MSN Search"
|
|
|
|
|
|
|
|
Output:
|
|
|
|
|
|
|
|
<p>I get 10 times more traffic from <a href="http://google.com/"
|
|
|
|
title="Google">Google</a> than from <a href="http://search.yahoo.com/"
|
|
|
|
title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"
|
|
|
|
title="MSN Search">MSN</a>.</p>
|
|
|
|
|
|
|
|
The title attribute is optional. Link names may contain letters,
|
|
|
|
numbers and spaces, but are *not* case sensitive:
|
|
|
|
|
|
|
|
I start my morning with a cup of coffee and
|
|
|
|
[The New York Times][NY Times].
|
|
|
|
|
|
|
|
[ny times]: http://www.nytimes.com/
|
|
|
|
|
|
|
|
Output:
|
|
|
|
|
|
|
|
<p>I start my morning with a cup of coffee and
|
|
|
|
<a href="http://www.nytimes.com/">The New York Times</a>.</p>
|
|
|
|
|
|
|
|
|
|
|
|
~~~~~~
|
|
|
|
Images
|
|
|
|
~~~~~~
|
|
|
|
|
|
|
|
Image syntax is very much like link syntax.
|
|
|
|
|
|
|
|
Inline (titles are optional):
|
|
|
|
|
|
|
|
![alt text](/path/to/img.jpg "Title")
|
|
|
|
|
|
|
|
Reference-style:
|
|
|
|
|
|
|
|
![alt text][id]
|
|
|
|
|
|
|
|
[id]: /path/to/img.jpg "Title"
|
|
|
|
|
|
|
|
Both of the above examples produce the same output:
|
|
|
|
|
|
|
|
<img src="/path/to/img.jpg" alt="alt text" title="Title" />
|
|
|
|
|
|
|
|
|
|
|
|
~~~~
|
|
|
|
Code
|
|
|
|
~~~~
|
|
|
|
|
|
|
|
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 `—`.
|
|
|
|
|
|
|
|
Output:
|
|
|
|
|
|
|
|
<p>I strongly recommend against using any
|
|
|
|
<code><blink></code> tags.</p>
|
|
|
|
|
|
|
|
<p>I wish SmartyPants used named entities like
|
|
|
|
<code>&mdash;</code> instead of decimal-encoded
|
|
|
|
entites like <code>&#8212;</code>.</p>
|
|
|
|
|
|
|
|
|
|
|
|
To specify an entire block of pre-formatted code, indent every line of
|
|
|
|
the block by 4 spaces. Just like with code spans, `&`, `<`, and `>`
|
|
|
|
characters will be escaped automatically.
|
|
|
|
|
|
|
|
Alternatively an entire block of pre-formatted code may be preceded with a
|
|
|
|
line consisting of 3 backtick quotes (or more) and followed by a line
|
|
|
|
consisting of the same number of backtick quotes -- in which case the code
|
|
|
|
itself does not need to be additionally indented. The first line may
|
|
|
|
optionally have a syntax specifier (e.g. sh, c, perl, etc.) appended.
|
|
|
|
Note also that any physical tab characters within a 3-backtick-quotes,
|
|
|
|
non-indented code block are *always* expanded correctly to 8-character
|
|
|
|
tab-stop positions. This is to facilitate simple copy-and-paste to include
|
|
|
|
code snippets.
|
|
|
|
|
|
|
|
Markdown:
|
|
|
|
|
|
|
|
```
|
|
|
|
# This is a simple code block with unspecified syntax
|
|
|
|
```
|
|
|
|
|
|
|
|
Output:
|
|
|
|
|
|
|
|
<pre><code># This is a simple code block with unspecified syntax
|
|
|
|
</code></pre>
|
|
|
|
|
|
|
|
Markdown:
|
|
|
|
|
|
|
|
``` perl
|
|
|
|
my $var = "value"; # this should be highlighted as Perl code
|
|
|
|
```
|
|
|
|
|
|
|
|
Output:
|
|
|
|
|
|
|
|
<pre><code>my $var = "value"; # this should be highlighted as Perl code
|
|
|
|
</code></pre>
|
|
|
|
|
|
|
|
Markdown:
|
|
|
|
|
|
|
|
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>
|
|
|
|
|
|
|
|
Output:
|
|
|
|
|
|
|
|
<p>If you want your page to validate under XHTML 1.0 Strict,
|
|
|
|
you've got to put paragraph tags in your blockquotes:</p>
|
|
|
|
|
|
|
|
<pre><code><blockquote>
|
|
|
|
<p>For example.</p>
|
|
|
|
</blockquote>
|
|
|
|
</code></pre>
|