Modrinth/plugins/compiled-markdown-directive.js
boredomh1 3eed51dbac
Fix summary tags being always escaped by XSS (#84)
* Fix summary tags being removed by XSS

* Follow falseresync's suggestion

Co-authored-by: joaoh1 <joaoh1@users.noreply.github.com>
2021-01-21 14:40:09 -07:00

27 lines
501 B
JavaScript

import Vue from 'vue'
import xss from 'xss'
import marked from 'marked'
const options = {
whiteList: {
...xss.whiteList,
summary: [],
},
}
const configuredXss = new xss.FilterXSS(options)
function compileMarkdown(target, markdown) {
target.innerHTML = configuredXss.process(marked(markdown))
}
Vue.directive('compiled-markdown', {
bind(el, binding, vnode) {
compileMarkdown(el, binding.value)
},
update(el, binding, vnode) {
compileMarkdown(el, binding.value)
},
})