/* global Showdown, Handlebars, html_sanitize*/ import cajaSanitizers from 'ghost/utils/caja-sanitizers'; var showdown, formatMarkdown; showdown = new Showdown.converter({extensions: ['ghostimagepreview', 'ghostgfm', 'footnotes', 'highlight']}); formatMarkdown = Ember.Handlebars.makeBoundHelper(function (markdown) { var escapedhtml = ''; // convert markdown to HTML escapedhtml = showdown.makeHtml(markdown || ''); // replace script and iFrame // jscs:disable escapedhtml = escapedhtml.replace(/)<[^<]*)*<\/script>/gi, '
Embedded JavaScript
'); escapedhtml = escapedhtml.replace(/)<[^<]*)*<\/iframe>/gi, '
Embedded iFrame
'); // jscs:enable // sanitize html // jscs:disable requireCamelCaseOrUpperCaseIdentifiers escapedhtml = html_sanitize(escapedhtml, cajaSanitizers.url, cajaSanitizers.id); // jscs:enable requireCamelCaseOrUpperCaseIdentifiers return new Handlebars.SafeString(escapedhtml); }); export default formatMarkdown;