]> git.mjollnir.org Git - moodle.git/commitdiff
Markdown manual
authormoodler <moodler>
Tue, 3 Aug 2004 05:08:35 +0000 (05:08 +0000)
committermoodler <moodler>
Tue, 3 Aug 2004 05:08:35 +0000 (05:08 +0000)
lang/en/help/markdown.html [new file with mode: 0644]

diff --git a/lang/en/help/markdown.html b/lang/en/help/markdown.html
new file mode 100644 (file)
index 0000000..458d5c1
--- /dev/null
@@ -0,0 +1,926 @@
+<p align="center"><b>Using Markdown format to write web pages</b></p>\r
+\r
+<p>(This text is a copy of <a target="_blank" href="http://daringfireball.net/projects/markdown/syntax">the original Markdown syntax page</a>)</p>\r
+\r
+<hr />\r
+<div id="Main">\r
+\r
+<div class="article">\r
+\r
+<ul>\r
+<li><a href="#overview">Overview</a>\r
+<ul>\r
+<li><a href="#philosophy">Philosophy</a></li>\r
+<li><a href="#html">Inline HTML</a></li>\r
+<li><a href="#autoescape">Automatic Escaping for Special Characters</a></li>\r
+</ul></li>\r
+<li><a href="#block">Block Elements</a>\r
+<ul>\r
+<li><a href="#p">Paragraphs and Line Breaks</a></li>\r
+<li><a href="#header">Headers</a></li>\r
+<li><a href="#blockquote">Blockquotes</a></li>\r
+<li><a href="#list">Lists</a></li>\r
+<li><a href="#precode">Code Blocks</a></li>\r
+<li><a href="#hr">Horizontal Rules</a></li>\r
+</ul></li>\r
+<li><a href="#span">Span Elements</a>\r
+<ul>\r
+<li><a href="#link">Links</a></li>\r
+<li><a href="#em">Emphasis</a></li>\r
+<li><a href="#code">Code</a></li>\r
+<li><a href="#img">Images</a></li>\r
+</ul></li>\r
+<li><a href="#misc">Miscellaneous</a>\r
+<ul>\r
+<li><a href="#backslash">Backslash Escapes</a></li>\r
+<li><a href="#autolink">Automatic Links</a></li>\r
+</ul></li>\r
+</ul>\r
+\r
+<hr />\r
+\r
+<h2 id="overview">Overview</h2>\r
+\r
+<h3 id="philosophy">Philosophy</h3>\r
+\r
+<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>\r
+\r
+<p>Readability, however, is emphasized above all else. A Markdown-formatted\r
+document should be publishable as-is, as plain text, without looking\r
+like it&#8217;s been marked up with tags or formatting instructions. While\r
+Markdown&#8217;s syntax has been influenced by several existing text-to-HTML\r
+filters &#8212; 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>,\r
+<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> &#8212; the single biggest source of\r
+inspiration for Markdown&#8217;s syntax is the format of plain text email.</p>\r
+\r
+<p>To this end, Markdown&#8217;s syntax is comprised entirely of punctuation\r
+characters, which punctuation characters have been carefully chosen so\r
+as to look like what they mean. E.g., asterisks around a word actually\r
+look like *emphasis*. Markdown lists look like, well, lists. Even\r
+blockquotes look like quoted passages of text, assuming you&#8217;ve ever\r
+used email.</p>\r
+\r
+<h3 id="html">Inline HTML</h3>\r
+\r
+<p>Markdown&#8217;s syntax is intended for one purpose: to be used as a\r
+format for <em>writing</em> for the web.</p>\r
+\r
+<p>Markdown is not a replacement for HTML, or even close to it. Its\r
+syntax is very small, corresponding only to a very small subset of\r
+HTML tags. The idea is <em>not</em> to create a syntax that makes it easier\r
+to insert HTML tags. In my opinion, HTML tags are already easy to\r
+insert. The idea for Markdown is to make it easy to read, write, and\r
+edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>\r
+format. Thus, Markdown&#8217;s formatting syntax only addresses issues that\r
+can be conveyed in plain text.</p>\r
+\r
+<p>For any markup that is not covered by Markdown&#8217;s syntax, you simply\r
+use HTML itself. There&#8217;s no need to preface it or delimit it to\r
+indicate that you&#8217;re switching from Markdown to HTML; you just use\r
+the tags.</p>\r
+\r
+<p>The only restrictions are that block-level HTML elements &#8212; e.g. <code>&lt;div&gt;</code>,\r
+<code>&lt;table&gt;</code>, <code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. &#8212; must be separated from surrounding\r
+content by blank lines, and the start and end tags of the block should\r
+not be indented with tabs or spaces. Markdown is smart enough not\r
+to add extra (unwanted) <code>&lt;p&gt;</code> tags around HTML block-level tags.</p>\r
+\r
+<p>For example, to add an HTML table to a Markdown article:</p>\r
+\r
+<pre><code>This is a regular paragraph.\r
+\r
+&lt;table&gt;\r
+    &lt;tr&gt;\r
+        &lt;td&gt;Foo&lt;/td&gt;\r
+    &lt;/tr&gt;\r
+&lt;/table&gt;\r
+\r
+This is another regular paragraph.\r
+</code></pre>\r
+\r
+<p>Note that Markdown formatting syntax is not processed within block-level\r
+HTML tags. E.g., you can&#8217;t use Markdown-style <code>*emphasis*</code> inside an\r
+HTML block.</p>\r
+\r
+<p>Span-level HTML tags &#8212; e.g. <code>&lt;span&gt;</code>, <code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> &#8212; can be\r
+used anywhere in a Markdown paragraph, list item, or header. If you\r
+want, you can even use HTML tags instead of Markdown formatting; e.g. if\r
+you&#8217;d prefer to use HTML <code>&lt;a&gt;</code> or <code>&lt;img&gt;</code> tags instead of Markdown&#8217;s\r
+link or image syntax, go right ahead.</p>\r
+\r
+<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within\r
+span-level tags.</p>\r
+\r
+<h3 id="autoescape">Automatic Escaping for Special Characters</h3>\r
+\r
+<p>In HTML, there are two characters that demand special treatment: <code>&lt;</code>\r
+and <code>&amp;</code>. Left angle brackets are used to start tags; ampersands are\r
+used to denote HTML entities. If you want to use them as literal\r
+characters, you must escape them as entities, e.g. <code>&amp;lt;</code>, and\r
+<code>&amp;amp;</code>.</p>\r
+\r
+<p>Ampersands in particular are bedeviling for web writers. If you want to\r
+write about &#8216;AT&amp;T&#8217;, you need to write &#8216;<code>AT&amp;amp;T</code>&#8217;. You even need to\r
+escape ampersands within URLs. Thus, if you want to link to:</p>\r
+\r
+<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird\r
+</code></pre>\r
+\r
+<p>you need to encode the URL as:</p>\r
+\r
+<pre><code>http://images.google.com/images?num=30&amp;amp;q=larry+bird\r
+</code></pre>\r
+\r
+<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to\r
+forget, and is probably the single most common source of HTML validation\r
+errors in otherwise well-marked-up web sites.</p>\r
+\r
+<p>Markdown allows you to use these characters naturally, taking care of\r
+all the necessary escaping for you. If you use an ampersand as part of\r
+an HTML entity, it remains unchanged; otherwise it will be translated\r
+into <code>&amp;amp;</code>.</p>\r
+\r
+<p>So, if you want to include a copyright symbol in your article, you can write:</p>\r
+\r
+<pre><code>&amp;copy;\r
+</code></pre>\r
+\r
+<p>and Markdown will leave it alone. But if you write:</p>\r
+\r
+<pre><code>AT&amp;T\r
+</code></pre>\r
+\r
+<p>Markdown will translate it to:</p>\r
+\r
+<pre><code>AT&amp;amp;T\r
+</code></pre>\r
+\r
+<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use\r
+angle brackets as delimiters for HTML tags, Markdown will treat them as\r
+such. But if you write:</p>\r
+\r
+<pre><code>4 &lt; 5\r
+</code></pre>\r
+\r
+<p>Markdown will translate it to:</p>\r
+\r
+<pre><code>4 &amp;lt; 5\r
+</code></pre>\r
+\r
+<p>However, inside Markdown code spans and blocks, angle brackets and\r
+ampersands are <em>always</em> encoded automatically. This makes it easy to use\r
+Markdown to write about HTML code. (As opposed to raw HTML, which is a\r
+terrible format for writing about HTML syntax, because every single <code>&lt;</code>\r
+and <code>&amp;</code> in your example code needs to be escaped.)</p>\r
+\r
+<hr />\r
+\r
+<h2 id="block">Block Elements</h2>\r
+\r
+<h3 id="p">Paragraphs and Line Breaks</h3>\r
+\r
+<p>A paragraph is simply one or more consecutive lines of text, separated\r
+by one or more blank lines. (A blank line is any line that looks like a\r
+blank line &#8212; a line containing nothing but spaces or tabs is considered\r
+blank.) Normal paragraphs should not be intended with spaces or tabs.</p>\r
+\r
+<p>The implication of the &#8220;one or more consecutive lines of text&#8221; rule is\r
+that Markdown supports &#8220;hard-wrapped&#8221; text paragraphs. This differs\r
+significantly from most other text-to-HTML formatters (including Movable\r
+Type&#8217;s &#8220;Convert Line Breaks&#8221; option) which translate every line break\r
+character in a paragraph into a <code>&lt;br /&gt;</code> tag.</p>\r
+\r
+<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code> break tag using Markdown, you\r
+end a line with two or more spaces, then type return.</p>\r
+\r
+<p>Yes, this takes a tad more effort to create a <code>&lt;br /&gt;</code>, but a simplistic\r
+&#8220;every line break is a <code>&lt;br /&gt;</code>&#8221; rule wouldn&#8217;t work for Markdown.\r
+Markdown&#8217;s email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>\r
+work best &#8212; and look better &#8212; when you format them with hard breaks.</p>\r
+\r
+<h3 id="header">Headers</h3>\r
+\r
+<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>\r
+\r
+<p>Setext-style headers are &#8220;underlined&#8221; using equal signs (for first-level\r
+headers) and dashes (for second-level headers). For example:</p>\r
+\r
+<pre><code>This is an H1\r
+=============\r
+\r
+This is an H2\r
+-------------\r
+</code></pre>\r
+\r
+<p>Any number of underlining <code>=</code>&#8217;s or <code>-</code>&#8217;s will work.</p>\r
+\r
+<p>Atx-style headers use 1-6 hash characters at the start of the line,\r
+corresponding to header levels 1-6. For example:</p>\r
+\r
+<pre><code># This is an H1\r
+\r
+## This is an H2\r
+\r
+###### This is an H6\r
+</code></pre>\r
+\r
+<p>Optionally, you may &#8220;close&#8221; atx-style headers. This is purely\r
+cosmetic &#8212; you can use this if you think it looks better. The\r
+closing hashes don&#8217;t even need to match the number of hashes\r
+used to open the header. (The number of opening hashes\r
+determines the header level.) :</p>\r
+\r
+<pre><code># This is an H1 #\r
+\r
+## This is an H2 ##\r
+\r
+### This is an H3 ######\r
+</code></pre>\r
+\r
+<h3 id="blockquote">Blockquotes</h3>\r
+\r
+<p>Markdown uses email-style <code>&gt;</code> characters for blockquoting. If you&#8217;re\r
+familiar with quoting passages of text in an email message, then you\r
+know how to create a blockquote in Markdown. It looks best if you hard\r
+wrap the text and put a <code>&gt;</code> before every line:</p>\r
+\r
+<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
+&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
+&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
+&gt; \r
+&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
+&gt; id sem consectetuer libero luctus adipiscing.\r
+</code></pre>\r
+\r
+<p>Markdown allows you to be lazy and only put the <code>&gt;</code> before the first\r
+line of a hard-wrapped paragraph:</p>\r
+\r
+<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
+consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
+Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
+\r
+&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
+id sem consectetuer libero luctus adipiscing.\r
+</code></pre>\r
+\r
+<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by\r
+adding additional levels of <code>&gt;</code>:</p>\r
+\r
+<pre><code>&gt; This is the first level of quoting.\r
+&gt;\r
+&gt; &gt; This is nested blockquote.\r
+&gt;\r
+&gt; Back to the first level.\r
+</code></pre>\r
+\r
+<p>Blockquotes can contain other Markdown elements, including headers, lists,\r
+and code blocks:</p>\r
+\r
+<pre><code>&gt; ## This is a header.\r
+&gt; \r
+&gt; 1.   This is the first list item.\r
+&gt; 2.   This is the second list item.\r
+&gt; \r
+&gt; Here's some example code:\r
+&gt; \r
+&gt;     return shell_exec("echo $input | $markdown_script");\r
+</code></pre>\r
+\r
+<p>Any decent text editor should make email-style quoting easy. For\r
+example, with BBEdit, you can make a selection and choose Increase\r
+Quote Level from the Text menu.</p>\r
+\r
+<h3 id="list">Lists</h3>\r
+\r
+<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>\r
+\r
+<p>Unordered lists use asterisks, pluses, and hyphens &#8212; interchangably\r
+&#8212; as list markers:</p>\r
+\r
+<pre><code>*   Red\r
+*   Green\r
+*   Blue\r
+</code></pre>\r
+\r
+<p>is equivalent to:</p>\r
+\r
+<pre><code>+   Red\r
++   Green\r
++   Blue\r
+</code></pre>\r
+\r
+<p>and:</p>\r
+\r
+<pre><code>-   Red\r
+-   Green\r
+-   Blue\r
+</code></pre>\r
+\r
+<p>Ordered lists use numbers followed by periods:</p>\r
+\r
+<pre><code>1.  Bird\r
+2.  McHale\r
+3.  Parish\r
+</code></pre>\r
+\r
+<p>It&#8217;s important to note that the actual numbers you use to mark the\r
+list have no effect on the HTML output Markdown produces. The HTML\r
+Markdown produces from the above list is:</p>\r
+\r
+<pre><code>&lt;ol&gt;\r
+&lt;li&gt;Bird&lt;/li&gt;\r
+&lt;li&gt;McHale&lt;/li&gt;\r
+&lt;li&gt;Parish&lt;/li&gt;\r
+&lt;/ol&gt;\r
+</code></pre>\r
+\r
+<p>If you instead wrote the list in Markdown like this:</p>\r
+\r
+<pre><code>1.  Bird\r
+1.  McHale\r
+1.  Parish\r
+</code></pre>\r
+\r
+<p>or even:</p>\r
+\r
+<pre><code>3. Bird\r
+1. McHale\r
+8. Parish\r
+</code></pre>\r
+\r
+<p>you&#8217;d get the exact same HTML output. The point is, if you want to,\r
+you can use ordinal numbers in your ordered Markdown lists, so that\r
+the numbers in your source match the numbers in your published HTML.\r
+But if you want to be lazy, you don&#8217;t have to.</p>\r
+\r
+<p>If you do use lazy list numbering, however, you should still start the\r
+list with the number 1. At some point in the future, Markdown may support\r
+starting ordered lists at an arbitrary number.</p>\r
+\r
+<p>List markers typically start at the left margin, but may be indented by\r
+up to three spaces. List markers must be followed by one or more spaces\r
+or a tab.</p>\r
+\r
+<p>To make lists look nice, you can wrap items with hanging indents:</p>\r
+\r
+<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
+    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
+    viverra nec, fringilla in, laoreet vitae, risus.\r
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
+    Suspendisse id sem consectetuer libero luctus adipiscing.\r
+</code></pre>\r
+\r
+<p>But if you want to be lazy, you don&#8217;t have to:</p>\r
+\r
+<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
+Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
+viverra nec, fringilla in, laoreet vitae, risus.\r
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
+Suspendisse id sem consectetuer libero luctus adipiscing.\r
+</code></pre>\r
+\r
+<p>If list items are separated by blank lines, Markdown will wrap the\r
+items in <code>&lt;p&gt;</code> tags in the HTML output. For example, this input:</p>\r
+\r
+<pre><code>*   Bird\r
+*   Magic\r
+</code></pre>\r
+\r
+<p>will turn into:</p>\r
+\r
+<pre><code>&lt;ul&gt;\r
+&lt;li&gt;Bird&lt;/li&gt;\r
+&lt;li&gt;Magic&lt;/li&gt;\r
+&lt;/ul&gt;\r
+</code></pre>\r
+\r
+<p>But this:</p>\r
+\r
+<pre><code>*   Bird\r
+\r
+*   Magic\r
+</code></pre>\r
+\r
+<p>will turn into:</p>\r
+\r
+<pre><code>&lt;ul&gt;\r
+&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;\r
+&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;\r
+&lt;/ul&gt;\r
+</code></pre>\r
+\r
+<p>List items may consist of multiple paragraphs. Each subsequent\r
+paragraph in a list item must be intended by either 4 spaces\r
+or one tab:</p>\r
+\r
+<pre><code>1.  This is a list item with two paragraphs. Lorem ipsum dolor\r
+    sit amet, consectetuer adipiscing elit. Aliquam hendrerit\r
+    mi posuere lectus.\r
+\r
+    Vestibulum enim wisi, viverra nec, fringilla in, laoreet\r
+    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum\r
+    sit amet velit.\r
+\r
+2.  Suspendisse id sem consectetuer libero luctus adipiscing.\r
+</code></pre>\r
+\r
+<p>It looks nice if you indent every line of the subsequent\r
+paragraphs, but here again, Markdown will allow you to be\r
+lazy:</p>\r
+\r
+<pre><code>*   This is a list item with two paragraphs.\r
+\r
+    This is the second paragraph in the list item. You're\r
+only required to indent the first line. Lorem ipsum dolor\r
+sit amet, consectetuer adipiscing elit.\r
+\r
+*   Another item in the same list.\r
+</code></pre>\r
+\r
+<p>To put a blockquote within a list item, the blockquote&#8217;s <code>&gt;</code>\r
+delimiters need to be indented:</p>\r
+\r
+<pre><code>*   A list item with a blockquote:\r
+\r
+    &gt; This is a blockquote\r
+    &gt; inside a list item.\r
+</code></pre>\r
+\r
+<p>To put a code block within a list item, the code block needs\r
+to be indented <em>twice</em> &#8212; 8 spaces or two tabs:</p>\r
+\r
+<pre><code>*   A list item with a code block:\r
+\r
+        &lt;code goes here&gt;\r
+</code></pre>\r
+\r
+<p>It&#8217;s worth noting that it&#8217;s possible to trigger an ordered list by\r
+accident, by writing something like this:</p>\r
+\r
+<pre><code>1986. What a great season.\r
+</code></pre>\r
+\r
+<p>In other words, a <em>number-period-space</em> sequence at the beginning of a\r
+line. To avoid this, you can backslash-escape the period:</p>\r
+\r
+<pre><code>1986\. What a great season.\r
+</code></pre>\r
+\r
+<h3 id="precode">Code Blocks</h3>\r
+\r
+<p>Pre-formatted code blocks are used for writing about programming or\r
+markup source code. Rather than forming normal paragraphs, the lines\r
+of a code block are interpreted literally. Markdown wraps a code block\r
+in both <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> tags.</p>\r
+\r
+<p>To produce a code block in Markdown, simply indent every line of the\r
+block by at least 4 spaces or 1 tab. For example, given this input:</p>\r
+\r
+<pre><code>This is a normal paragraph:\r
+\r
+    This is a code block.\r
+</code></pre>\r
+\r
+<p>Markdown will generate:</p>\r
+\r
+<pre><code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;\r
+\r
+&lt;pre&gt;&lt;code&gt;This is a code block.\r
+&lt;/code&gt;&lt;/pre&gt;\r
+</code></pre>\r
+\r
+<p>One level of indentation &#8212; 4 spaces or 1 tab &#8212; is removed from each\r
+line of the code block. For example, this:</p>\r
+\r
+<pre><code>Here is an example of AppleScript:\r
+\r
+    tell application "Foo"\r
+        beep\r
+    end tell\r
+</code></pre>\r
+\r
+<p>will turn into:</p>\r
+\r
+<pre><code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;\r
+\r
+&lt;pre&gt;&lt;code&gt;tell application "Foo"\r
+    beep\r
+end tell\r
+&lt;/code&gt;&lt;/pre&gt;\r
+</code></pre>\r
+\r
+<p>A code block continues until it reaches a line that is not indented\r
+(or the end of the article).</p>\r
+\r
+<p>Within a code block, ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> and <code>&gt;</code>)\r
+are automatically converted into HTML entities. This makes it very\r
+easy to include example HTML source code using Markdown &#8212; just paste\r
+it and indent it, and Markdown will handle the hassle of encoding the\r
+ampersands and angle brackets. For example, this:</p>\r
+\r
+<pre><code>    &lt;div class="footer"&gt;\r
+        &amp;copy; 2004 Foo Corporation\r
+    &lt;/div&gt;\r
+</code></pre>\r
+\r
+<p>will turn into:</p>\r
+\r
+<pre><code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;\r
+    &amp;amp;copy; 2004 Foo Corporation\r
+&amp;lt;/div&amp;gt;\r
+&lt;/code&gt;&lt;/pre&gt;\r
+</code></pre>\r
+\r
+<p>Regular Markdown syntax is not processed within code blocks. E.g.,\r
+asterisks are just literal asterisks within a code block. This means\r
+it&#8217;s also easy to use Markdown to write about Markdown&#8217;s own syntax.</p>\r
+\r
+<h3 id="hr">Horizontal Rules</h3>\r
+\r
+<p>You can produce a horizontal rule tag (<code>&lt;hr /&gt;</code>) by placing three or\r
+more hyphens or asterisks on a line by themselves. If you wish, you\r
+may use spaces between the hyphens or asterisks. Each of the following\r
+lines will produce a horizontal rule:</p>\r
+\r
+<pre><code>* * *\r
+\r
+***\r
+\r
+*****\r
+\r
+- - -\r
+\r
+---------------------------------------\r
+</code></pre>\r
+\r
+<hr />\r
+\r
+<h2 id="span">Span Elements</h2>\r
+\r
+<h3 id="link">Links</h3>\r
+\r
+<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>\r
+\r
+<p>In both styles, the link text is delimited by [square brackets].</p>\r
+\r
+<p>To create an inline link, use a set of regular parentheses immediately\r
+after the link text&#8217;s closing square bracket. Inside the parentheses,\r
+put the URL where you want the link to point, along with an <em>optional</em>\r
+title for the link, surrounded in quotes. For example:</p>\r
+\r
+<pre><code>This is [an example](http://example.com/ "Title") inline link.\r
+\r
+[This link](http://example.net/) has no title attribute.\r
+</code></pre>\r
+\r
+<p>Will produce:</p>\r
+\r
+<pre><code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;\r
+an example&lt;/a&gt; inline link.&lt;/p&gt;\r
+\r
+&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no\r
+title attribute.&lt;/p&gt;\r
+</code></pre>\r
+\r
+<p>If you&#8217;re referring to a local resource on the same server, you can\r
+use relative paths:</p>\r
+\r
+<pre><code>See my [About](/about/) page for details.\r
+</code></pre>\r
+\r
+<p>Reference-style links use a second set of square brackets, inside\r
+which you place a label of your choosing to identify the link:</p>\r
+\r
+<pre><code>This is [an example][id] reference-style link.\r
+</code></pre>\r
+\r
+<p>You can optionally use a space to separate the sets of brackets:</p>\r
+\r
+<pre><code>This is [an example] [id] reference-style link.\r
+</code></pre>\r
+\r
+<p>Then, anywhere in the document, you define your link label like this,\r
+on a line by itself:</p>\r
+\r
+<pre><code>[id]: http://example.com/  "Optional Title Here"\r
+</code></pre>\r
+\r
+<p>That is:</p>\r
+\r
+<ul>\r
+<li>Square brackets containing the link identifier (optionally\r
+indented from the left margin using spaces or tabs);</li>\r
+<li>followed by a colon;</li>\r
+<li>followed by one or more spaces (or tabs);</li>\r
+<li>followed by the URL for the link;</li>\r
+<li>optionally followed by a title attribute for the link, enclosed\r
+in double or single quotes.</li>\r
+</ul>\r
+\r
+<p>The link URL may, optionally, be surrounded by angle brackets:</p>\r
+\r
+<pre><code>[id]: &lt;http://example.com/&gt;  "Optional Title Here"\r
+</code></pre>\r
+\r
+<p>You can put the title attribute on the next line and use extra spaces\r
+or tabs for padding, which tends to look better with longer URLs:</p>\r
+\r
+<pre><code>[id]: http://example.com/longish/path/to/resource/here\r
+    "Optional Title Here"\r
+</code></pre>\r
+\r
+<p>Link definitions are only used for creating links during Markdown\r
+processing, and are stripped from your document in the HTML output.</p>\r
+\r
+<p>Link definition names may constist of letters, numbers, spaces, and punctuation &#8212; but they are <em>not</em> case sensitive. E.g. these two links:</p>\r
+\r
+<pre><code>[link text][a]\r
+[link text][A]\r
+</code></pre>\r
+\r
+<p>are equivalent.</p>\r
+\r
+<p>The <em>implicit link name</em> shortcut allows you to omit the name of the\r
+link, in which case the link text itself is used as the name.\r
+Just use an empty set of square brackets &#8212; e.g., to link the word\r
+&#8220;Google&#8221; to the google.com web site, you could simply write:</p>\r
+\r
+<pre><code>[Google][]\r
+</code></pre>\r
+\r
+<p>And then define the link:</p>\r
+\r
+<pre><code>[Google]: http://google.com/\r
+</code></pre>\r
+\r
+<p>Because link names may contain spaces, this shortcut even works for\r
+multiple words in the link text:</p>\r
+\r
+<pre><code>Visit [Daring Fireball][] for more information.\r
+</code></pre>\r
+\r
+<p>And then define the link:</p>\r
+\r
+<pre><code>[Daring Fireball]: http://daringfireball.net/\r
+</code></pre>\r
+\r
+<p>Link definitions can be placed anywhere in your Markdown document. I\r
+tend to put them immediately after each paragraph in which they&#8217;re\r
+used, but if you want, you can put them all at the end of your\r
+document, sort of like footnotes.</p>\r
+\r
+<p>Here&#8217;s an example of reference links in action:</p>\r
+\r
+<pre><code>I get 10 times more traffic from [Google] [1] than from\r
+[Yahoo] [2] or [MSN] [3].\r
+\r
+  [1]: http://google.com/        "Google"\r
+  [2]: http://search.yahoo.com/  "Yahoo Search"\r
+  [3]: http://search.msn.com/    "MSN Search"\r
+</code></pre>\r
+\r
+<p>Using the implicit link name shortcut, you could instead write:</p>\r
+\r
+<pre><code>I get 10 times more traffic from [Google][] than from\r
+[Yahoo][] or [MSN][].\r
+\r
+  [google]: http://google.com/        "Google"\r
+  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"\r
+  [msn]:    http://search.msn.com/    "MSN Search"\r
+</code></pre>\r
+\r
+<p>Both of the above examples will produce the following HTML output:</p>\r
+\r
+<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"\r
+title="Google"&gt;Google&lt;/a&gt; than from\r
+&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;\r
+or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;\r
+</code></pre>\r
+\r
+<p>For comparison, here is the same paragraph written using\r
+Markdown&#8217;s inline link style:</p>\r
+\r
+<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")\r
+than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or\r
+[MSN](http://search.msn.com/ "MSN Search").\r
+</code></pre>\r
+\r
+<p>The point of reference-style links is not that they&#8217;re easier to\r
+write. The point is that with reference-style links, your document\r
+source is vastly more readable. Compare the above examples: using\r
+reference-style links, the paragraph itself is only 81 characters\r
+long; with inline-style links, it&#8217;s 176 characters; and as raw HTML,\r
+it&#8217;s 234 characters. In the raw HTML, there&#8217;s more markup than there\r
+is text.</p>\r
+\r
+<p>With Markdown&#8217;s reference-style links, a source document much more\r
+closely resembles the final output, as rendered in a browser. By\r
+allowing you to move the markup-related metadata out of the paragraph,\r
+you can add links without interrupting the narrative flow of your\r
+prose.</p>\r
+\r
+<h3 id="em">Emphasis</h3>\r
+\r
+<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of\r
+emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an\r
+HTML <code>&lt;em&gt;</code> tag; double <code>*</code>&#8217;s or <code>_</code>&#8217;s will be wrapped with an HTML\r
+<code>&lt;strong&gt;</code> tag. E.g., this input:</p>\r
+\r
+<pre><code>*single asterisks*\r
+\r
+_single underscores_\r
+\r
+**double asterisks**\r
+\r
+__double underscores__\r
+</code></pre>\r
+\r
+<p>will produce:</p>\r
+\r
+<pre><code>&lt;em&gt;single asterisks&lt;/em&gt;\r
+\r
+&lt;em&gt;single underscores&lt;/em&gt;\r
+\r
+&lt;strong&gt;double asterisks&lt;/strong&gt;\r
+\r
+&lt;strong&gt;double underscores&lt;/strong&gt;\r
+</code></pre>\r
+\r
+<p>You can use whichever style you prefer; the lone restriction is that\r
+the same character must be used to open and close an emphasis span.</p>\r
+\r
+<p>Emphasis can be used in the middle of a word:</p>\r
+\r
+<pre><code>un*fucking*believable\r
+</code></pre>\r
+\r
+<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it&#8217;ll be treated as a\r
+literal asterisk or underscore.</p>\r
+\r
+<p>To produce a literal asterisk or underscore at a position where it\r
+would otherwise be used as an emphasis delimiter, you can backslash\r
+escape it:</p>\r
+\r
+<pre><code>\*this text is surrounded by literal asterisks\*\r
+</code></pre>\r
+\r
+<h3 id="code">Code</h3>\r
+\r
+<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).\r
+Unlike a pre-formatted code block, a code span indicates code within a\r
+normal paragraph. For example:</p>\r
+\r
+<pre><code>Use the `printf()` function.\r
+</code></pre>\r
+\r
+<p>will produce:</p>\r
+\r
+<pre><code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;\r
+</code></pre>\r
+\r
+<p>To include a literal backtick character within a code span, you can\r
+backslash escape it:</p>\r
+\r
+<pre><code>`There is a literal backtick (\`) here.`\r
+</code></pre>\r
+\r
+<p>Or, if you prefer, you can use multiple backticks as the opening and\r
+closing delimiters:</p>\r
+\r
+<pre><code>``There is a literal backtick (`) here.``\r
+</code></pre>\r
+\r
+<p>Both of the previous two examples will produce this:</p>\r
+\r
+<pre><code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;\r
+</code></pre>\r
+\r
+<p>With a code span, ampersands and angle brackets are encoded as HTML\r
+entities automatically, which makes it easy to include example HTML\r
+tags. Markdown will turn this:</p>\r
+\r
+<pre><code>Please don't use any `&lt;blink&gt;` tags.\r
+</code></pre>\r
+\r
+<p>into:</p>\r
+\r
+<pre><code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;\r
+</code></pre>\r
+\r
+<p>You can write this:</p>\r
+\r
+<pre><code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.\r
+</code></pre>\r
+\r
+<p>to produce:</p>\r
+\r
+<pre><code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded\r
+equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;\r
+</code></pre>\r
+\r
+<h3 id="img">Images</h3>\r
+\r
+<p>Admittedly, it&#8217;s fairly difficult to devise a &#8220;natural&#8221; syntax for\r
+placing images into a plain text document format.</p>\r
+\r
+<p>Markdown uses an image syntax that is intended to resemble the syntax\r
+for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>\r
+\r
+<p>Inline image syntax looks like this:</p>\r
+\r
+<pre><code>![Alt text](/path/to/img.jpg)\r
+\r
+![Alt text](/path/to/img.jpg "Optional title")\r
+</code></pre>\r
+\r
+<p>That is:</p>\r
+\r
+<ul>\r
+<li>An exclamation mark: <code>!</code>;</li>\r
+<li>followed by a set of square brackets, containing the <code>alt</code>\r
+attribute text for the image;</li>\r
+<li>followed by a set of parentheses, containing the URL or path to\r
+the image, and an optional <code>title</code> attribute enclosed in double\r
+or single quotes.</li>\r
+</ul>\r
+\r
+<p>Reference-style image syntax looks like this:</p>\r
+\r
+<pre><code>![Alt text][id]\r
+</code></pre>\r
+\r
+<p>Where &#8220;id&#8221; is the name of a defined image reference. Image references\r
+are defined using syntax identical to link references:</p>\r
+\r
+<pre><code>[id]: url/to/image  "Optional title attribute"\r
+</code></pre>\r
+\r
+<p>As of this writing, Markdown has no syntax for specifying the\r
+dimensions of an image; if this is important to you, you can simply\r
+use regular HTML <code>&lt;img&gt;</code> tags.</p>\r
+\r
+<hr />\r
+\r
+<h2 id="misc">Miscellaneous</h2>\r
+\r
+<h3 id="autolink">Automatic Links</h3>\r
+\r
+<p>Markdown supports a shortcut style for creating &#8220;automatic&#8221; links for 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>\r
+\r
+<pre><code>&lt;http://example.com/&gt;\r
+</code></pre>\r
+\r
+<p>Markdown will turn this into:</p>\r
+\r
+<pre><code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;\r
+</code></pre>\r
+\r
+<p>Automatic links for email addresses work similarly, except that\r
+Markdown will also perform a bit of randomized decimal and hex\r
+entity-encoding to help obscure your address from address-harvesting\r
+spambots. For example, Markdown will turn this:</p>\r
+\r
+<pre><code>&lt;address@example.com&gt;\r
+</code></pre>\r
+\r
+<p>into something like this:</p>\r
+\r
+<pre><code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;\r
+&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;\r
+&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;\r
+&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;\r
+</code></pre>\r
+\r
+<p>which will render in a browser as a clickable link to &#8220;address@example.com&#8221;.</p>\r
+\r
+<p>(This sort of entity-encoding trick will indeed fool many, if not\r
+most, address-harvesting bots, but it definitely won&#8217;t fool all of\r
+them. It&#8217;s better than nothing, but an address published in this way\r
+will probably eventually start receiving spam.)</p>\r
+\r
+<h3 id="backslash">Backslash Escapes</h3>\r
+\r
+<p>Markdown allows you to use backslash escapes to generate literal\r
+characters which would otherwise have special meaning in Markdown&#8217;s\r
+formatting syntax. For example, if you wanted to surround a word with\r
+literal asterisks (instead of an HTML <code>&lt;em&gt;</code> tag), you can backslashes\r
+before the asterisks, like this:</p>\r
+\r
+<pre><code>\*literal asterisks\*\r
+</code></pre>\r
+\r
+<p>Markdown provides backslash escapes for the following characters:</p>\r
+\r
+<pre><code>\   backslash\r
+`   backtick\r
+*   asterisk\r
+_   underscore\r
+{}  curly braces\r
+[]  square brackets\r
+()  parentheses\r
+#   hash mark\r
+.   dot\r
+!   exclamation mark\r
+</code></pre>\r
+\r
+</div> <!-- article -->\r