mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	
							parent
							
								
									20c0690352
								
							
						
					
					
						commit
						ed4860dfd9
					
				
					 4 changed files with 50 additions and 0 deletions
				
			
		| 
						 | 
					@ -100,6 +100,14 @@ export default Vue.component('misskey-flavored-markdown', {
 | 
				
			||||||
					return [createElement('del', genEl(token.children))];
 | 
										return [createElement('del', genEl(token.children))];
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									case 'italic': {
 | 
				
			||||||
 | 
										return (createElement as any)('i', {
 | 
				
			||||||
 | 
											attrs: {
 | 
				
			||||||
 | 
												style: 'font-style: oblique;'
 | 
				
			||||||
 | 
											},
 | 
				
			||||||
 | 
										}, genEl(token.children));
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				case 'big': {
 | 
									case 'big': {
 | 
				
			||||||
					bigCount++;
 | 
										bigCount++;
 | 
				
			||||||
					const isLong = getTextCount(token.children) > 10 || getChildrenCount(token.children) > 5;
 | 
										const isLong = getTextCount(token.children) > 10 || getChildrenCount(token.children) > 5;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,6 +37,12 @@ export default (tokens: Node[], mentionedRemoteUsers: INote['mentionedRemoteUser
 | 
				
			||||||
			return el;
 | 
								return el;
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							italic(token) {
 | 
				
			||||||
 | 
								const el = doc.createElement('i');
 | 
				
			||||||
 | 
								dive(token.children).forEach(child => el.appendChild(child));
 | 
				
			||||||
 | 
								return el;
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		motion(token) {
 | 
							motion(token) {
 | 
				
			||||||
			const el = doc.createElement('i');
 | 
								const el = doc.createElement('i');
 | 
				
			||||||
			dive(token.children).forEach(child => el.appendChild(child));
 | 
								dive(token.children).forEach(child => el.appendChild(child));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -69,6 +69,7 @@ const mfm = P.createLanguage({
 | 
				
			||||||
		r.big,
 | 
							r.big,
 | 
				
			||||||
		r.bold,
 | 
							r.bold,
 | 
				
			||||||
		r.strike,
 | 
							r.strike,
 | 
				
			||||||
 | 
							r.italic,
 | 
				
			||||||
		r.motion,
 | 
							r.motion,
 | 
				
			||||||
		r.url,
 | 
							r.url,
 | 
				
			||||||
		r.link,
 | 
							r.link,
 | 
				
			||||||
| 
						 | 
					@ -91,6 +92,8 @@ const mfm = P.createLanguage({
 | 
				
			||||||
	big: r =>
 | 
						big: r =>
 | 
				
			||||||
		P.regexp(/^\*\*\*([\s\S]+?)\*\*\*/, 1)
 | 
							P.regexp(/^\*\*\*([\s\S]+?)\*\*\*/, 1)
 | 
				
			||||||
		.map(x => makeNodeWithChildren('big', P.alt(
 | 
							.map(x => makeNodeWithChildren('big', P.alt(
 | 
				
			||||||
 | 
								r.strike,
 | 
				
			||||||
 | 
								r.italic,
 | 
				
			||||||
			r.mention,
 | 
								r.mention,
 | 
				
			||||||
			r.hashtag,
 | 
								r.hashtag,
 | 
				
			||||||
			r.emoji,
 | 
								r.emoji,
 | 
				
			||||||
| 
						 | 
					@ -115,6 +118,8 @@ const mfm = P.createLanguage({
 | 
				
			||||||
	bold: r =>
 | 
						bold: r =>
 | 
				
			||||||
		P.regexp(/\*\*([\s\S]+?)\*\*/, 1)
 | 
							P.regexp(/\*\*([\s\S]+?)\*\*/, 1)
 | 
				
			||||||
		.map(x => makeNodeWithChildren('bold', P.alt(
 | 
							.map(x => makeNodeWithChildren('bold', P.alt(
 | 
				
			||||||
 | 
								r.strike,
 | 
				
			||||||
 | 
								r.italic,
 | 
				
			||||||
			r.mention,
 | 
								r.mention,
 | 
				
			||||||
			r.hashtag,
 | 
								r.hashtag,
 | 
				
			||||||
			r.url,
 | 
								r.url,
 | 
				
			||||||
| 
						 | 
					@ -131,6 +136,7 @@ const mfm = P.createLanguage({
 | 
				
			||||||
			r.big,
 | 
								r.big,
 | 
				
			||||||
			r.bold,
 | 
								r.bold,
 | 
				
			||||||
			r.strike,
 | 
								r.strike,
 | 
				
			||||||
 | 
								r.italic,
 | 
				
			||||||
			r.motion,
 | 
								r.motion,
 | 
				
			||||||
			r.mention,
 | 
								r.mention,
 | 
				
			||||||
			r.hashtag,
 | 
								r.hashtag,
 | 
				
			||||||
| 
						 | 
					@ -176,6 +182,21 @@ const mfm = P.createLanguage({
 | 
				
			||||||
		.map(x => makeNode('inlineCode', { code: x })),
 | 
							.map(x => makeNode('inlineCode', { code: x })),
 | 
				
			||||||
	//#endregion
 | 
						//#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//#region Italic
 | 
				
			||||||
 | 
						italic: r =>
 | 
				
			||||||
 | 
							P.regexp(/<i>([\s\S]+?)<\/i>/, 1)
 | 
				
			||||||
 | 
							.map(x => makeNodeWithChildren('italic', P.alt(
 | 
				
			||||||
 | 
								r.bold,
 | 
				
			||||||
 | 
								r.strike,
 | 
				
			||||||
 | 
								r.mention,
 | 
				
			||||||
 | 
								r.hashtag,
 | 
				
			||||||
 | 
								r.url,
 | 
				
			||||||
 | 
								r.link,
 | 
				
			||||||
 | 
								r.emoji,
 | 
				
			||||||
 | 
								r.text
 | 
				
			||||||
 | 
							).atLeast(1).tryParse(x))),
 | 
				
			||||||
 | 
						//#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//#region Link
 | 
						//#region Link
 | 
				
			||||||
	link: r =>
 | 
						link: r =>
 | 
				
			||||||
		P.seqObj(
 | 
							P.seqObj(
 | 
				
			||||||
| 
						 | 
					@ -192,6 +213,7 @@ const mfm = P.createLanguage({
 | 
				
			||||||
				r.big,
 | 
									r.big,
 | 
				
			||||||
				r.bold,
 | 
									r.bold,
 | 
				
			||||||
				r.strike,
 | 
									r.strike,
 | 
				
			||||||
 | 
									r.italic,
 | 
				
			||||||
				r.motion,
 | 
									r.motion,
 | 
				
			||||||
				r.emoji,
 | 
									r.emoji,
 | 
				
			||||||
				r.text
 | 
									r.text
 | 
				
			||||||
| 
						 | 
					@ -232,6 +254,7 @@ const mfm = P.createLanguage({
 | 
				
			||||||
		.map(x => makeNodeWithChildren('motion', P.alt(
 | 
							.map(x => makeNodeWithChildren('motion', P.alt(
 | 
				
			||||||
			r.bold,
 | 
								r.bold,
 | 
				
			||||||
			r.strike,
 | 
								r.strike,
 | 
				
			||||||
 | 
								r.italic,
 | 
				
			||||||
			r.mention,
 | 
								r.mention,
 | 
				
			||||||
			r.hashtag,
 | 
								r.hashtag,
 | 
				
			||||||
			r.emoji,
 | 
								r.emoji,
 | 
				
			||||||
| 
						 | 
					@ -270,6 +293,7 @@ const mfm = P.createLanguage({
 | 
				
			||||||
		P.regexp(/~~(.+?)~~/, 1)
 | 
							P.regexp(/~~(.+?)~~/, 1)
 | 
				
			||||||
		.map(x => makeNodeWithChildren('strike', P.alt(
 | 
							.map(x => makeNodeWithChildren('strike', P.alt(
 | 
				
			||||||
			r.bold,
 | 
								r.bold,
 | 
				
			||||||
 | 
								r.italic,
 | 
				
			||||||
			r.mention,
 | 
								r.mention,
 | 
				
			||||||
			r.hashtag,
 | 
								r.hashtag,
 | 
				
			||||||
			r.url,
 | 
								r.url,
 | 
				
			||||||
| 
						 | 
					@ -290,6 +314,7 @@ const mfm = P.createLanguage({
 | 
				
			||||||
				r.big,
 | 
									r.big,
 | 
				
			||||||
				r.bold,
 | 
									r.bold,
 | 
				
			||||||
				r.strike,
 | 
									r.strike,
 | 
				
			||||||
 | 
									r.italic,
 | 
				
			||||||
				r.motion,
 | 
									r.motion,
 | 
				
			||||||
				r.url,
 | 
									r.url,
 | 
				
			||||||
				r.link,
 | 
									r.link,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										11
									
								
								test/mfm.ts
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								test/mfm.ts
									
										
									
									
									
								
							| 
						 | 
					@ -713,6 +713,17 @@ describe('Text', () => {
 | 
				
			||||||
				], tokens);
 | 
									], tokens);
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							describe('italic', () => {
 | 
				
			||||||
 | 
								it('simple', () => {
 | 
				
			||||||
 | 
									const tokens = analyze('<i>foo</i>');
 | 
				
			||||||
 | 
									assert.deepEqual([
 | 
				
			||||||
 | 
										nodeWithChildren('italic', [
 | 
				
			||||||
 | 
											text('foo')
 | 
				
			||||||
 | 
										]),
 | 
				
			||||||
 | 
									], tokens);
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	describe('toHtml', () => {
 | 
						describe('toHtml', () => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue