use-server-side-mfm (#133)

Reviewed-on: AkkomaGang/pleroma-fe#133
This commit is contained in:
floatingghost 2022-08-18 03:14:38 +00:00
parent e61228b031
commit 2d85ee6a08
6 changed files with 13 additions and 18 deletions

View file

@ -10,11 +10,6 @@ import HashtagLink from 'src/components/hashtag_link/hashtag_link.vue'
import './rich_content.scss' import './rich_content.scss'
const selectContent = (html, sourceContent, mfm) => {
if (!mfm) return html
return sourceContent === '' ? html : sourceContent
}
/** /**
* RichContent, The Über-powered component for rendering Post HTML. * RichContent, The Über-powered component for rendering Post HTML.
* *
@ -71,11 +66,6 @@ export default {
required: false, required: false,
type: Boolean, type: Boolean,
default: false default: false
},
sourceContent: {
required: false,
type: String,
default: ''
} }
}, },
// NEVER EVER TOUCH DATA INSIDE RENDER // NEVER EVER TOUCH DATA INSIDE RENDER
@ -84,8 +74,7 @@ export default {
const greentext = this.mfm ? false : this.greentext const greentext = this.mfm ? false : this.greentext
// Pre-process HTML // Pre-process HTML
const useContent = selectContent(this.html, this.sourceContent, this.mfm) const { newHtml: html } = preProcessPerLine(this.html, greentext)
const { newHtml: html } = preProcessPerLine(useContent, greentext)
let currentMentions = null // Current chain of mentions, we group all mentions together let currentMentions = null // Current chain of mentions, we group all mentions together
// This is used to recover spacing removed when parsing mentions // This is used to recover spacing removed when parsing mentions
let lastSpacing = '' let lastSpacing = ''
@ -180,7 +169,7 @@ export default {
} }
// Processor to use with html_tree_converter // Processor to use with html_tree_converter
const processItem = (item, index, array) => { const processItem = (item, index, array, what) => {
// Handle text nodes - just add emoji // Handle text nodes - just add emoji
if (typeof item === 'string') { if (typeof item === 'string') {
const emptyText = item.trim() === '' const emptyText = item.trim() === ''

View file

@ -52,7 +52,6 @@
:emoji="status.emojis" :emoji="status.emojis"
:handle-links="true" :handle-links="true"
:mfm="renderMisskeyMarkdown && (status.media_type === 'text/x.misskeymarkdown')" :mfm="renderMisskeyMarkdown && (status.media_type === 'text/x.misskeymarkdown')"
:sourceContent="status.source_content"
:greentext="mergedConfig.greentext" :greentext="mergedConfig.greentext"
:attentions="status.attentions" :attentions="status.attentions"
@parseReady="onParseReady" @parseReady="onParseReady"

View file

@ -103,6 +103,9 @@ const StatusContent = {
renderMfmOnHover () { renderMfmOnHover () {
return this.mergedConfig.renderMfmOnHover return this.mergedConfig.renderMfmOnHover
}, },
renderMisskeyMarkdown () {
return this.mergedConfig.renderMisskeyMarkdown
},
...mapGetters(['mergedConfig']), ...mapGetters(['mergedConfig']),
...mapState({ ...mapState({
currentUser: state => state.users.currentUser currentUser: state => state.users.currentUser

View file

@ -1,7 +1,7 @@
<template> <template>
<div <div
class="StatusContent" class="StatusContent"
:class="{ '-compact': compact, 'mfm-hover': renderMfmOnHover }" :class="{ '-compact': compact, 'mfm-hover': renderMfmOnHover, 'mfm-disabled': !renderMisskeyMarkdown }"
> >
<slot name="header" /> <slot name="header" />
<StatusBody <StatusBody
@ -78,7 +78,12 @@
&.mfm-hover:not(:hover) { &.mfm-hover:not(:hover) {
.mfm { .mfm {
animation: none; animation: none !important;
}
}
&.mfm-disabled {
.mfm {
animation: none !important;
} }
} }
} }

View file

@ -589,7 +589,7 @@ const users = {
const response = data.error const response = data.error
// Authentication failed // Authentication failed
commit('endLogin') commit('endLogin')
if (response.status === 401 || response.status === 403) { if (response.status === 401) {
reject(new Error('Wrong username or password')) reject(new Error('Wrong username or password'))
} else { } else {
reject(new Error('An error occurred, please try again')) reject(new Error('An error occurred, please try again'))

View file

@ -282,7 +282,6 @@ export const parseStatus = (data) => {
const { akkoma } = data const { akkoma } = data
if (akkoma && akkoma.source) { if (akkoma && akkoma.source) {
output.media_type = akkoma.source.mediaType output.media_type = akkoma.source.mediaType
output.source_content = akkoma.source.content
} }
} }