[MFM] Resolve #4009
This commit is contained in:
		
							parent
							
								
									311e67047d
								
							
						
					
					
						commit
						103fe8b91d
					
				
					 4 changed files with 45 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -128,9 +128,16 @@ export default Vue.component('misskey-flavored-markdown', {
 | 
			
		|||
					motionCount++;
 | 
			
		||||
					const isLong = sumTextsLength(token.children) > 5 || countNodesF(token.children) > 3;
 | 
			
		||||
					const isMany = motionCount > 3;
 | 
			
		||||
					const direction =
 | 
			
		||||
						token.node.props.attr == 'left' ? 'reverse' :
 | 
			
		||||
						token.node.props.attr == 'alternate' ? 'alternate' :
 | 
			
		||||
						'normal';
 | 
			
		||||
					const style = (this.$store.state.settings.disableAnimatedMfm || isLong || isMany)
 | 
			
		||||
						? ''
 | 
			
		||||
						: `animation: spin 1.5s linear infinite; animation-direction: ${direction};`;
 | 
			
		||||
					return (createElement as any)('span', {
 | 
			
		||||
						attrs: {
 | 
			
		||||
							style: (this.$store.state.settings.disableAnimatedMfm || isLong || isMany) ? 'display: inline-block;' : 'display: inline-block; animation: spin 1.5s linear infinite;'
 | 
			
		||||
							style: 'display: inline-block;' + style
 | 
			
		||||
						},
 | 
			
		||||
					}, genEl(token.children));
 | 
			
		||||
				}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -148,12 +148,21 @@ const mfm = P.createLanguage({
 | 
			
		|||
 | 
			
		||||
	//#region Spin
 | 
			
		||||
	spin: r =>
 | 
			
		||||
		P.regexp(/<spin>(.+?)<\/spin>/, 1)
 | 
			
		||||
		P((input, i) => {
 | 
			
		||||
			const text = input.substr(i);
 | 
			
		||||
			const match = text.match(/^<spin(\s[a-z]+?)?>(.+?)<\/spin>/i);
 | 
			
		||||
			if (!match) return P.makeFailure(i, 'not a spin');
 | 
			
		||||
			return P.makeSuccess(i + match[0].length, {
 | 
			
		||||
				content: match[2], attr: match[1] ? match[1].trim() : null
 | 
			
		||||
			});
 | 
			
		||||
		})
 | 
			
		||||
		.map(x => createTree('spin', P.alt(
 | 
			
		||||
			r.emoji,
 | 
			
		||||
			r.flip,
 | 
			
		||||
			r.text
 | 
			
		||||
		).atLeast(1).tryParse(x), {})),
 | 
			
		||||
		).atLeast(1).tryParse(x.content), {
 | 
			
		||||
			attr: x.attr
 | 
			
		||||
		})),
 | 
			
		||||
	//#endregion
 | 
			
		||||
 | 
			
		||||
	//#region Jump
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue