feat: support v13 mfm

This commit is contained in:
sim1222 2023-02-15 17:52:16 +09:00
parent 58f9c9055a
commit 305ca205bd
No known key found for this signature in database
GPG Key ID: 04EF48D01BEB0298

View File

@ -5,6 +5,7 @@ import MkLink from '@/components/MkLink.vue';
import MkMention from '@/components/MkMention.vue'; import MkMention from '@/components/MkMention.vue';
import MkEmoji from '@/components/global/MkEmoji.vue'; import MkEmoji from '@/components/global/MkEmoji.vue';
import { concat } from '@/scripts/array'; import { concat } from '@/scripts/array';
import MkFormula from '@/components/MkFormula.vue';
import MkCode from '@/components/MkCode.vue'; import MkCode from '@/components/MkCode.vue';
import MkGoogle from '@/components/MkGoogle.vue'; import MkGoogle from '@/components/MkGoogle.vue';
import MkSparkle from '@/components/MkSparkle.vue'; import MkSparkle from '@/components/MkSparkle.vue';
@ -43,6 +44,9 @@ export default defineComponent({
type: Object, type: Object,
default: null, default: null,
}, },
customEmojis: {
required: false,
},
isNote: { isNote: {
type: Boolean, type: Boolean,
default: true, default: true,
@ -256,14 +260,6 @@ export default defineComponent({
}, genEl(token.children))]; }, genEl(token.children))];
} }
case 'dlsite': {
return [h(MkLink, {
key: Math.random(),
url: token.props.url,
rel: 'nofollow noopener',
}, genEl(token.children))];
}
case 'mention': { case 'mention': {
return [h(MkMention, { return [h(MkMention, {
key: Math.random(), key: Math.random(),
@ -312,9 +308,8 @@ export default defineComponent({
return [h(MkEmoji, { return [h(MkEmoji, {
key: Math.random(), key: Math.random(),
emoji: `:${token.props.name}:`, emoji: `:${token.props.name}:`,
customEmojis: this.customEmojis,
normal: this.plain, normal: this.plain,
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
host: this.author?.host,
})]; })];
} }
@ -322,16 +317,25 @@ export default defineComponent({
return [h(MkEmoji, { return [h(MkEmoji, {
key: Math.random(), key: Math.random(),
emoji: token.props.emoji, emoji: token.props.emoji,
customEmojis: this.customEmojis,
normal: this.plain, normal: this.plain,
})]; })];
} }
case 'mathInline': { case 'mathInline': {
return [h('code', token.props.formula)]; return [h(MkFormula, {
key: Math.random(),
formula: token.props.formula,
block: false,
})];
} }
case 'mathBlock': { case 'mathBlock': {
return [h('code', token.props.formula)]; return [h(MkFormula, {
key: Math.random(),
formula: token.props.formula,
block: true,
})];
} }
case 'search': { case 'search': {