| OLD | NEW |
| (Empty) |
| 1 <h1 id="markdown-syntax">Markdown: Syntax</h1> | |
| 2 | |
| 3 <ul id="ProjectSubmenu"> | |
| 4 <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li
> | |
| 5 <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></
li> | |
| 6 <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li
> | |
| 7 <li><a href="/projects/markdown/license" title="Pricing and License Informat
ion">License</a></li> | |
| 8 <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Din
gus</a></li> | |
| 9 </ul> | |
| 10 | |
| 11 <ul> | |
| 12 <li><a href="#overview">Overview</a> | |
| 13 <ul> | |
| 14 <li><a href="#philosophy">Philosophy</a></li> | |
| 15 <li><a href="#html">Inline HTML</a></li> | |
| 16 <li><a href="#autoescape">Automatic Escaping for Special Characters</a></li> | |
| 17 </ul></li> | |
| 18 <li><a href="#block">Block Elements</a> | |
| 19 <ul> | |
| 20 <li><a href="#p">Paragraphs and Line Breaks</a></li> | |
| 21 <li><a href="#header">Headers</a></li> | |
| 22 <li><a href="#blockquote">Blockquotes</a></li> | |
| 23 <li><a href="#list">Lists</a></li> | |
| 24 <li><a href="#precode">Code Blocks</a></li> | |
| 25 <li><a href="#hr">Horizontal Rules</a></li> | |
| 26 </ul></li> | |
| 27 <li><a href="#span">Span Elements</a> | |
| 28 <ul> | |
| 29 <li><a href="#link">Links</a></li> | |
| 30 <li><a href="#em">Emphasis</a></li> | |
| 31 <li><a href="#code">Code</a></li> | |
| 32 <li><a href="#img">Images</a></li> | |
| 33 </ul></li> | |
| 34 <li><a href="#misc">Miscellaneous</a> | |
| 35 <ul> | |
| 36 <li><a href="#backslash">Backslash Escapes</a></li> | |
| 37 <li><a href="#autolink">Automatic Links</a></li> | |
| 38 </ul></li> | |
| 39 </ul> | |
| 40 | |
| 41 <p><strong>Note:</strong> This document is itself written using Markdown; you | |
| 42 can <a href="/projects/markdown/syntax.text">see the source for it by adding 
9;.text' to the URL</a>.</p> | |
| 43 | |
| 44 <hr> | |
| 45 | |
| 46 <h2 id="overview">Overview</h2> | |
| 47 | |
| 48 <h3 id="philosophy">Philosophy</h3> | |
| 49 | |
| 50 <p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.<
/p> | |
| 51 | |
| 52 <p>Readability, however, is emphasized above all else. A Markdown-formatted | |
| 53 document should be publishable as-is, as plain text, without looking | |
| 54 like it's been marked up with tags or formatting instructions. While | |
| 55 Markdown's syntax has been influenced by several existing text-to-HTML | |
| 56 filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html
">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http:
//textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.
net/rst.html">reStructuredText</a>, | |
| 57 <a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a h
ref="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of | |
| 58 inspiration for Markdown's syntax is the format of plain text email.</p> | |
| 59 | |
| 60 <p>To this end, Markdown's syntax is comprised entirely of punctuation | |
| 61 characters, which punctuation characters have been carefully chosen so | |
| 62 as to look like what they mean. E.g., asterisks around a word actually | |
| 63 look like *emphasis*. Markdown lists look like, well, lists. Even | |
| 64 blockquotes look like quoted passages of text, assuming you've ever | |
| 65 used email.</p> | |
| 66 | |
| 67 <h3 id="html">Inline HTML</h3> | |
| 68 | |
| 69 <p>Markdown's syntax is intended for one purpose: to be used as a | |
| 70 format for <em>writing</em> for the web.</p> | |
| 71 | |
| 72 <p>Markdown is not a replacement for HTML, or even close to it. Its | |
| 73 syntax is very small, corresponding only to a very small subset of | |
| 74 HTML tags. The idea is <em>not</em> to create a syntax that makes it easier | |
| 75 to insert HTML tags. In my opinion, HTML tags are already easy to | |
| 76 insert. The idea for Markdown is to make it easy to read, write, and | |
| 77 edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em> | |
| 78 format. Thus, Markdown's formatting syntax only addresses issues that | |
| 79 can be conveyed in plain text.</p> | |
| 80 | |
| 81 <p>For any markup that is not covered by Markdown's syntax, you simply | |
| 82 use HTML itself. There's no need to preface it or delimit it to | |
| 83 indicate that you're switching from Markdown to HTML; you just use | |
| 84 the tags.</p> | |
| 85 | |
| 86 <p>The only restrictions are that block-level HTML elements -- e.g. <code><di
v></code>, | |
| 87 <code><table></code>, <code><pre></code>, <code><p></code>, et
c. -- must be separated from surrounding | |
| 88 content by blank lines, and the start and end tags of the block should | |
| 89 not be indented with tabs or spaces. Markdown is smart enough not | |
| 90 to add extra (unwanted) <code><p></code> tags around HTML block-level tags
.</p> | |
| 91 | |
| 92 <p>For example, to add an HTML table to a Markdown article:</p> | |
| 93 | |
| 94 <pre><code>This is a regular paragraph. | |
| 95 | |
| 96 <table> | |
| 97 <tr> | |
| 98 <td>Foo</td> | |
| 99 </tr> | |
| 100 </table> | |
| 101 | |
| 102 This is another regular paragraph. | |
| 103 </code></pre> | |
| 104 | |
| 105 <p>Note that Markdown formatting syntax is not processed within block-level | |
| 106 HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside
an | |
| 107 HTML block.</p> | |
| 108 | |
| 109 <p>Span-level HTML tags -- e.g. <code><span></code>, <code><cite></c
ode>, or <code><del></code> -- can be | |
| 110 used anywhere in a Markdown paragraph, list item, or header. If you | |
| 111 want, you can even use HTML tags instead of Markdown formatting; e.g. if | |
| 112 you'd prefer to use HTML <code><a></code> or <code><img></code>
tags instead of Markdown's | |
| 113 link or image syntax, go right ahead.</p> | |
| 114 | |
| 115 <p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within | |
| 116 span-level tags.</p> | |
| 117 | |
| 118 <h3 id="autoescape">Automatic Escaping for Special Characters</h3> | |
| 119 | |
| 120 <p>In HTML, there are two characters that demand special treatment: <code><</
code> | |
| 121 and <code>&</code>. Left angle brackets are used to start tags; ampersands a
re | |
| 122 used to denote HTML entities. If you want to use them as literal | |
| 123 characters, you must escape them as entities, e.g. <code>&lt;</code>, and | |
| 124 <code>&amp;</code>.</p> | |
| 125 | |
| 126 <p>Ampersands in particular are bedeviling for web writers. If you want to | |
| 127 write about 'AT&T', you need to write '<code>AT&amp;T</code>
'. You even need to | |
| 128 escape ampersands within URLs. Thus, if you want to link to:</p> | |
| 129 | |
| 130 <pre><code>http://images.google.com/images?num=30&q=larry+bird | |
| 131 </code></pre> | |
| 132 | |
| 133 <p>you need to encode the URL as:</p> | |
| 134 | |
| 135 <pre><code>http://images.google.com/images?num=30&amp;q=larry+bird | |
| 136 </code></pre> | |
| 137 | |
| 138 <p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy
to | |
| 139 forget, and is probably the single most common source of HTML validation | |
| 140 errors in otherwise well-marked-up web sites.</p> | |
| 141 | |
| 142 <p>Markdown allows you to use these characters naturally, taking care of | |
| 143 all the necessary escaping for you. If you use an ampersand as part of | |
| 144 an HTML entity, it remains unchanged; otherwise it will be translated | |
| 145 into <code>&amp;</code>.</p> | |
| 146 | |
| 147 <p>So, if you want to include a copyright symbol in your article, you can write:
</p> | |
| 148 | |
| 149 <pre><code>&copy; | |
| 150 </code></pre> | |
| 151 | |
| 152 <p>and Markdown will leave it alone. But if you write:</p> | |
| 153 | |
| 154 <pre><code>AT&T | |
| 155 </code></pre> | |
| 156 | |
| 157 <p>Markdown will translate it to:</p> | |
| 158 | |
| 159 <pre><code>AT&amp;T | |
| 160 </code></pre> | |
| 161 | |
| 162 <p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you
use | |
| 163 angle brackets as delimiters for HTML tags, Markdown will treat them as | |
| 164 such. But if you write:</p> | |
| 165 | |
| 166 <pre><code>4 < 5 | |
| 167 </code></pre> | |
| 168 | |
| 169 <p>Markdown will translate it to:</p> | |
| 170 | |
| 171 <pre><code>4 &lt; 5 | |
| 172 </code></pre> | |
| 173 | |
| 174 <p>However, inside Markdown code spans and blocks, angle brackets and | |
| 175 ampersands are <em>always</em> encoded automatically. This makes it easy to use | |
| 176 Markdown to write about HTML code. (As opposed to raw HTML, which is a | |
| 177 terrible format for writing about HTML syntax, because every single <code><</
code> | |
| 178 and <code>&</code> in your example code needs to be escaped.)</p> | |
| 179 | |
| 180 <hr> | |
| 181 | |
| 182 <h2 id="block">Block Elements</h2> | |
| 183 | |
| 184 <h3 id="p">Paragraphs and Line Breaks</h3> | |
| 185 | |
| 186 <p>A paragraph is simply one or more consecutive lines of text, separated | |
| 187 by one or more blank lines. (A blank line is any line that looks like a | |
| 188 blank line -- a line containing nothing but spaces or tabs is considered | |
| 189 blank.) Normal paragraphs should not be intended with spaces or tabs.</p> | |
| 190 | |
| 191 <p>The implication of the "one or more consecutive lines of text" rule
is | |
| 192 that Markdown supports "hard-wrapped" text paragraphs. This differs | |
| 193 significantly from most other text-to-HTML formatters (including Movable | |
| 194 Type's "Convert Line Breaks" option) which translate every line br
eak | |
| 195 character in a paragraph into a <code><br /></code> tag.</p> | |
| 196 | |
| 197 <p>When you <em>do</em> want to insert a <code><br /></code> break tag usi
ng Markdown, you | |
| 198 end a line with two or more spaces, then type return.</p> | |
| 199 | |
| 200 <p>Yes, this takes a tad more effort to create a <code><br /></code>, but
a simplistic | |
| 201 "every line break is a <code><br /></code>" rule wouldn't wo
rk for Markdown. | |
| 202 Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-para
graph <a href="#list">list items</a> | |
| 203 work best -- and look better -- when you format them with hard breaks.</p> | |
| 204 | |
| 205 <h3 id="header">Headers</h3> | |
| 206 | |
| 207 <p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge
.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx
/">atx</a>.</p> | |
| 208 | |
| 209 <p>Setext-style headers are "underlined" using equal signs (for first-
level | |
| 210 headers) and dashes (for second-level headers). For example:</p> | |
| 211 | |
| 212 <pre><code>This is an H1 | |
| 213 ============= | |
| 214 | |
| 215 This is an H2 | |
| 216 ------------- | |
| 217 </code></pre> | |
| 218 | |
| 219 <p>Any number of underlining <code>=</code>'s or <code>-</code>'s will w
ork.</p> | |
| 220 | |
| 221 <p>Atx-style headers use 1-6 hash characters at the start of the line, | |
| 222 corresponding to header levels 1-6. For example:</p> | |
| 223 | |
| 224 <pre><code># This is an H1 | |
| 225 | |
| 226 ## This is an H2 | |
| 227 | |
| 228 ###### This is an H6 | |
| 229 </code></pre> | |
| 230 | |
| 231 <p>Optionally, you may "close" atx-style headers. This is purely | |
| 232 cosmetic -- you can use this if you think it looks better. The | |
| 233 closing hashes don't even need to match the number of hashes | |
| 234 used to open the header. (The number of opening hashes | |
| 235 determines the header level.) :</p> | |
| 236 | |
| 237 <pre><code># This is an H1 # | |
| 238 | |
| 239 ## This is an H2 ## | |
| 240 | |
| 241 ### This is an H3 ###### | |
| 242 </code></pre> | |
| 243 | |
| 244 <h3 id="blockquote">Blockquotes</h3> | |
| 245 | |
| 246 <p>Markdown uses email-style <code>></code> characters for blockquoting. If y
ou're | |
| 247 familiar with quoting passages of text in an email message, then you | |
| 248 know how to create a blockquote in Markdown. It looks best if you hard | |
| 249 wrap the text and put a <code>></code> before every line:</p> | |
| 250 | |
| 251 <pre><code>> This is a blockquote with two paragraphs. Lorem ipsum dolor sit
amet, | |
| 252 > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. | |
| 253 > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. | |
| 254 > | |
| 255 > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse | |
| 256 > id sem consectetuer libero luctus adipiscing. | |
| 257 </code></pre> | |
| 258 | |
| 259 <p>Markdown allows you to be lazy and only put the <code>></code> before the
first | |
| 260 line of a hard-wrapped paragraph:</p> | |
| 261 | |
| 262 <pre><code>> This is a blockquote with two paragraphs. Lorem ipsum dolor sit
amet, | |
| 263 consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. | |
| 264 Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. | |
| 265 | |
| 266 > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse | |
| 267 id sem consectetuer libero luctus adipiscing. | |
| 268 </code></pre> | |
| 269 | |
| 270 <p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by | |
| 271 adding additional levels of <code>></code>:</p> | |
| 272 | |
| 273 <pre><code>> This is the first level of quoting. | |
| 274 > | |
| 275 > > This is nested blockquote. | |
| 276 > | |
| 277 > Back to the first level. | |
| 278 </code></pre> | |
| 279 | |
| 280 <p>Blockquotes can contain other Markdown elements, including headers, lists, | |
| 281 and code blocks:</p> | |
| 282 | |
| 283 <pre><code>> ## This is a header. | |
| 284 > | |
| 285 > 1. This is the first list item. | |
| 286 > 2. This is the second list item. | |
| 287 > | |
| 288 > Here's some example code: | |
| 289 > | |
| 290 > return shell_exec("echo $input | $markdown_script"); | |
| 291 </code></pre> | |
| 292 | |
| 293 <p>Any decent text editor should make email-style quoting easy. For | |
| 294 example, with BBEdit, you can make a selection and choose Increase | |
| 295 Quote Level from the Text menu.</p> | |
| 296 | |
| 297 <h3 id="list">Lists</h3> | |
| 298 | |
| 299 <p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p> | |
| 300 | |
| 301 <p>Unordered lists use asterisks, pluses, and hyphens -- interchangably | |
| 302 -- as list markers:</p> | |
| 303 | |
| 304 <pre><code>* Red | |
| 305 * Green | |
| 306 * Blue | |
| 307 </code></pre> | |
| 308 | |
| 309 <p>is equivalent to:</p> | |
| 310 | |
| 311 <pre><code>+ Red | |
| 312 + Green | |
| 313 + Blue | |
| 314 </code></pre> | |
| 315 | |
| 316 <p>and:</p> | |
| 317 | |
| 318 <pre><code>- Red | |
| 319 - Green | |
| 320 - Blue | |
| 321 </code></pre> | |
| 322 | |
| 323 <p>Ordered lists use numbers followed by periods:</p> | |
| 324 | |
| 325 <pre><code>1. Bird | |
| 326 2. McHale | |
| 327 3. Parish | |
| 328 </code></pre> | |
| 329 | |
| 330 <p>It's important to note that the actual numbers you use to mark the | |
| 331 list have no effect on the HTML output Markdown produces. The HTML | |
| 332 Markdown produces from the above list is:</p> | |
| 333 | |
| 334 <pre><code><ol> | |
| 335 <li>Bird</li> | |
| 336 <li>McHale</li> | |
| 337 <li>Parish</li> | |
| 338 </ol> | |
| 339 </code></pre> | |
| 340 | |
| 341 <p>If you instead wrote the list in Markdown like this:</p> | |
| 342 | |
| 343 <pre><code>1. Bird | |
| 344 1. McHale | |
| 345 1. Parish | |
| 346 </code></pre> | |
| 347 | |
| 348 <p>or even:</p> | |
| 349 | |
| 350 <pre><code>3. Bird | |
| 351 1. McHale | |
| 352 8. Parish | |
| 353 </code></pre> | |
| 354 | |
| 355 <p>you'd get the exact same HTML output. The point is, if you want to, | |
| 356 you can use ordinal numbers in your ordered Markdown lists, so that | |
| 357 the numbers in your source match the numbers in your published HTML. | |
| 358 But if you want to be lazy, you don't have to.</p> | |
| 359 | |
| 360 <p>If you do use lazy list numbering, however, you should still start the | |
| 361 list with the number 1. At some point in the future, Markdown may support | |
| 362 starting ordered lists at an arbitrary number.</p> | |
| 363 | |
| 364 <p>List markers typically start at the left margin, but may be indented by | |
| 365 up to three spaces. List markers must be followed by one or more spaces | |
| 366 or a tab.</p> | |
| 367 | |
| 368 <p>To make lists look nice, you can wrap items with hanging indents:</p> | |
| 369 | |
| 370 <pre><code>* Lorem ipsum dolor sit amet, consectetuer adipiscing elit. | |
| 371 Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, | |
| 372 viverra nec, fringilla in, laoreet vitae, risus. | |
| 373 * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. | |
| 374 Suspendisse id sem consectetuer libero luctus adipiscing. | |
| 375 </code></pre> | |
| 376 | |
| 377 <p>But if you want to be lazy, you don't have to:</p> | |
| 378 | |
| 379 <pre><code>* Lorem ipsum dolor sit amet, consectetuer adipiscing elit. | |
| 380 Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, | |
| 381 viverra nec, fringilla in, laoreet vitae, risus. | |
| 382 * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. | |
| 383 Suspendisse id sem consectetuer libero luctus adipiscing. | |
| 384 </code></pre> | |
| 385 | |
| 386 <p>If list items are separated by blank lines, Markdown will wrap the | |
| 387 items in <code><p></code> tags in the HTML output. For example, this input
:</p> | |
| 388 | |
| 389 <pre><code>* Bird | |
| 390 * Magic | |
| 391 </code></pre> | |
| 392 | |
| 393 <p>will turn into:</p> | |
| 394 | |
| 395 <pre><code><ul> | |
| 396 <li>Bird</li> | |
| 397 <li>Magic</li> | |
| 398 </ul> | |
| 399 </code></pre> | |
| 400 | |
| 401 <p>But this:</p> | |
| 402 | |
| 403 <pre><code>* Bird | |
| 404 | |
| 405 * Magic | |
| 406 </code></pre> | |
| 407 | |
| 408 <p>will turn into:</p> | |
| 409 | |
| 410 <pre><code><ul> | |
| 411 <li><p>Bird</p></li> | |
| 412 <li><p>Magic</p></li> | |
| 413 </ul> | |
| 414 </code></pre> | |
| 415 | |
| 416 <p>List items may consist of multiple paragraphs. Each subsequent | |
| 417 paragraph in a list item must be intended by either 4 spaces | |
| 418 or one tab:</p> | |
| 419 | |
| 420 <pre><code>1. This is a list item with two paragraphs. Lorem ipsum dolor | |
| 421 sit amet, consectetuer adipiscing elit. Aliquam hendrerit | |
| 422 mi posuere lectus. | |
| 423 | |
| 424 Vestibulum enim wisi, viverra nec, fringilla in, laoreet | |
| 425 vitae, risus. Donec sit amet nisl. Aliquam semper ipsum | |
| 426 sit amet velit. | |
| 427 | |
| 428 2. Suspendisse id sem consectetuer libero luctus adipiscing. | |
| 429 </code></pre> | |
| 430 | |
| 431 <p>It looks nice if you indent every line of the subsequent | |
| 432 paragraphs, but here again, Markdown will allow you to be | |
| 433 lazy:</p> | |
| 434 | |
| 435 <pre><code>* This is a list item with two paragraphs. | |
| 436 | |
| 437 This is the second paragraph in the list item. You're | |
| 438 only required to indent the first line. Lorem ipsum dolor | |
| 439 sit amet, consectetuer adipiscing elit. | |
| 440 | |
| 441 * Another item in the same list. | |
| 442 </code></pre> | |
| 443 | |
| 444 <p>To put a blockquote within a list item, the blockquote's <code>></code
> | |
| 445 delimiters need to be indented:</p> | |
| 446 | |
| 447 <pre><code>* A list item with a blockquote: | |
| 448 | |
| 449 > This is a blockquote | |
| 450 > inside a list item. | |
| 451 </code></pre> | |
| 452 | |
| 453 <p>To put a code block within a list item, the code block needs | |
| 454 to be indented <em>twice</em> -- 8 spaces or two tabs:</p> | |
| 455 | |
| 456 <pre><code>* A list item with a code block: | |
| 457 | |
| 458 <code goes here> | |
| 459 </code></pre> | |
| 460 | |
| 461 <p>It's worth noting that it's possible to trigger an ordered list by | |
| 462 accident, by writing something like this:</p> | |
| 463 | |
| 464 <pre><code>1986. What a great season. | |
| 465 </code></pre> | |
| 466 | |
| 467 <p>In other words, a <em>number-period-space</em> sequence at the beginning of a | |
| 468 line. To avoid this, you can backslash-escape the period:</p> | |
| 469 | |
| 470 <pre><code>1986\. What a great season. | |
| 471 </code></pre> | |
| 472 | |
| 473 <h3 id="precode">Code Blocks</h3> | |
| 474 | |
| 475 <p>Pre-formatted code blocks are used for writing about programming or | |
| 476 markup source code. Rather than forming normal paragraphs, the lines | |
| 477 of a code block are interpreted literally. Markdown wraps a code block | |
| 478 in both <code><pre></code> and <code><code></code> tags.</p> | |
| 479 | |
| 480 <p>To produce a code block in Markdown, simply indent every line of the | |
| 481 block by at least 4 spaces or 1 tab. For example, given this input:</p> | |
| 482 | |
| 483 <pre><code>This is a normal paragraph: | |
| 484 | |
| 485 This is a code block. | |
| 486 </code></pre> | |
| 487 | |
| 488 <p>Markdown will generate:</p> | |
| 489 | |
| 490 <pre><code><p>This is a normal paragraph:</p> | |
| 491 | |
| 492 <pre><code>This is a code block. | |
| 493 </code></pre> | |
| 494 </code></pre> | |
| 495 | |
| 496 <p>One level of indentation -- 4 spaces or 1 tab -- is removed from each | |
| 497 line of the code block. For example, this:</p> | |
| 498 | |
| 499 <pre><code>Here is an example of AppleScript: | |
| 500 | |
| 501 tell application "Foo" | |
| 502 beep | |
| 503 end tell | |
| 504 </code></pre> | |
| 505 | |
| 506 <p>will turn into:</p> | |
| 507 | |
| 508 <pre><code><p>Here is an example of AppleScript:</p> | |
| 509 | |
| 510 <pre><code>tell application "Foo" | |
| 511 beep | |
| 512 end tell | |
| 513 </code></pre> | |
| 514 </code></pre> | |
| 515 | |
| 516 <p>A code block continues until it reaches a line that is not indented | |
| 517 (or the end of the article).</p> | |
| 518 | |
| 519 <p>Within a code block, ampersands (<code>&</code>) and angle brackets (<cod
e><</code> and <code>></code>) | |
| 520 are automatically converted into HTML entities. This makes it very | |
| 521 easy to include example HTML source code using Markdown -- just paste | |
| 522 it and indent it, and Markdown will handle the hassle of encoding the | |
| 523 ampersands and angle brackets. For example, this:</p> | |
| 524 | |
| 525 <pre><code> <div class="footer"> | |
| 526 &copy; 2004 Foo Corporation | |
| 527 </div> | |
| 528 </code></pre> | |
| 529 | |
| 530 <p>will turn into:</p> | |
| 531 | |
| 532 <pre><code><pre><code>&lt;div class="footer"&gt; | |
| 533 &amp;copy; 2004 Foo Corporation | |
| 534 &lt;/div&gt; | |
| 535 </code></pre> | |
| 536 </code></pre> | |
| 537 | |
| 538 <p>Regular Markdown syntax is not processed within code blocks. E.g., | |
| 539 asterisks are just literal asterisks within a code block. This means | |
| 540 it's also easy to use Markdown to write about Markdown's own syntax.</p> | |
| 541 | |
| 542 <h3 id="hr">Horizontal Rules</h3> | |
| 543 | |
| 544 <p>You can produce a horizontal rule tag (<code><hr></code>) by placing th
ree or | |
| 545 more hyphens, asterisks, or underscores on a line by themselves. If you | |
| 546 wish, you may use spaces between the hyphens or asterisks. Each of the | |
| 547 following lines will produce a horizontal rule:</p> | |
| 548 | |
| 549 <pre><code>* * * | |
| 550 | |
| 551 *** | |
| 552 | |
| 553 ***** | |
| 554 | |
| 555 - - - | |
| 556 | |
| 557 --------------------------------------- | |
| 558 | |
| 559 _ _ _ | |
| 560 </code></pre> | |
| 561 | |
| 562 <hr> | |
| 563 | |
| 564 <h2 id="span">Span Elements</h2> | |
| 565 | |
| 566 <h3 id="link">Links</h3> | |
| 567 | |
| 568 <p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.
</p> | |
| 569 | |
| 570 <p>In both styles, the link text is delimited by [square brackets].</p> | |
| 571 | |
| 572 <p>To create an inline link, use a set of regular parentheses immediately | |
| 573 after the link text's closing square bracket. Inside the parentheses, | |
| 574 put the URL where you want the link to point, along with an <em>optional</em> | |
| 575 title for the link, surrounded in quotes. For example:</p> | |
| 576 | |
| 577 <pre><code>This is [an example](http://example.com/ "Title") inline li
nk. | |
| 578 | |
| 579 [This link](http://example.net/) has no title attribute. | |
| 580 </code></pre> | |
| 581 | |
| 582 <p>Will produce:</p> | |
| 583 | |
| 584 <pre><code><p>This is <a href="http://example.com/" title=&qu
ot;Title"> | |
| 585 an example</a> inline link.</p> | |
| 586 | |
| 587 <p><a href="http://example.net/">This link</a> has n
o | |
| 588 title attribute.</p> | |
| 589 </code></pre> | |
| 590 | |
| 591 <p>If you're referring to a local resource on the same server, you can | |
| 592 use relative paths:</p> | |
| 593 | |
| 594 <pre><code>See my [About](/about/) page for details. | |
| 595 </code></pre> | |
| 596 | |
| 597 <p>Reference-style links use a second set of square brackets, inside | |
| 598 which you place a label of your choosing to identify the link:</p> | |
| 599 | |
| 600 <pre><code>This is [an example][id] reference-style link. | |
| 601 </code></pre> | |
| 602 | |
| 603 <p>You can optionally use a space to separate the sets of brackets:</p> | |
| 604 | |
| 605 <pre><code>This is [an example] [id] reference-style link. | |
| 606 </code></pre> | |
| 607 | |
| 608 <p>Then, anywhere in the document, you define your link label like this, | |
| 609 on a line by itself:</p> | |
| 610 | |
| 611 <pre><code>[id]: http://example.com/ "Optional Title Here" | |
| 612 </code></pre> | |
| 613 | |
| 614 <p>That is:</p> | |
| 615 | |
| 616 <ul> | |
| 617 <li>Square brackets containing the link identifier (optionally | |
| 618 indented from the left margin using up to three spaces);</li> | |
| 619 <li>followed by a colon;</li> | |
| 620 <li>followed by one or more spaces (or tabs);</li> | |
| 621 <li>followed by the URL for the link;</li> | |
| 622 <li>optionally followed by a title attribute for the link, enclosed | |
| 623 in double or single quotes.</li> | |
| 624 </ul> | |
| 625 | |
| 626 <p>The link URL may, optionally, be surrounded by angle brackets:</p> | |
| 627 | |
| 628 <pre><code>[id]: <http://example.com/> "Optional Title Here" | |
| 629 </code></pre> | |
| 630 | |
| 631 <p>You can put the title attribute on the next line and use extra spaces | |
| 632 or tabs for padding, which tends to look better with longer URLs:</p> | |
| 633 | |
| 634 <pre><code>[id]: http://example.com/longish/path/to/resource/here | |
| 635 "Optional Title Here" | |
| 636 </code></pre> | |
| 637 | |
| 638 <p>Link definitions are only used for creating links during Markdown | |
| 639 processing, and are stripped from your document in the HTML output.</p> | |
| 640 | |
| 641 <p>Link definition names may constist of letters, numbers, spaces, and punctuati
on -- but they are <em>not</em> case sensitive. E.g. these two links:</p> | |
| 642 | |
| 643 <pre><code>[link text][a] | |
| 644 [link text][A] | |
| 645 </code></pre> | |
| 646 | |
| 647 <p>are equivalent.</p> | |
| 648 | |
| 649 <p>The <em>implicit link name</em> shortcut allows you to omit the name of the | |
| 650 link, in which case the link text itself is used as the name. | |
| 651 Just use an empty set of square brackets -- e.g., to link the word | |
| 652 "Google" to the google.com web site, you could simply write:</p> | |
| 653 | |
| 654 <pre><code>[Google][] | |
| 655 </code></pre> | |
| 656 | |
| 657 <p>And then define the link:</p> | |
| 658 | |
| 659 <pre><code>[Google]: http://google.com/ | |
| 660 </code></pre> | |
| 661 | |
| 662 <p>Because link names may contain spaces, this shortcut even works for | |
| 663 multiple words in the link text:</p> | |
| 664 | |
| 665 <pre><code>Visit [Daring Fireball][] for more information. | |
| 666 </code></pre> | |
| 667 | |
| 668 <p>And then define the link:</p> | |
| 669 | |
| 670 <pre><code>[Daring Fireball]: http://daringfireball.net/ | |
| 671 </code></pre> | |
| 672 | |
| 673 <p>Link definitions can be placed anywhere in your Markdown document. I | |
| 674 tend to put them immediately after each paragraph in which they're | |
| 675 used, but if you want, you can put them all at the end of your | |
| 676 document, sort of like footnotes.</p> | |
| 677 | |
| 678 <p>Here's an example of reference links in action:</p> | |
| 679 | |
| 680 <pre><code>I get 10 times more traffic from [Google] [1] than from | |
| 681 [Yahoo] [2] or [MSN] [3]. | |
| 682 | |
| 683 [1]: http://google.com/ "Google" | |
| 684 [2]: http://search.yahoo.com/ "Yahoo Search" | |
| 685 [3]: http://search.msn.com/ "MSN Search" | |
| 686 </code></pre> | |
| 687 | |
| 688 <p>Using the implicit link name shortcut, you could instead write:</p> | |
| 689 | |
| 690 <pre><code>I get 10 times more traffic from [Google][] than from | |
| 691 [Yahoo][] or [MSN][]. | |
| 692 | |
| 693 [google]: http://google.com/ "Google" | |
| 694 [yahoo]: http://search.yahoo.com/ "Yahoo Search" | |
| 695 [msn]: http://search.msn.com/ "MSN Search" | |
| 696 </code></pre> | |
| 697 | |
| 698 <p>Both of the above examples will produce the following HTML output:</p> | |
| 699 | |
| 700 <pre><code><p>I get 10 times more traffic from <a href="http://goo
gle.com/" | |
| 701 title="Google">Google</a> than from | |
| 702 <a href="http://search.yahoo.com/" title="Yahoo Search"&g
t;Yahoo</a> | |
| 703 or <a href="http://search.msn.com/" title="MSN Search">
;MSN</a>.</p> | |
| 704 </code></pre> | |
| 705 | |
| 706 <p>For comparison, here is the same paragraph written using | |
| 707 Markdown's inline link style:</p> | |
| 708 | |
| 709 <pre><code>I get 10 times more traffic from [Google](http://google.com/ "Go
ogle") | |
| 710 than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or | |
| 711 [MSN](http://search.msn.com/ "MSN Search"). | |
| 712 </code></pre> | |
| 713 | |
| 714 <p>The point of reference-style links is not that they're easier to | |
| 715 write. The point is that with reference-style links, your document | |
| 716 source is vastly more readable. Compare the above examples: using | |
| 717 reference-style links, the paragraph itself is only 81 characters | |
| 718 long; with inline-style links, it's 176 characters; and as raw HTML, | |
| 719 it's 234 characters. In the raw HTML, there's more markup than there | |
| 720 is text.</p> | |
| 721 | |
| 722 <p>With Markdown's reference-style links, a source document much more | |
| 723 closely resembles the final output, as rendered in a browser. By | |
| 724 allowing you to move the markup-related metadata out of the paragraph, | |
| 725 you can add links without interrupting the narrative flow of your | |
| 726 prose.</p> | |
| 727 | |
| 728 <h3 id="em">Emphasis</h3> | |
| 729 | |
| 730 <p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) a
s indicators of | |
| 731 emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped
with an | |
| 732 HTML <code><em></code> tag; double <code>*</code>'s or <code>_</code>&
#39;s will be wrapped with an HTML | |
| 733 <code><strong></code> tag. E.g., this input:</p> | |
| 734 | |
| 735 <pre><code>*single asterisks* | |
| 736 | |
| 737 _single underscores_ | |
| 738 | |
| 739 **double asterisks** | |
| 740 | |
| 741 __double underscores__ | |
| 742 </code></pre> | |
| 743 | |
| 744 <p>will produce:</p> | |
| 745 | |
| 746 <pre><code><em>single asterisks</em> | |
| 747 | |
| 748 <em>single underscores</em> | |
| 749 | |
| 750 <strong>double asterisks</strong> | |
| 751 | |
| 752 <strong>double underscores</strong> | |
| 753 </code></pre> | |
| 754 | |
| 755 <p>You can use whichever style you prefer; the lone restriction is that | |
| 756 the same character must be used to open and close an emphasis span.</p> | |
| 757 | |
| 758 <p>Emphasis can be used in the middle of a word:</p> | |
| 759 | |
| 760 <pre><code>un*fucking*believable | |
| 761 </code></pre> | |
| 762 | |
| 763 <p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'l
l be treated as a | |
| 764 literal asterisk or underscore.</p> | |
| 765 | |
| 766 <p>To produce a literal asterisk or underscore at a position where it | |
| 767 would otherwise be used as an emphasis delimiter, you can backslash | |
| 768 escape it:</p> | |
| 769 | |
| 770 <pre><code>\*this text is surrounded by literal asterisks\* | |
| 771 </code></pre> | |
| 772 | |
| 773 <h3 id="code">Code</h3> | |
| 774 | |
| 775 <p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>). | |
| 776 Unlike a pre-formatted code block, a code span indicates code within a | |
| 777 normal paragraph. For example:</p> | |
| 778 | |
| 779 <pre><code>Use the `printf()` function. | |
| 780 </code></pre> | |
| 781 | |
| 782 <p>will produce:</p> | |
| 783 | |
| 784 <pre><code><p>Use the <code>printf()</code> function.</p>
; | |
| 785 </code></pre> | |
| 786 | |
| 787 <p>To include a literal backtick character within a code span, you can use | |
| 788 multiple backticks as the opening and closing delimiters:</p> | |
| 789 | |
| 790 <pre><code>``There is a literal backtick (`) here.`` | |
| 791 </code></pre> | |
| 792 | |
| 793 <p>which will produce this:</p> | |
| 794 | |
| 795 <pre><code><p><code>There is a literal backtick (`) here.</code&g
t;</p> | |
| 796 </code></pre> | |
| 797 | |
| 798 <p>The backtick delimiters surrounding a code span may include spaces -- | |
| 799 one after the opening, one before the closing. This allows you to place | |
| 800 literal backtick characters at the beginning or end of a code span:</p> | |
| 801 | |
| 802 <pre><code>A single backtick in a code span: `` ` `` | |
| 803 | |
| 804 A backtick-delimited string in a code span: `` `foo` `` | |
| 805 </code></pre> | |
| 806 | |
| 807 <p>will produce:</p> | |
| 808 | |
| 809 <pre><code><p>A single backtick in a code span: <code>`</code>
</p> | |
| 810 | |
| 811 <p>A backtick-delimited string in a code span: <code>`foo`</code&
gt;</p> | |
| 812 </code></pre> | |
| 813 | |
| 814 <p>With a code span, ampersands and angle brackets are encoded as HTML | |
| 815 entities automatically, which makes it easy to include example HTML | |
| 816 tags. Markdown will turn this:</p> | |
| 817 | |
| 818 <pre><code>Please don't use any `<blink>` tags. | |
| 819 </code></pre> | |
| 820 | |
| 821 <p>into:</p> | |
| 822 | |
| 823 <pre><code><p>Please don't use any <code>&lt;blink&gt;&l
t;/code> tags.</p> | |
| 824 </code></pre> | |
| 825 | |
| 826 <p>You can write this:</p> | |
| 827 | |
| 828 <pre><code>`&#8212;` is the decimal-encoded equivalent of `&mdash;`. | |
| 829 </code></pre> | |
| 830 | |
| 831 <p>to produce:</p> | |
| 832 | |
| 833 <pre><code><p><code>&amp;#8212;</code> is the decimal-enco
ded | |
| 834 equivalent of <code>&amp;mdash;</code>.</p> | |
| 835 </code></pre> | |
| 836 | |
| 837 <h3 id="img">Images</h3> | |
| 838 | |
| 839 <p>Admittedly, it's fairly difficult to devise a "natural" syntax
for | |
| 840 placing images into a plain text document format.</p> | |
| 841 | |
| 842 <p>Markdown uses an image syntax that is intended to resemble the syntax | |
| 843 for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p> | |
| 844 | |
| 845 <p>Inline image syntax looks like this:</p> | |
| 846 | |
| 847 <pre><code> | |
| 848 | |
| 849  | |
| 850 </code></pre> | |
| 851 | |
| 852 <p>That is:</p> | |
| 853 | |
| 854 <ul> | |
| 855 <li>An exclamation mark: <code>!</code>;</li> | |
| 856 <li>followed by a set of square brackets, containing the <code>alt</code> | |
| 857 attribute text for the image;</li> | |
| 858 <li>followed by a set of parentheses, containing the URL or path to | |
| 859 the image, and an optional <code>title</code> attribute enclosed in double | |
| 860 or single quotes.</li> | |
| 861 </ul> | |
| 862 | |
| 863 <p>Reference-style image syntax looks like this:</p> | |
| 864 | |
| 865 <pre><code>![Alt text][id] | |
| 866 </code></pre> | |
| 867 | |
| 868 <p>Where "id" is the name of a defined image reference. Image referenc
es | |
| 869 are defined using syntax identical to link references:</p> | |
| 870 | |
| 871 <pre><code>[id]: url/to/image "Optional title attribute" | |
| 872 </code></pre> | |
| 873 | |
| 874 <p>As of this writing, Markdown has no syntax for specifying the | |
| 875 dimensions of an image; if this is important to you, you can simply | |
| 876 use regular HTML <code><img></code> tags.</p> | |
| 877 | |
| 878 <hr> | |
| 879 | |
| 880 <h2 id="misc">Miscellaneous</h2> | |
| 881 | |
| 882 <h3 id="autolink">Automatic Links</h3> | |
| 883 | |
| 884 <p>Markdown supports a shortcut style for creating "automatic" links f
or URLs and email addresses: simply surround the URL or email address with angle
brackets. What this means is that if you want to show the actual text of a URL
or email address, and also have it be a clickable link, you can do this:</p> | |
| 885 | |
| 886 <pre><code><http://example.com/> | |
| 887 </code></pre> | |
| 888 | |
| 889 <p>Markdown will turn this into:</p> | |
| 890 | |
| 891 <pre><code><a href="http://example.com/">http://example.com/<
/a> | |
| 892 </code></pre> | |
| 893 | |
| 894 <p>Automatic links for email addresses work similarly, except that | |
| 895 Markdown will also perform a bit of randomized decimal and hex | |
| 896 entity-encoding to help obscure your address from address-harvesting | |
| 897 spambots. For example, Markdown will turn this:</p> | |
| 898 | |
| 899 <pre><code><address@example.com> | |
| 900 </code></pre> | |
| 901 | |
| 902 <p>into something like this:</p> | |
| 903 | |
| 904 <pre><code><a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:
&#x61;&#x64;&#x64;&#x72;&#x65; | |
| 905 &#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&
amp;#x6C;e&#x2E;&#99;&#111; | |
| 906 &#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;
&#115;&#64;&#101;&#120;&#x61; | |
| 907 &#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a> | |
| 908 </code></pre> | |
| 909 | |
| 910 <p>which will render in a browser as a clickable link to "address@example.c
om".</p> | |
| 911 | |
| 912 <p>(This sort of entity-encoding trick will indeed fool many, if not | |
| 913 most, address-harvesting bots, but it definitely won't fool all of | |
| 914 them. It's better than nothing, but an address published in this way | |
| 915 will probably eventually start receiving spam.)</p> | |
| 916 | |
| 917 <h3 id="backslash">Backslash Escapes</h3> | |
| 918 | |
| 919 <p>Markdown allows you to use backslash escapes to generate literal | |
| 920 characters which would otherwise have special meaning in Markdown's | |
| 921 formatting syntax. For example, if you wanted to surround a word with | |
| 922 literal asterisks (instead of an HTML <code><em></code> tag), you can back
slashes | |
| 923 before the asterisks, like this:</p> | |
| 924 | |
| 925 <pre><code>\*literal asterisks\* | |
| 926 </code></pre> | |
| 927 | |
| 928 <p>Markdown provides backslash escapes for the following characters:</p> | |
| 929 | |
| 930 <pre><code>\ backslash | |
| 931 ` backtick | |
| 932 * asterisk | |
| 933 _ underscore | |
| 934 {} curly braces | |
| 935 [] square brackets | |
| 936 () parentheses | |
| 937 # hash mark | |
| 938 + plus sign | |
| 939 - minus sign (hyphen) | |
| 940 . dot | |
| 941 ! exclamation mark | |
| 942 </code></pre> | |
| OLD | NEW |