Markdown filter for Angular
# As a bower component:
$ bower install angular-markdown-filter
# As an npm package:
$ npm install angular-markdown-filter
It's recomended to also use ngSanitize if you plan to bind the output using ngBindHtml to pervent XSS.
$ bower install angular-sanitize
<script src="bower_components/showdown/dist/showdown.min.js"></script>
<script src="bower_components/angular-markdown-filter/markdown.js"></script>
<!-- Optional: -->
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
angular.module('myApp', [
'ngSanitize', // Optional
'markdown'
]);
The underlying Showdown converter can be configured through the markdown
provider
angular.module('markdown')
.config(function(markdownProvider) {
markdownProvider.config({
extensions: ['table']
});
});
see the Showdown documentation for details on how to create extensions.
angular.module('myApp')
// Optional Config
.config(function ($compileProvider) {
// Add optional support for custom schema links: "herp://" and "derp://"
$compileProvider.aHrefSanitizationWhitelist(/^\s*(herp|derp):/);
})
.controller('MainCtrl', function ($scope) {
$scope.text = '# Heading 1\n- [Link](http://example.com)\n- [Custom Link 1](herp://is.this.working?)\n- [Custom Link 2](derp://is.this.working?)';
});
<div class="container" ng-bind-html="text | markdown"></div>