apply patches

This commit is contained in:
FloatingGhost 2022-01-28 19:07:28 +00:00
parent f065fe98b2
commit 1bc05e87e4
2 changed files with 14 additions and 2 deletions

View File

@ -108,6 +108,13 @@ export default Vue.component('RichContent', {
}
}
const renderLink = (attrs, children) => {
const updatedLink = attrs['href'].replace(/&/g, '&')
const updatedChildren = children.map(child => child.replace(attrs['href'], updatedLink))
return <a {...{ attrs }} href={updatedLink}>
{ updatedChildren }
</a>
}
// Processor to use with html_tree_converter
const processItem = (item, index, array, what) => {
// Handle text nodes - just add emoji
@ -171,6 +178,9 @@ export default Vue.component('RichContent', {
return renderMention(attrs, children)
} else {
currentMentions = null
if (attrs['href']) {
return renderLink(attrs, children)
}
break
}
case 'span':

View File

@ -36,11 +36,13 @@ describe('RichContent', () => {
it('unescapes everything as needed', () => {
const html = [
p('Testing &#39;em all'),
'Testing &#39;em all'
'Testing &#39;em all',
'<a href="http://example.com?a=1&amp;b=2">http://example.com?a=1&b=2</a>'
].join('')
const expected = [
p('Testing \'em all'),
'Testing \'em all'
'Testing \'em all',
'<a href="http://example.com?a=1&b=2">http://example.com?a=1&b=2</a>'
].join('')
const wrapper = shallowMount(RichContent, {
localVue,