|
|
@ -121,14 +121,13 @@ export default Vue.component('RichContent', {
|
|
|
|
if (emptyText) {
|
|
|
|
if (emptyText) {
|
|
|
|
return encounteredText ? item : item.trim()
|
|
|
|
return encounteredText ? item : item.trim()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let unescapedItem = unescape(item)
|
|
|
|
|
|
|
|
if (!encounteredText) {
|
|
|
|
if (!encounteredText) {
|
|
|
|
unescapedItem = unescapedItem.trimStart()
|
|
|
|
item = item.trimStart()
|
|
|
|
encounteredText = true
|
|
|
|
encounteredText = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (item.includes(':')) {
|
|
|
|
if (item.includes(':')) {
|
|
|
|
unescapedItem = ['', processTextForEmoji(
|
|
|
|
item = ['', processTextForEmoji(
|
|
|
|
unescapedItem,
|
|
|
|
item,
|
|
|
|
this.emoji,
|
|
|
|
this.emoji,
|
|
|
|
({ shortcode, url }) => {
|
|
|
|
({ shortcode, url }) => {
|
|
|
|
return <StillImage
|
|
|
|
return <StillImage
|
|
|
@ -140,7 +139,7 @@ export default Vue.component('RichContent', {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
)]
|
|
|
|
)]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return unescapedItem
|
|
|
|
return item
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Handle tag nodes
|
|
|
|
// Handle tag nodes
|
|
|
@ -189,7 +188,7 @@ export default Vue.component('RichContent', {
|
|
|
|
const emptyText = item.trim() === ''
|
|
|
|
const emptyText = item.trim() === ''
|
|
|
|
if (emptyText) return item
|
|
|
|
if (emptyText) return item
|
|
|
|
if (!encounteredTextReverse) encounteredTextReverse = true
|
|
|
|
if (!encounteredTextReverse) encounteredTextReverse = true
|
|
|
|
return item
|
|
|
|
return unescape(item)
|
|
|
|
} else if (Array.isArray(item)) {
|
|
|
|
} else if (Array.isArray(item)) {
|
|
|
|
// Handle tag nodes
|
|
|
|
// Handle tag nodes
|
|
|
|
const [opener, children] = item
|
|
|
|
const [opener, children] = item
|
|
|
@ -203,9 +202,7 @@ export default Vue.component('RichContent', {
|
|
|
|
return renderHashtag(attrs, children, encounteredTextReverse)
|
|
|
|
return renderHashtag(attrs, children, encounteredTextReverse)
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
attrs.target = '_blank'
|
|
|
|
attrs.target = '_blank'
|
|
|
|
html.includes('freenode') && console.log('PASS1', children)
|
|
|
|
|
|
|
|
const newChildren = [...children].reverse().map(processItemReverse).reverse()
|
|
|
|
const newChildren = [...children].reverse().map(processItemReverse).reverse()
|
|
|
|
html.includes('freenode') && console.log('PASS1b', newChildren)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return <a {...{ attrs }}>
|
|
|
|
return <a {...{ attrs }}>
|
|
|
|
{ newChildren }
|
|
|
|
{ newChildren }
|
|
|
|