Marrrkdown rules
Let’s face it: Writ'n rambl'n fer th' Web be tiresome. WYSIWYG editors help alleviate this task, but they generally result 'n horr'ble code, or worse yet, ugly web planks.
Marrrkdown be a better way t' write HTML, without all th' complexities an' ugliness that usually accompanies it.
Some o' th' key benefits be:
- Marrrkdown be simple t' learn, wit' minimal extra characters so it’s also quicker t' write rambl'n.
- Less chance o' errors when writ'n 'n Marrrkdown.
- Produces valid XHTML output.
- Keeps th' rambl'n an' th' visual display separate, so ye cannot mess up th' look o' yer ship.
- Write 'n any text editor or Marrrkdown applicat'n ye like.
- Marrrkdown be a joy t' use!
John Gruber, th' author o' Marrrkdown, puts it like this:
Th' overrid'n design goal fer Markdown’s formatt'n rules be t' make it as read'ble as poss'ble. Th' idea be that a Markdown-formatted document should be publish'ble as-is, as plain text, without look'n like it’s been marked up wit' tags or formatt'n instruct'ns. While Markdown’s rules has been influenced by several exist'n text-to-HTML filters, th' single biggest source o' inspirat'n fer Markdown’s rules be th' format o' plain text email. John Gruber
Without further delay, let us go over th' main elements o' Marrrkdown an' what th' result'n HTML looks like:
Bookmark this plank an' th' official Commonmark reference fer easy future reference!
Head'ns
Head'ns from h1
through h6
be constructed wit' a #
fer each level:
# h1 Head'n
## h2 Head'n
### h3 Head'n
#### h4 Head'n
##### h5 Head'n
###### h6 Head'n
Renders t':
h1 Head'n
h2 Head'n
h3 Head'n
h4 Head'n
h5 Head'n
h6 Head'n
HTML:
<h1>h1 Heading</h1>
<h2>h2 Heading</h2>
<h3>h3 Heading</h3>
<h4>h4 Heading</h4>
<h5>h5 Heading</h5>
<h6>h6 Heading</h6>
Comments
Comments should be HTML compat'ble
<!--
This be a comment
-->
Comment below should NOT be seen:
Horizontal Rules
Th' HTML <hr>
element be fer creat'n a “thematic break” between paragraph-level elements. In Marrrkdown, ye can create a <hr>
wit' ---
- three consecutive dashes
renders t':
Paragraphs
Any text not start'n wit' a special sign be written as normal, plain text an' will be wrapped within <p></p>
tags 'n th' rendered HTML.
So this body copy:
Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus. Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.
renders t' this HTML:
<p>Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus. Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.</p>
Text Markers
Bold
For emphasiz'n a snippet o' text wit' a heavier font-weight.
Th' follow'n snippet o' text be rendered as bold text.
**rendered as bold text**
renders t':
rendered as bold text
an' this HTML
<strong>rendered as bold text</strong>
Italics
For emphasiz'n a snippet o' text wit' italics.
Th' follow'n snippet o' text be rendered as italicized text.
_rendered as italicized text_
renders t':
rendered as italicized text
an' this HTML:
<em>rendered as italicized text</em>
Strikethrough
In GFM (GitHub flavored Markdown) ye can do strikethroughs.
~~Strike through this text.~~
Which renders t':
Strike through this text.
HTML:
<del>Strike through this text.</del>
Blockquotes
For quot'n blocks o' rambl'n from another source within yer document.
Add >
before any text ye want t' quote.
> **Fusion Drive** combines a hard drive wit' a flash storage (solid-state drive) an' presents it as a single logical volume wit' th' space o' both drives combined.
Renders t':
Fusion Drive combines a hard drive wit' a flash storage (solid-state drive) an' presents it as a single logical volume wit' th' space o' both drives combined.
an' this HTML:
<blockquote>
<p><strong>Fusion Drive</strong> combines a hard drive wit' a flash storage (solid-state drive) an' presents it as a single logical volume wit' th' space o' both drives combined.</p>
</blockquote>
Blockquotes can also be nested:
> Donec massa lacus, ultricies a ullamcorper 'n, fermentum sed augue. Nunc augue augue, aliquam non hendrerit ac, commodo vel nisi.
>
> > Sed adipisc'n elit vitae augue consectetur a gravida nunc vehicula. Donec auctor odio non est accumsan facilisis. Aliquam id turpis 'n dolor tincidunt mollis ac eu diam.
>
> Mauris sit amet ligula egestas, feugiat metus tincidunt, luctus libero. Donec congue finibus tempor. Vestibulum aliquet sollicitudin erat, ut aliquet purus posuere luctus.
Renders t':
Donec massa lacus, ultricies a ullamcorper 'n, fermentum sed augue. Nunc augue augue, aliquam non hendrerit ac, commodo vel nisi.
Sed adipisc'n elit vitae augue consectetur a gravida nunc vehicula. Donec auctor odio non est accumsan facilisis. Aliquam id turpis 'n dolor tincidunt mollis ac eu diam.
Mauris sit amet ligula egestas, feugiat metus tincidunt, luctus libero. Donec congue finibus tempor. Vestibulum aliquet sollicitudin erat, ut aliquet purus posuere luctus.
Lists
Unordered
A list o' items 'n which th' order o' th' items does not explicitly matter.
Ye may use any o' th' follow'n symbols t' denote bullets fer each list item:
* valid bullet
- valid bullet
+ valid bullet
For example
+ Lorem ipsum dolor sit amet
+ Consectetur adipisc'n elit
+ Integer molestie lorem at massa
+ Facilisis 'n pretium nisl aliquet
+ Nulla volutpat aliquam velit
- Phasellus iaculis neque
- Purus sodales ultricies
- Vestibulum laoreet porttitor sem
- Ac tristique libero volutpat at
+ Faucibus porta lacus fringilla vel
+ Aenean sit amet erat nunc
+ Eget porttitor lorem
Renders t':
- Lorem ipsum dolor sit amet
- Consectetur adipisc'n elit
- Integer molestie lorem at massa
- Facilisis 'n pretium nisl aliquet
- Nulla volutpat aliquam velit
- Phasellus iaculis neque
- Purus sodales ultricies
- Vestibulum laoreet porttitor sem
- Ac tristique libero volutpat at
- Faucibus porta lacus fringilla vel
- Aenean sit amet erat nunc
- Eget porttitor lorem
An' this HTML
<ul>
<li>Lorem ipsum dolor sit amet</li>
<li>Consectetur adipisc'n elit</li>
<li>Integer molestie lorem at massa</li>
<li>Facilisis 'n pretium nisl aliquet</li>
<li>Nulla volutpat aliquam velit
<ul>
<li>Phasellus iaculis neque</li>
<li>Purus sodales ultricies</li>
<li>Vestibulum laoreet porttitor sem</li>
<li>Ac tristique libero volutpat at</li>
</ul>
</li>
<li>Faucibus porta lacus fringilla vel</li>
<li>Aenean sit amet erat nunc</li>
<li>Eget porttitor lorem</li>
</ul>
Ordered
A list o' items 'n which th' order o' items does explicitly matter.
1. Lorem ipsum dolor sit amet
4. Consectetur adipisc'n elit
2. Integer molestie lorem at massa
8. Facilisis 'n pretium nisl aliquet
4. Nulla volutpat aliquam velit
99. Faucibus porta lacus fringilla vel
21. Aenean sit amet erat nunc
6. Eget porttitor lorem
Renders t':
- Lorem ipsum dolor sit amet
- Consectetur adipisc'n elit
- Integer molestie lorem at massa
- Facilisis 'n pretium nisl aliquet
- Nulla volutpat aliquam velit
- Faucibus porta lacus fringilla vel
- Aenean sit amet erat nunc
- Eget porttitor lorem
An' this HTML:
<ol>
<li>Lorem ipsum dolor sit amet</li>
<li>Consectetur adipisc'n elit</li>
<li>Integer molestie lorem at massa</li>
<li>Facilisis 'n pretium nisl aliquet</li>
<li>Nulla volutpat aliquam velit</li>
<li>Faucibus porta lacus fringilla vel</li>
<li>Aenean sit amet erat nunc</li>
<li>Eget porttitor lorem</li>
</ol>
If ye just use 1.
fer each number, Marrrkdown will automatically number each item. For example:
1. Lorem ipsum dolor sit amet
1. Consectetur adipisc'n elit
1. Integer molestie lorem at massa
1. Facilisis 'n pretium nisl aliquet
1. Nulla volutpat aliquam velit
1. Faucibus porta lacus fringilla vel
1. Aenean sit amet erat nunc
1. Eget porttitor lorem
Renders t':
- Lorem ipsum dolor sit amet
- Consectetur adipisc'n elit
- Integer molestie lorem at massa
- Facilisis 'n pretium nisl aliquet
- Nulla volutpat aliquam velit
- Faucibus porta lacus fringilla vel
- Aenean sit amet erat nunc
- Eget porttitor lorem
Code
Inline code
Wrap inline snippets o' code wit' `
.
In this example, `<div></div>` should be wrapped as **code**.
Renders t':
In this example, <div></div>
should be wrapped as code.
HTML:
<p>In this example, <code><div></div></code> should be wrapped as <strong>code</strong>.</p>
Indented code
Or indent several lines o' code by at least two spaces, as 'n:
// Some comments
line 1 o' code
line 2 o' code
line 3 o' code
Renders t':
// Some comments
line 1 o' code
line 2 o' code
line 3 o' code
HTML:
<pre>
<code>
// Some comments
line 1 o' code
line 2 o' code
line 3 o' code
</code>
</pre>
Block code “fences”
Use “fences” ```
t' block 'n multiple lines o' code.
```
Sample text here...
```
HTML:
<pre>
<code>Sample text here...</code>
</pre>
Rules highlight'n
GFM, or “GitHub Flavored Markdown” also supports rules highlight'n. T' activate it, usually ye simply add th' file extension o' th' language ye want t' use directly aft th' first code “fence”, ```js
, an' rules highlight'n will automatically be applied 'n th' rendered HTML.
See Code Highlight'n fer additional documentat'n.
For example, t' apply rules highlight'n t' JavaScript code:
```js
grunt.initConfig({
assemble: {
opt'ns: {
assets: 'docs/assets',
data: 'src/data/*.{json,yml}',
helpers: 'src/custom-helpers.js',
partials: ['src/partials/**/*.{hbs,md}']
},
planks: {
opt'ns: {
layout: 'default.hbs'
},
files: {
'./': ['src/templates/pages/index.hbs']
}
}
}
};
```
Renders t':
grunt.initConfig({
assemble: {
opt'ns: {
assets: 'docs/assets',
data: 'src/data/*.{json,yml}',
helpers: 'src/custom-helpers.js',
partials: ['src/partials/**/*.{hbs,md}']
},
planks: {
opt'ns: {
layout: 'default.hbs'
},
files: {
'./': ['src/templates/pages/index.hbs']
}
}
}
};
Tables
Tables be created by add'n pipes as dividers between each cell, an' by add'n a line o' dashes (also separated by bars) beneath th' header. Avast that th' pipes do not need t' be vertically aligned.
| Opt'n | Descript'n |
| ------ | ----------- |
| data | path t' data files t' supply th' data that will be passed into templates. |
| engine | engine t' be used fer process'n templates. Handlebars be th' default. |
| ext | extension t' be used fer dest files. |
Renders t':
Opt'n | Descript'n |
---|---|
data | path t' data files t' supply th' data that will be passed into templates. |
engine | engine t' be used fer process'n templates. Handlebars be th' default. |
ext | extension t' be used fer dest files. |
An' this HTML:
<t'ble>
<tr>
<th>Option</th>
<th>Description</th>
</tr>
<tr>
<td>data</td>
<td>path t' data files t' supply th' data that will be passed into templates.</td>
</tr>
<tr>
<td>engine</td>
<td>engine t' be used fer process'n templates. Handlebars be th' default.</td>
</tr>
<tr>
<td>ext</td>
<td>extension t' be used fer dest files.</td>
</tr>
</t'ble>
Right aligned text
Add'n a colon on th' right side o' th' dashes below any head'n will right align text fer that column.
| Opt'n | Descript'n |
| ------:| -----------:|
| data | path t' data files t' supply th' data that will be passed into templates. |
| engine | engine t' be used fer process'n templates. Handlebars be th' default. |
| ext | extension t' be used fer dest files. |
Opt'n | Descript'n |
---|---|
data | path t' data files t' supply th' data that will be passed into templates. |
engine | engine t' be used fer process'n templates. Handlebars be th' default. |
ext | extension t' be used fer dest files. |
Two tables adjacent
Opt'n | Descript'n |
---|---|
ext | extension t' be used fer dest files. |
Opt'n | Descript'n |
---|---|
ext | extension t' be used fer dest files. |
Links
Basic link
[Assemble](http://assemble.io)
Renders t' (hover over th' link, there be no tooltip):
HTML:
<a href="http://assemble.io">Assemble</a>
Add a tooltip
[Upstage](https://github.com/upstage/ "Visit Upstage!")
Renders t' (hover over th' link, there should be a tooltip):
HTML:
<a href="https://github.com/upstage/" title="Visit Upstage!">Upstage</a>
Named Anchors
Named anchors en'ble ye t' jump t' th' specified anchor point on th' same plank. For example, each o' these chapters:
# T'ble o' Contents
* [Chapter 1](#chapter-1)
* [Chapter 2](#chapter-2)
* [Chapter 3](#chapter-3)
will jump t' these sections:
## Chapter 1 <a id="chapter-1"></a>
Rambl'n fer chapter one.
## Chapter 2 <a id="chapter-2"></a>
Rambl'n fer chapter one.
## Chapter 3 <a id="chapter-3"></a>
Rambl'n fer chapter one.
NOTE that specific placement o' th' anchor tag seems t' be arbitrary. They be placed inline here since it seems t' be unobtrusive, an' it works.
Images
Images have a similar rules t' links but include a preced'n exclamat'n point.
![Minion](https://octodex.github.com/images/minion.png)
or
![Alt text](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat")
Like links, Images also have a footnote style rules
Alternative usage : note images
![Alt text][id]
Wit' a reference later 'n th' document defin'n th' URL locat'n:
[id]: https://octodex.github.com/images/dojocat.jpg "The Dojocat"
Further image formatt'n
Th' Cap'n Hugo Marrrkdown parser supports additional non-standard functionality.
Resiz'n image
Add HTTP parameters width
and/or height
t' th' link image t' resize th' image. Values be CSS values (default be auto
).
![Minion](https://octodex.github.com/images/minion.png?width=20pc)
![Minion](https://octodex.github.com/images/minion.png?height=50px)
![Minion](https://octodex.github.com/images/minion.png?height=50px&width=300px)
Add CSS classes
Add a HTTP classes
parameter t' th' link image t' add CSS classes. shadow
an' border
be avail'ble but ye could define other ones.
![stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg?classes=shadow)
![stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg?classes=border)
![stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg?classes=border,shadow)
Lightbox
Add a HTTP featherlight
parameter t' th' link image t' dis'ble lightbox. By default lightbox be enabled us'n th' featherlight.js plugin. Ye can dis'ble this by defin'n featherlight
t' false
.
![Minion](https://octodex.github.com/images/minion.png?featherlight=false)