[MFM] Improve hashtag detection
This commit is contained in:
		
							parent
							
								
									0489291815
								
							
						
					
					
						commit
						48d0e2fa5f
					
				|  | @ -162,7 +162,7 @@ const mfm = P.createLanguage({ | |||
| 			let hashtag = match[1]; | ||||
| 			hashtag = hashtag.substr(0, getTrailingPosition(hashtag)); | ||||
| 			if (hashtag.match(/^[0-9]+$/)) return P.makeFailure(i, 'not a hashtag'); | ||||
| 			if (!['\n', ' ', '(', '「', null, undefined].includes(input[i - 1])) return P.makeFailure(i, 'require space before "#"'); | ||||
| 			if (!['\n', ' ', ' ', '(', '「', null, undefined].includes(input[i - 1])) return P.makeFailure(i, 'require space before "#"'); | ||||
| 			return P.makeSuccess(i + ('#' + hashtag).length, makeNode('hashtag', { hashtag: hashtag })); | ||||
| 		}), | ||||
| 	//#endregion
 | ||||
|  |  | |||
|  | @ -186,6 +186,14 @@ describe('Text', () => { | |||
| 				], tokens); | ||||
| 			}); | ||||
| 
 | ||||
| 			it('with text (zenkaku)', () => { | ||||
| 				const tokens = analyze('こんにちは #世界'); | ||||
| 				assert.deepEqual([ | ||||
| 					text('こんにちは '), | ||||
| 					node('hashtag', { hashtag: '世界' }) | ||||
| 				], tokens); | ||||
| 			}); | ||||
| 
 | ||||
| 			it('ignore comma and period', () => { | ||||
| 				const tokens = analyze('Foo #bar, baz #piyo.'); | ||||
| 				assert.deepEqual([ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue