import loadScript from "./load-script"; import { default as PrettyText, buildOptions } from "pretty-text/pretty-text"; import Handlebars from "handlebars"; import getURL from "discourse-common/lib/get-url"; import { getOwner } from "discourse-common/lib/get-owner"; export function cook(text, options) { if (!options) { options = buildOptions({ getURL, siteSettings: getOwner(this).lookup("site-settings:main"), }); } return new Handlebars.SafeString(new PrettyText(options).cook(text)); } // everything should eventually move to async API and this should be renamed // cook export function cookAsync(text, options) { if (Discourse.MarkdownItURL) { return loadScript(Discourse.MarkdownItURL) .then(() => cook(text, options)) .catch((e) => Ember.Logger.error(e)); } else { return Ember.RSVP.Promise.resolve(cook(text)); } }