Add jump syntax (#4007)
* Add jump syntax * Fix typo: spin -> jump * Fix typo
This commit is contained in:
		
							parent
							
								
									5fac7c1718
								
							
						
					
					
						commit
						62d41023e1
					
				
					 5 changed files with 50 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -31,3 +31,11 @@
 | 
			
		|||
	0% { transform: rotate(0deg); }
 | 
			
		||||
	100% { transform: rotate(360deg); }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes jump {
 | 
			
		||||
	0% { transform: translateY(0); }
 | 
			
		||||
	25% { transform: translateY(-16px); }
 | 
			
		||||
	50% { transform: translateY(0); }
 | 
			
		||||
	75% { transform: translateY(-8px); }
 | 
			
		||||
	100% { transform: translateY(0); }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -135,6 +135,17 @@ export default Vue.component('misskey-flavored-markdown', {
 | 
			
		|||
					}, genEl(token.children));
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				case 'jump': {
 | 
			
		||||
					motionCount++;
 | 
			
		||||
					const isLong = sumTextsLength(token.children) > 5 || countNodesF(token.children) > 3;
 | 
			
		||||
					const isMany = motionCount > 3;
 | 
			
		||||
					return (createElement as any)('span', {
 | 
			
		||||
						attrs: {
 | 
			
		||||
							style: (this.$store.state.settings.disableAnimatedMfm || isLong || isMany) ? 'display: inline-block;' : 'display: inline-block; animation: jump 0.75s linear infinite;'
 | 
			
		||||
						},
 | 
			
		||||
					}, genEl(token.children));
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				case 'flip': {
 | 
			
		||||
					return (createElement as any)('span', {
 | 
			
		||||
						attrs: {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -61,6 +61,12 @@ export default (tokens: MfmForest, mentionedRemoteUsers: INote['mentionedRemoteU
 | 
			
		|||
			return el;
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		jump(token) {
 | 
			
		||||
			const el = doc.createElement('i');
 | 
			
		||||
			appendChildren(token.children, el);
 | 
			
		||||
			return el;
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		flip(token) {
 | 
			
		||||
			const el = doc.createElement('span');
 | 
			
		||||
			appendChildren(token.children, el);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -92,6 +92,7 @@ const mfm = P.createLanguage({
 | 
			
		|||
		r.big,
 | 
			
		||||
		r.small,
 | 
			
		||||
		r.spin,
 | 
			
		||||
		r.jump,
 | 
			
		||||
		r.bold,
 | 
			
		||||
		r.strike,
 | 
			
		||||
		r.italic,
 | 
			
		||||
| 
						 | 
				
			
			@ -126,6 +127,7 @@ const mfm = P.createLanguage({
 | 
			
		|||
			r.emoji,
 | 
			
		||||
			r.mathInline,
 | 
			
		||||
			r.spin,
 | 
			
		||||
			r.jump,
 | 
			
		||||
			r.text
 | 
			
		||||
		).atLeast(1).tryParse(x), {})),
 | 
			
		||||
	//#endregion
 | 
			
		||||
| 
						 | 
				
			
			@ -154,6 +156,15 @@ const mfm = P.createLanguage({
 | 
			
		|||
		).atLeast(1).tryParse(x), {})),
 | 
			
		||||
	//#endregion
 | 
			
		||||
 | 
			
		||||
	//#region Jump
 | 
			
		||||
	jump: r =>
 | 
			
		||||
		P.regexp(/<jump>(.+?)<\/jump>/, 1)
 | 
			
		||||
		.map(x => createTree('jump', P.alt(
 | 
			
		||||
			r.emoji,
 | 
			
		||||
			r.text
 | 
			
		||||
		).atLeast(1).tryParse(x), {})),
 | 
			
		||||
	//#endregion
 | 
			
		||||
 | 
			
		||||
	//#region Block code
 | 
			
		||||
	blockCode: r =>
 | 
			
		||||
		newline.then(
 | 
			
		||||
| 
						 | 
				
			
			@ -189,6 +200,7 @@ const mfm = P.createLanguage({
 | 
			
		|||
			r.big,
 | 
			
		||||
			r.small,
 | 
			
		||||
			r.spin,
 | 
			
		||||
			r.jump,
 | 
			
		||||
			r.bold,
 | 
			
		||||
			r.strike,
 | 
			
		||||
			r.italic,
 | 
			
		||||
| 
						 | 
				
			
			@ -240,6 +252,7 @@ const mfm = P.createLanguage({
 | 
			
		|||
			r.big,
 | 
			
		||||
			r.small,
 | 
			
		||||
			r.spin,
 | 
			
		||||
			r.jump,
 | 
			
		||||
			r.bold,
 | 
			
		||||
			r.strike,
 | 
			
		||||
			r.link,
 | 
			
		||||
| 
						 | 
				
			
			@ -297,6 +310,7 @@ const mfm = P.createLanguage({
 | 
			
		|||
				r.big,
 | 
			
		||||
				r.small,
 | 
			
		||||
				r.spin,
 | 
			
		||||
				r.jump,
 | 
			
		||||
				r.bold,
 | 
			
		||||
				r.strike,
 | 
			
		||||
				r.italic,
 | 
			
		||||
| 
						 | 
				
			
			@ -347,6 +361,7 @@ const mfm = P.createLanguage({
 | 
			
		|||
			r.bold,
 | 
			
		||||
			r.small,
 | 
			
		||||
			r.spin,
 | 
			
		||||
			r.jump,
 | 
			
		||||
			r.strike,
 | 
			
		||||
			r.italic,
 | 
			
		||||
			r.mention,
 | 
			
		||||
| 
						 | 
				
			
			@ -410,6 +425,7 @@ const mfm = P.createLanguage({
 | 
			
		|||
				r.big,
 | 
			
		||||
				r.small,
 | 
			
		||||
				r.spin,
 | 
			
		||||
				r.jump,
 | 
			
		||||
				r.bold,
 | 
			
		||||
				r.strike,
 | 
			
		||||
				r.italic,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue