Ember addon for Remarkable markdown parsing helpers and components.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
addon Tolerate absence of remarkable config May 1, 2017
app Cleanup exports Nov 29, 2016
blueprints Use integration tests Apr 4, 2016
config Begin bumping all the things Apr 4, 2016
tests
vendor Remove highlightjs-shim as it is not used Dec 30, 2016
.bowerrc Initial Commit from Ember CLI v0.1.2 Nov 25, 2014
.editorconfig Begin bumping all the things Apr 4, 2016
.ember-cli
.gitignore
.jshintrc
.npmignore Begin bumping all the things Apr 4, 2016
.travis.yml Begin bumping all the things Apr 4, 2016
.watchmanconfig Begin bumping all the things Apr 4, 2016
LICENSE.md
README.md A few style tweaks Jan 15, 2017
bower.json Remove `ember-template-compiler` from dependencies. Jun 4, 2016
ember-cli-build.js Allow renderding arbitrary Ember components, fixes #19 May 2, 2016
index.js Tolerate absence of remarkable config May 1, 2017
package.json 3.6.1 May 1, 2017
testem.js Begin bumping all the things Apr 4, 2016
testem.json Initial Commit from Ember CLI v0.1.2 Nov 25, 2014

README.md

ember-remarkable Build Status Ember Observer Score

Add Remarkable markdown parsing helpers and components to your Ember app.

Installation

ember install ember-remarkable

Usage

{{md-text
  text        = "# Markdown text!"
  typographer = true
  linkify     = false
}}

Options

option type default security description
text string Markdown content to render
typographer boolean false Whether to enable Remarkable's typographer option
linkify boolean false Whether to enable Remarkable's linkify option
html boolean false ⚠️ insecure Whether to enable Remarkable's html option
extensions boolean true Whether to enable Remarkable's syntax extensions
dynamic boolean false ⚠️ insecure Whether to enable dynamic template rendering (see below)

Inline multi-line input

When you provide the text inline, you can split it into multiple lines like this:

<div>
  {{md-text
    text = "
# Hello world

Note that you have to unindent
the multiline `text` content.
    "
  }}
</div>

Dynamic Template Rendering

By enabling the dynamic option you can embed Ember components into your markdown:

{{md-text
  text = "{{link-to 'Foo' 'foo'}}"
}}

This feature is useful for implementing CMS-like functionality with Ember: it lets your Markdown content to be dynamic and Ember-driven rather than just static HTML.

But this approach is not encouraged by the Ember core team and might be deprecated in the future (though there are no plans to deprecate it as of May 2016).

⚠️ Security implications

By using the html and dynamic template options you can make your app vulnerable to XSS.

Use those options only if your Markdown content is provided by trusted team members and regular users have no way to update it.

Syntax Highlighting

This addon uses highlight.js for syntax highlighting, in order to include it you just need to use Github style code-fencing. Currently, only the component supports syntax highlighting.

Excluding Highlightjs

The use of highlight.js can be disabled by adding the following option to your config/environment.js:

remarkable: {
  excludeHighlightJs: true
}

Setting to true will ensure that highlight.js won't be included in your build.

Custom Highlighting

The highlight function, as used by remarkable, can be overriden. To do this, create your own md-text component:

import MDTextComponent from 'ember-remarkable/components/md-text';

export default MDTextComponent.extend({ 
  highlight: function(str, lang) {
     return '';
  }
}); 

Plugins

You can pass plugins to each component instance by providing an array of plugin functions in a plugin option.

Development

Installation

  • git clone this repository
  • npm install
  • bower install

Running

Running Tests

  • ember test
  • ember test --server

Building

  • ember build

For more information on using ember-cli, visit http://www.ember-cli.com/.

Thanks to the following

License

MIT

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Crafted with <3 by John Otander(@4lpine).