markdown.js 662 B

12345678910111213141516171819202122
  1. "use strict";
  2. import createDOMPurify from 'dompurify';
  3. import {JSDOM} from 'jsdom';
  4. import {parse as parse_markdown} from 'marked';
  5. import {MarkdownToHtmlResponse} from '../protocols/morus_pb';
  6. export const to_html = (call, callback) => {
  7. const request = call.request.getPayload();
  8. const html = parse_markdown(request);
  9. var reply = new MarkdownToHtmlResponse();
  10. if(call.request.sanitize){
  11. const window = new JSDOM('').window;
  12. const purify = createDOMPurify(window);
  13. const clean = purify.sanitize(html);
  14. reply.setPayload(clean);
  15. }else{
  16. reply.setPayload(html);
  17. }
  18. callback(null, reply);
  19. }