mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-10-26 19:14:12 +00:00 
			
		
		
		
	Extract parsePlain function
This commit is contained in:
		
							parent
							
								
									98795aad9a
								
							
						
					
					
						commit
						e3b1d00e4c
					
				
					 4 changed files with 19 additions and 12 deletions
				
			
		|  | @ -1,7 +1,7 @@ | ||||||
| import Vue, { VNode } from 'vue'; | import Vue, { VNode } from 'vue'; | ||||||
| import { length } from 'stringz'; | import { length } from 'stringz'; | ||||||
| import { MfmForest } from '../../../../../mfm/types'; | import { MfmForest } from '../../../../../mfm/types'; | ||||||
| import parse from '../../../../../mfm/parse'; | import parse, { parsePlain } from '../../../../../mfm/parse'; | ||||||
| import MkUrl from './url.vue'; | import MkUrl from './url.vue'; | ||||||
| import MkMention from './mention.vue'; | import MkMention from './mention.vue'; | ||||||
| import { concat, sum } from '../../../../../prelude/array'; | import { concat, sum } from '../../../../../prelude/array'; | ||||||
|  | @ -46,7 +46,7 @@ export default Vue.component('misskey-flavored-markdown', { | ||||||
| 	render(createElement) { | 	render(createElement) { | ||||||
| 		if (this.text == null || this.text == '') return; | 		if (this.text == null || this.text == '') return; | ||||||
| 
 | 
 | ||||||
| 		const ast = parse(this.text, this.plainText); | 		const ast = (this.plainText ? parsePlain : parse)(this.text); | ||||||
| 
 | 
 | ||||||
| 		let bigCount = 0; | 		let bigCount = 0; | ||||||
| 		let motionCount = 0; | 		let motionCount = 0; | ||||||
|  |  | ||||||
|  | @ -2,11 +2,18 @@ import parser from './parser'; | ||||||
| import { MfmForest } from './types'; | import { MfmForest } from './types'; | ||||||
| import { normalize } from './normalize'; | import { normalize } from './normalize'; | ||||||
| 
 | 
 | ||||||
| export default (source: string, plainText = false): MfmForest => { | export default (source: string): MfmForest => { | ||||||
| 	if (source == null || source == '') { | 	if (source == null || source == '') { | ||||||
| 		return null; | 		return null; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	const raw = plainText ? parser.plain.tryParse(source) : parser.root.tryParse(source) as MfmForest; | 	return normalize(parser.root.tryParse(source)); | ||||||
| 	return normalize(raw); |  | ||||||
| }; | }; | ||||||
|  | 
 | ||||||
|  | export function parsePlain(source: string): MfmForest { | ||||||
|  | 	if (source == null || source == '') { | ||||||
|  | 		return null; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return normalize(parser.plain.tryParse(source)); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import acceptAllFollowRequests from '../../../../services/following/requests/acc | ||||||
| import { publishToFollowers } from '../../../../services/i/update'; | import { publishToFollowers } from '../../../../services/i/update'; | ||||||
| import define from '../../define'; | import define from '../../define'; | ||||||
| import getDriveFileUrl from '../../../../misc/get-drive-file-url'; | import getDriveFileUrl from '../../../../misc/get-drive-file-url'; | ||||||
| import parse from '../../../../mfm/parse'; | import parse, { parsePlain } from '../../../../mfm/parse'; | ||||||
| import extractEmojis from '../../../../misc/extract-emojis'; | import extractEmojis from '../../../../misc/extract-emojis'; | ||||||
| const langmap = require('langmap'); | const langmap = require('langmap'); | ||||||
| 
 | 
 | ||||||
|  | @ -206,7 +206,7 @@ export default define(meta, (ps, user, app) => new Promise(async (res, rej) => { | ||||||
| 		let emojis = [] as string[]; | 		let emojis = [] as string[]; | ||||||
| 
 | 
 | ||||||
| 		if (updates.name != null) { | 		if (updates.name != null) { | ||||||
| 			const tokens = parse(updates.name, true); | 			const tokens = parsePlain(updates.name); | ||||||
| 			emojis = emojis.concat(extractEmojis(tokens)); | 			emojis = emojis.concat(extractEmojis(tokens)); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								test/mfm.ts
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								test/mfm.ts
									
										
									
									
									
								
							|  | @ -10,7 +10,7 @@ | ||||||
| 
 | 
 | ||||||
| import * as assert from 'assert'; | import * as assert from 'assert'; | ||||||
| 
 | 
 | ||||||
| import analyze from '../src/mfm/parse'; | import analyze, { parsePlain } from '../src/mfm/parse'; | ||||||
| import toHtml from '../src/mfm/toHtml'; | import toHtml from '../src/mfm/toHtml'; | ||||||
| import { createTree as tree, createLeaf as leaf, MfmTree } from '../src/mfm/types'; | import { createTree as tree, createLeaf as leaf, MfmTree } from '../src/mfm/types'; | ||||||
| import { removeOrphanedBrackets } from '../src/mfm/parser'; | import { removeOrphanedBrackets } from '../src/mfm/parser'; | ||||||
|  | @ -1093,21 +1093,21 @@ describe('MFM', () => { | ||||||
| 
 | 
 | ||||||
| 	describe('plainText', () => { | 	describe('plainText', () => { | ||||||
| 		it('text', () => { | 		it('text', () => { | ||||||
| 			const tokens = analyze('foo', true); | 			const tokens = parsePlain('foo'); | ||||||
| 			assert.deepStrictEqual(tokens, [ | 			assert.deepStrictEqual(tokens, [ | ||||||
| 				text('foo'), | 				text('foo'), | ||||||
| 			]); | 			]); | ||||||
| 		}); | 		}); | ||||||
| 
 | 
 | ||||||
| 		it('emoji', () => { | 		it('emoji', () => { | ||||||
| 			const tokens = analyze(':foo:', true); | 			const tokens = parsePlain(':foo:'); | ||||||
| 			assert.deepStrictEqual(tokens, [ | 			assert.deepStrictEqual(tokens, [ | ||||||
| 				leaf('emoji', { name: 'foo' }) | 				leaf('emoji', { name: 'foo' }) | ||||||
| 			]); | 			]); | ||||||
| 		}); | 		}); | ||||||
| 
 | 
 | ||||||
| 		it('emoji in text', () => { | 		it('emoji in text', () => { | ||||||
| 			const tokens = analyze('foo:bar:baz', true); | 			const tokens = parsePlain('foo:bar:baz'); | ||||||
| 			assert.deepStrictEqual(tokens, [ | 			assert.deepStrictEqual(tokens, [ | ||||||
| 				text('foo'), | 				text('foo'), | ||||||
| 				leaf('emoji', { name: 'bar' }), | 				leaf('emoji', { name: 'bar' }), | ||||||
|  | @ -1116,7 +1116,7 @@ describe('MFM', () => { | ||||||
| 		}); | 		}); | ||||||
| 
 | 
 | ||||||
| 		it('disallow other syntax', () => { | 		it('disallow other syntax', () => { | ||||||
| 			const tokens = analyze('foo **bar** baz', true); | 			const tokens = parsePlain('foo **bar** baz'); | ||||||
| 			assert.deepStrictEqual(tokens, [ | 			assert.deepStrictEqual(tokens, [ | ||||||
| 				text('foo **bar** baz'), | 				text('foo **bar** baz'), | ||||||
| 			]); | 			]); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue