ひとつの投稿内で使えるそれぞれの動きのあるMFM構文は3回までに制限
This commit is contained in:
parent
5bbc95d659
commit
6ef28214df
@ -41,6 +41,9 @@ export default Vue.component('misskey-flavored-markdown', {
|
|||||||
ast = this.ast;
|
ast = this.ast;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let bigCount = 0;
|
||||||
|
let motionCount = 0;
|
||||||
|
|
||||||
// Parse ast to DOM
|
// Parse ast to DOM
|
||||||
const els = flatten(ast.map(token => {
|
const els = flatten(ast.map(token => {
|
||||||
switch (token.type) {
|
switch (token.type) {
|
||||||
@ -62,12 +65,14 @@ export default Vue.component('misskey-flavored-markdown', {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case 'big': {
|
case 'big': {
|
||||||
|
bigCount++;
|
||||||
const isLong = length(token.big) > 10;
|
const isLong = length(token.big) > 10;
|
||||||
|
const isMany = bigCount > 3;
|
||||||
return (createElement as any)('strong', {
|
return (createElement as any)('strong', {
|
||||||
attrs: {
|
attrs: {
|
||||||
style: 'display: inline-block; font-size: 200%;'
|
style: `display: inline-block; font-size: ${ isMany ? '100%' : '200%' };`
|
||||||
},
|
},
|
||||||
directives: [this.$store.state.settings.disableAnimatedMfm || isLong ? {} : {
|
directives: [this.$store.state.settings.disableAnimatedMfm || isLong || isMany ? {} : {
|
||||||
name: 'animate-css',
|
name: 'animate-css',
|
||||||
value: { classes: 'tada', iteration: 'infinite' }
|
value: { classes: 'tada', iteration: 'infinite' }
|
||||||
}]
|
}]
|
||||||
@ -75,12 +80,14 @@ export default Vue.component('misskey-flavored-markdown', {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case 'motion': {
|
case 'motion': {
|
||||||
|
motionCount++;
|
||||||
const isLong = length(token.motion) > 10;
|
const isLong = length(token.motion) > 10;
|
||||||
|
const isMany = motionCount > 3;
|
||||||
return (createElement as any)('span', {
|
return (createElement as any)('span', {
|
||||||
attrs: {
|
attrs: {
|
||||||
style: 'display: inline-block;'
|
style: 'display: inline-block;'
|
||||||
},
|
},
|
||||||
directives: [this.$store.state.settings.disableAnimatedMfm || isLong ? {} : {
|
directives: [this.$store.state.settings.disableAnimatedMfm || isLong || isMany ? {} : {
|
||||||
name: 'animate-css',
|
name: 'animate-css',
|
||||||
value: { classes: 'rubberBand', iteration: 'infinite' }
|
value: { classes: 'rubberBand', iteration: 'infinite' }
|
||||||
}]
|
}]
|
||||||
|
Loading…
Reference in New Issue
Block a user