extended-markdown-filter
====================
Extended Markdown filters for the [HTML::Pipeline](https://github.com/jch/html-pipeline).
[![Build Status](https://travis-ci.org/gjtorikian/extended-markdown-filter.svg)](https://travis-ci.org/gjtorikian/extended-markdown-filter)
## Installation
Add this line to your application's Gemfile:
gem 'extended-markdown-filter'
And then execute:
$ bundle
Or install it yourself as:
$ gem install extended-markdown-filter
## Usage
The simplest way to do this is
``` ruby
require 'extended-markdown-filter'
```
Then just use the HTML pipeline normally.
### Within Jekyll
Because of the Liquid template engine, if you use this filter with Jekyll, you might find that your curly brace tags--such as `{{#tip}}`--disappear.
You'll need to pass the context `emf_use_blocks` through your filter. This sets up a totally safe monkey-patch to convert the `{{ }}` blocks into `[[ ]]`, so that Liquid ignores them. Then, this renderer will convert the Markdown appropriately.
## What does this add?
You may be wondering what features this filter adds to Markdown. Great question! Here's what we've got:
### Command-line highlighting
A new pre block, `command-line`, adds some divs to allow for better highlighting for terminal code.
#### Example
``` command-line
$ git remote add origin https://github.com/user/repo.git
# Set a new remote
> origin https://github.com/user/repo.git
```
* `$` represents content a user enters
* `` highlights content for the user
* `#` represents comments
* `>` represents output as a result of a command
### Helper
The `helper` notation wraps content in an [accordion fold](http://jqueryui.com/accordion/).
#### Example
``` helper
I'm not really important enough to show.
```
### Admonition blocks
You can create separate, priority-colored callouts with `{{#tip}}`, `{{#note}}`, `{{#warning}}`, and `{{#error}}` tags.
#### Example
{{#tip}}
Here's a hot tip: **line one**
Here's a hot tip: line two
{{/tip}}
{{#note}}
You should probably know this! line one
You should probably know this! line two
{{/note}}
{{#warning}}
Yo, check this out: line one
Yo, check this out: line two
{{/warning}}
{{#danger}}
Sheeeeit, this is a problem: ~~line one~~
Sheeeeit, this is a problem: line two
{{/danger}}
### Intro
The `intro` block demarcates a special section that provides a summary of the content to follow.
#### Example
{{#intro}}
[Gists](https://gist.github.com) are a great way to share your work. You can share single files, parts of files, or full applications.
{{/intro}}
### Octicon
The `{{ octicon }}` helper lets you easily render [any Octicon](https://octicons.github.com/) in the content, including an aria label.
#### Example
{{ octicon-gear The Settings gear }}
### Operating system blocks
Sometimes, certain content needs to be rendered for only a certain operating system. Use `{{#mac}}` of Mac OS specific content, `{{#windows}}` for Windows, `{{#linux}}` for Linux, and `{{#all}}` as a catch-all for everything else.
#### Example
{{#mac}}
1. Command-click on the option.
{{/mac}}
{{#windows}}
1. Right click on the **Start** menu.
{{/windows}}
{{#linux}}
1. Open the terminal.
{{/linux}}
{{#all}}
1. Double-click on the icon.
{{/all}}