renderer.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const xss = require('xss')
  2. module.exports = {
  3. async init(input, config) {
  4. if (config.safeHTML) {
  5. input = xss(input, {
  6. whiteList: {
  7. ...xss.whiteList,
  8. a: ['class', 'id', 'href', 'target', 'title'],
  9. blockquote: ['class', 'id'],
  10. code: ['class'],
  11. div: ['class', 'id'],
  12. em: ['class'],
  13. h1: ['class', 'id'],
  14. h2: ['class', 'id'],
  15. h3: ['class', 'id'],
  16. h4: ['class', 'id'],
  17. h5: ['class', 'id'],
  18. h6: ['class', 'id'],
  19. img: ['alt', 'class', 'draggable', 'height', 'src', 'width'],
  20. li: ['class'],
  21. ol: ['class'],
  22. p: ['class'],
  23. pre: ['class'],
  24. strong: ['class'],
  25. table: ['border', 'class', 'id', 'width'],
  26. tbody: ['class'],
  27. td: ['align', 'class', 'colspan', 'rowspan', 'valign'],
  28. th: ['align', 'class', 'colspan', 'rowspan', 'valign'],
  29. thead: ['class'],
  30. tr: ['class', 'rowspan', 'align', 'valign'],
  31. ul: ['class']
  32. }
  33. })
  34. }
  35. return input
  36. }
  37. }